Unity3D Fontainbleau Build Released

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/

(source code available on github: https://github.com/Unity-Technologies/FontainebleauDemo)

Universal Render Pipeline (URP) 3D sample for Unity3D released

Discover how to create, customize, and scale beautiful graphics with flexibility and performance. Download now on free 2 play on windows 64: https://geffrotin.com/yann/games/unity3dsampleurpwin64build/

Spaceship Demo is a AAA Playable First person demo

Spaceship Demo is a AAA Playable First person demo showcasing effects made with Visual Effect Graph and rendered with High Definition Render Pipeline. Available now on Windows 64: https://www.geffrotin.com/yann/games/unity3dspaceshipwindows64/ (and the source code is on github : https://github.com/Unity-Technologies/SpaceshipDemo)

Unity3D HDRP Space Combat Kit Released

Unity3D HDRP Space Combat Kit Released

Unity3D HDRP Space Combat Kit Released

The release of my Unity Space Combat Kit HDRP (1st version) is now complete and downloadable on Windows. 
 
Available here: https://www.geffrotin.com/yann/games/unity3dspacecombatkithdrp/

Unity Action-RPG Starter Kit Released

The release of my Unity Action-RPG Starter Kit (1st version) is now complete and downloadable on windows.

url https://www.geffrotin.com/yann/games/unity3dactionrpgstarterkitwindows

Unity3D Tutorial – How to create a level, terrain and terrain texture

1 – Setup

Download Unity Hub on your operating system https://unity.com/

Install unity on your machine

In Projects, click create “new project”

Create project name

Choose location

And connect unity cloud if you want that

Once done, go next.

2 – Create terrain

            On Hierarchy (on the left by default)  > right click > 3D object > select plane

3 – Apply texture to plane (terrain)

Make a material
Select > Create > material
Rename it
In inspector > main Maps > albedo > assign a material
Click 3D model and assign material to him.

Tutorial Unity3D Third-person shooter (TPS) with Emerald AI 3.0 Melee AI Game Design Document (GDD) Compliance with 2022.3.5f1

Updating manually from the deprecated version generate errors (that I want to avoid).

Solution : beginning from nothing but the GDD.

import

  • Import ai (Emerald ai 3)
  • Import model (woman 01 with helmet – anaconda)
  • Import camera and controler (invector)

Configuration

  • Import project settings

Creation :

  • Folder “my project” on root
  • My melee combat (copy past from emerald ai)

Deletion

  • Main camera (Fly) (Position -3, 4, -20)

Creation again :

  • Invector > shooter > create shooter controller (select anaconda)

Configuration again :

  • Position (-3, 4, -20)

Insert :

  • Weapon from (not from prefab) : Hive > Shooter_Hive > ShooterFeatures > Inventory_Collectables (vCollectibleAssaultRifle with position z=-18)

The following : https://github.com/Black-Horizon-Studios/Emerald-AI/wiki/Invector-Integration-Tutorial

Configure : Tag and layer

  • 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.

Add script

Source : https://github.com/Black-Horizon-Studios/Emerald-AI/wiki/Invector-Integration-Tutorial

How to configure vProjectileControl Code Snippet ?

In asset > invector > script > weapon > vProjectileControl.cs

Add script

How to configure vExplosive Code Snippet ?

In vExplosive script , after colliders[i].gameObject.ApplyDamage(_damage, null);

Add script

How to configure EmeraldAIPlayerDamage Code Snippet ?

Add script

Tutorial Unity3D Third-person shooter (TPS) with Emerald AI 3.0 Game Design Document (GDD)

Create a new 3D project in Unity3D (not HDRP because it’s not supported by Emerald AI 3).

How to have Assets :

  1. To have Assets : https://assetstore.unity.com/
  2. Where is the « package manager » in unity ?
  3. 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.

Next step is to buy AI and do the integration :

https://assetstore.unity.com/packages/tools/ai/emerald-ai-3-0-203904 (contain environment also)

  • You need also a player.

https://assetstore.unity.com/packages/3d/characters/humanoids/sci-fi/female-soldier-01-anaconda-248569

  • And a Third Person Shooter (a camera, a weapon(s) and ammos):

https://assetstore.unity.com/packages/tools/game-toolkits/invector-third-person-controller-shooter-template-84583

How to Create your project:

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.

(How to Create an AI through the Setup Manager (Emerald AI wiki): https://github.com/Black-Horizon-Studios/Emerald-AI/wiki/Creating-an-AI-through-the-Setup-Manager )

Delete camera already existing because, you will create a new one by using Invector.

How to Configure (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 to Create a Companion AI with the Emerald AI Setup Manager)

  1. go to Window > Emerald AI > Setup Manager within Unity.
  2. In setup settings  > AI object : Woman_01_Without_Helmet_01 (Emerald Companion)
  3. And click the “save “ button at the end.
Companion ExampleAn example of a Companion AI that follows the player around. It will attack any opposing AI that tries to attack the player.

Tutorial How to perform Invector integration: https://github.com/Black-Horizon-Studios/Emerald-AI/wiki/Invector-Integration-Tutorial

How to Set up the AI Layer and Tags :

  • 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)

The weapon should be a layer: “Triggers”.

How to activate the collision detection ?

I follow the source Tutorial : https://github.com/Black-Horizon-Studios/Emerald-AI/wiki/Invector-Integration-Tutorial

How to Set up the Shooter Manager (Important)

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 ?

  1. in EmeraldAIPlayerDamage script, import script replacement DamageInvectorPlayer
  2. 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).

Unity3D Combat Emerald AI 3 Example

The Third Person Shooter (one man versus one Emerald AI 3 Grenadier) Technical Demo Proof Of Concept is available now on macOS. Melee damage and Bullet Physics works !

see : https://lnkd.in/ebH4Y-kx

Unity3D Invector and Emerald AI melee combat with player health bar

1. Create a SANDBOX (3D, NOT HDRP)

2. Add a demo scene with melee Emerald AI

3. Create a camera,

4. Add a player

5. Change layer to the same as enemy (water)

6. Test melee combat

  1. How to add weapons and Ammo ?

In Invector > Shooter > DemoScene

In hierarchy:   Hive > Shooter_Hive > ShooterFeatures > Inventory_Collectables

                                                – Ammo > vAmmoAssaultRifle_Inventory

– Weapons > vCollectibleAssaultRifle

The weapon should be a Triggers layer.

The hero should be a Player layer. (vShooterController_Woman_01_With_Helmet_04)

  • Collision detection or layer problem, or both ?

Follow tutorial :

https://github.com/Black-Horizon-Studios/Emerald-AI/wiki/Invector-Integration-Tutorial

  1. set enemy inspector to: tag enemy and layer enemy
  2. change tag option from respawn to enemy
  3. in player controller >

I have purchased Emerald AI 3.0 and Invector Third Person Controller – Shooter Template .

I try to follow a tutorial (https://github.com/Black-Horizon-Studios/Emerald-AI/wiki/Invector-Integration-Tutorial)

I don’t find the « Shooter Manager ». « This can be found on your Invector player. » it’s in vShooterController_Woman_01_With_Helmet_04 (scroll down)

  1. in asset > invector > script > weapon > vProjectileControl.cs
  2. in EmeraldAIPlayerDamage script, import script replacement DamageInvectorPlayer
  3. uncomment function DamageInvectorPlayer(int DamageAmount, Transform Target) ;