The Unity Technologies Team created the Fontainebleau demo to illustrate the photogrammetry workflow and the use of the LayeredLit shader.
This technical demo is authored with game development condition in mind: it’s a representative game level and targets the base PlayStation 4 at 1080p @ 30fps. Build available on Windows 11 64bit : https://geffrotin.com/yann/games/unity3dfontainebleauwin64/
I cover the basics of a pak file and how to extract the contents and place them in the game folder directory.
CRYENGINE – One of the most powerful game development platform is now available to everyone. Full engine source code. Join us over at http://www.cryengine.com
My version of the transcript
Pak file can be extracted, basically zip files, it’s optimized.
-How to open it up ? What to do after ?
I can use 7-Zip (www.7zip.org) in 32-bit or 64-bit architecture. I can open with right click with 7-Zip (open archive)
In Inspector : tag “grenadier” must be defined as “enemy”
The hero: he should be a “Player” layer and a tag “player”. (vShooterController_Woman_01_With_Helmet_04)
In “detection and tags” > in tag faction options > in tag options > emerald unity tag: “Enemy” and “detection layers” select “player” and “enemy”. -> Now the grenadier can detect and try to attack the player.
Now the grenadier must be aggressive toward the player.
Setting up the player ‘s Shooter Manager
In “damage layers” > “damage layer” > select enemy
How to configure the name of grenadier ?
In ui setting , display ai name choose “yes”.
In ai setting stats : ai name: “Grenadier”.
Adding Player’s Bullet Collision Detection :
Script in asset/ invector 3D / shooter / prefab / weapon / bullet / vDefaultBullet prefab.
Go to Vprojectilecontrol
Go to Damage Options
Set damage value to any Number(like 10) (Previously it was 0).
How to configure vMeleeManager Code Snippet ?
In Assets/Invector-3rdPersonController/Melee Combat/script/melee weapon/vMeleeManager.cs.
Unity’s main menu and go to Window > Package Manager.
How to Import:
Warning: you must choose to use Emerald AI 3 to create a AI for this tutorial (it doesn’t work for another). Whereas, you are free to choose the player you wish and the TPS you want.
I have purchased Emerald AI 3.0, the female soldier 01 anaconda, and Invector Third Person Controller (TPS) – Shooter Template.
In Project > Assets >Emerald AI > Demo > Demo Scenes > Melee Combat Example
To copy-paste inside “my project” and renamed “my Melee Combat Example”. (dissociated from other assets folders to prevent an update to erase your files)
Since you copy-paste it, you don’t need to create an AI. It’s already done.
Delete camera already existing because, you will create a new one by using Invector.
How toConfigure (Player + Camera):
Invector (menu) > Import project settings
Invector > Shooter > Create Shooter Controller
Character creation window > fbx model > select
Choose the prefab/ asset (woman_01_with_helmet) with helmet
Inside vshooterController_woman_01_with_helmet , move 3D model where you want and copy paste the coordinate inside vshooterController_woman_01_with_helmet (Position: X = 0.9 ; Y = 3.5 ; Z = 0.6) (Rotation Y = 180) from closed space to open space.
After reset position 3D model
play
You don’t need the old camera(“Main Camera (Fly) ») , you can remove it. If error, you have a backup inside the (Emerald AI > Demo > Demo Scenes > Melee Combat Example)
Optional: ( How toCreate a Companion AI with the Emerald AI Setup Manager)
go to Window > Emerald AI > Setup Manager within Unity.
In setup settings > AI object : Woman_01_Without_Helmet_01 (Emerald Companion)
And click the “save “ button at the end.
Companion Example
An example of a Companion AI that follows the player around. It will attack any opposing AI that tries to attack the player.
For the enemy: In inspector, the tag must be “enemy” and layer “enemy”.
The hero: he should be a “Player” layer and a tag “player”. (vShooterController_Woman_01_With_Helmet_04)
In “detection and tags” > in tag faction options > in tag options > emerald unity tag: “Enemy” and “detection layers” select “player” and “enemy”. -> Now the grenadier can detect and try to attack the player.
How to do add weapons and Ammo?
In Invector > Shooter > DemoScene
In hierarchy: Hive > Shooter_Hive > ShooterFeatures > Inventory_Collectables
– Ammo > vAmmoAssaultRifle_Inventory
– Weapons > vCollectibleAssaultRifle
Copy-paste on your project and change Transform to fit around your main player . (-1,0,0) and (0,0,-1)
In Invector player (vShooterController_Woman_01_With_Helmet_01) “Shooter manager” panel > in damage layers > select enemy.
How to configure vMeleeManager Code Snippet ?
In Assets/Invector-3rdPersonController/Melee Combat/script/melee weapon/vMeleeManager.cs.
Find the vMeleeManager script within your projects and open it. This code should be added right below the line onDamageHit.Invoke(hitInfo);
//Emerald AI Damageif (hitInfo.targetCollider.gameObject.GetComponent<EmeraldAI.EmeraldAISystem>()){ hitInfo.targetCollider.gameObject.GetComponent<EmeraldAI.EmeraldAISystem>().Damage((int)hitInfo.attackObject.damage.damageValue, EmeraldAI.EmeraldAISystem.TargetType.Player, transform, 400);}
How to configure vProjectileControl Code Snippet ?
In asset > invector > script > weapon > vProjectileControl.cs
Find the vProjectileControl script within your projects and open it. This code should be added right below the first instance of onCastCollider.Invoke(hitInfo); and damage.damageValue = maxDamage;
//Emerald AI Damageif (hitInfo.collider.gameObject.GetComponent<EmeraldAI.EmeraldAISystem>() != null){ hitInfo.collider.gameObject.GetComponent<EmeraldAI.EmeraldAISystem>().Damage((int)damage.damageValue, EmeraldAI.EmeraldAISystem.TargetType.Player);}
How to configure vExplosive Code Snippet ?
In vExplosive script , after colliders[i].gameObject.ApplyDamage(_damage, null); //Emerald AI Damageif (colliders[i].gameObject.GetComponent<EmeraldAI.EmeraldAISystem>() != null){ colliders[i].gameObject.GetComponent<EmeraldAI.EmeraldAISystem>().Damage((int)damage.damageValue, EmeraldAI.EmeraldAISystem.TargetType.Player);}
How to configure EmeraldAIPlayerDamage Code Snippet ?
in EmeraldAIPlayerDamage script, import script replacement DamageInvectorPlayer
uncomment function DamageInvectorPlayer(int DamageAmount, Transform Target) ;
void DamageInvectorPlayer (int DamageAmount, Transform Target) { if (GetComponent<Invector.vCharacterController.vCharacter>()) { //Applies damage to Invector and allows its melee weapons to block incoming Emerald AI damage. if (GetComponent<Invector.vCharacterController.vMeleeCombatInput>().meleeManager != null) { var PlayerInput = GetComponent<Invector.vCharacterController.vMeleeCombatInput>(); var MeleeManager = GetComponent<Invector.vCharacterController.vMeleeCombatInput>().meleeManager; if (PlayerInput.isBlocking) { var _Damage = new Invector.vDamage(DamageAmount); var DamageReduction = MeleeManager != null ? MeleeManager.GetDefenseRate() : 0; if (DamageReduction > 0) _Damage.ReduceDamage(DamageReduction); MeleeManager.OnDefense(); _Damage.reaction_id = MeleeManager.GetDefenseRecoilID(); _Damage.sender = Target; _Damage.hitPosition = Target.position; GetComponent<Invector.vCharacterController.vCharacter>().TakeDamage(_Damage); } else { var _Damage = new Invector.vDamage(DamageAmount); _Damage.sender = Target; _Damage.hitPosition = Target.position; GetComponent<Invector.vCharacterController.vCharacter>().TakeDamage(_Damage); } } //If no Melee Manager is found, cause unreduced damage. else { var _Damage = new Invector.vDamage(DamageAmount); _Damage.sender = Target; _Damage.hitPosition = Target.position; GetComponent<Invector.vCharacterController.vCharacter>().TakeDamage(_Damage); } } }
How to display name and Ennemy Health status bar ?
In AI Settings > Stat AI Name : AI Grenadier
In UI settings > UI Layer : Player
In UI settings > display name
In UI settings > enable health bar
How to add Bullet Collision Detection?
How to Damage on enemy (Grenadier):
Search for vDefaultBullet prefab
Go to Vprojectilecontrol
Go to Damage Options
Set damage value to any Number(like 10) (Previously it was 0).
Vous devez être connecté pour poster un commentaire.