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

Tutorial Unity3D New York City (NYC) First Person Shooter (FPS) in High Definition (HD)

  • Import city builder – Physically based rendering (PBR)
  • Extract paquage in good format : URP City Builder Urban

https://assetstore.unity.com/packages/3d/environments/urban/city-builder-urban-180722

  • import fps
    • copy-past objects

https://assetstore.unity.com/packages/templates/fps-microgame-156015

  • change default camera (hierarchy -> Main Camera) (copy paste coordinate in inspector -> transformations)
  • check playability
  • position player : 23 ; -0,25 ; 2,9
  • rotation player : 0 ; -100 ; 0
  • check new weapon compliance with FPS Template
  • import new weapon (addons > MgFPS_Haku)

https://assetstore.unity.com/packages/3d/haku-fps-microgame-add-ons-197231

  • position weapon : 20 ; 0 ; 2
Publié dans Informatique, Jeux vidéo. Étiquettes : , , , , , . Leave a Comment »

How to make a First Person Shooter (FPS) Game in Unity3d for Free – Tutorial

Create a new project in unity3d.

How to have free 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 assets into Project:

How to configure properly:

  • In Geopipe > “pack01Demo” import All necessary objects from the FPS microgame (player and the others)
  • Select the scene. After, In Unity > file > BuildSettings > uncheck all the scene you don’t want” and check the correct one with “Add Open Scene” (interfaces linking to other scenes mainly)

How to position the Player in the environment :

  • In hierarchy > Click player.
  • In inspector > transform > Change position (50, 20, 8)
  • In inspector > transform > Change Rotation (0,0,0)

How to add an enemy:

  1. In hierarchy select create empty, rename “===== ENEMY =====”
  2. In project > FPS > Prefabs > Enemies
  3. “Drag and drop” one on the map
  4. Repeat “Drag and drop”  until satisfy of the number of enemies. (“All objectives completed” when all enemies dealt with)

Project : https://store.steampowered.com/app/1972230/Alcyone/

Steam curators wanted (I give free keys to the Press)

I search steam curators (already send keys to the official permitted 100) for my upcoming release of my game « Andromeda 2 Zombies ». https://store.steampowered.com/app/1491910/Andromeda_2_Zombies/ #scifi #zombies #survival #RPG #FPS

Publié dans Informatique, Jeux vidéo. Étiquettes : , , . Leave a Comment »

Tutorial S2 ENGINE HD made by PROFENIXSTUDIO

== new ==

new project : file > new project, project name, click create button

new scene : right click, new scene, create button

add player : file > FPS > Player (“fpsplayer.so2”, the one with weapons)

add enemies : Character > Zombi : zombi.so2, zombi2.so2 and zombi3.so2 (shoot at their head.)

Publish : File > Publish > different path to have an exe (not the game engine project path)

== old ==

Playing with The Demo Project : open sampleProject.s2p

== links ==

Getting Started : http://www.s2powered.com/Docs/html/_getting_started.html

Youtube Channel : https://www.youtube.com/channel/UC2ZtOnjR0iNnVnBnqIrA53w

Publié dans Jeux vidéo. Étiquettes : , . Leave a Comment »