-
Import
Neo FPS -
Automatically apply settings
-
Import
Universal AI 2.0 -
Import
Rifle Animset Pro -
Remove
RifleAnimsetPro/Scripts -
Remove
RifleAnimsetPro/PlaymakerAdditions -
Import
Movement Animset Pro -
Remove
MovementAnimsetPro/Scripts -
Remove
MovementAnimsetPro/PlaymakerAdditions
-
Open
FeatureDemo_Templatescene -
Save As
_UniversalNep/Scenes/Enemy Dev Scene -
Add
NeoFPS/Samples/Shared/Geomety/Character/Character_ThirdPerson, reset to origin -
Open
Window/AI/Navigationand bake theNaveMesh -
Hit
Play
-
Copy
EquipRifleinto_UniversalNeo/Animations -
Add
EnableWeaponevent toEquipRiflewhen one hand is on the weapon -
Add
EnableIKevent toEquipRiflewhen both hands are on the weapon -
Copy
HolsterRifleinto_UniversalNeo/Animations -
Add
DisableWeaponevent toEquipRiflewhen both hands leave the weapon -
Copy
Rifle_ShootOnceinto_UniversalNeo/Animations -
Add
UniversalAIAttackevent toRifle_ShootOnce
-
Open
Tools/Universal AI/AI Wizards/Integration Manager -
Set
Neo FPStoYes -
Open
Tools/Universal AI/AI Wizards/Setup Manager -
Setup the
Character_ThirdPersonAI -
Setup
Capsule Collider -
Setup
Animationsand save the animation controller to_UniversalNeo/Animations/Enemy OverrideController -
Click
Open DetectionthenOpen Detection Settings, selectCharacterControllersamd deselectDefaultinDetection Layers -
Click
Auto Find Head Transform -
Hit Play
-
Shoot the AI and he dies
-
Drop
NeoFPS/Samples/Shared/Geometry/Weapon_Low_AssaultRiflein the right hand of the character -
Add
UniversalAIShooterWeaponto the weapon model in the right hand -
Drop
NeoFPS/Samples/Shared/Geometry/Weapon_Low_AssaultRiflein the holstered position onFpsChar_Torso_Bone -
Select
Weapon_Low_AssaultRiflein the right hand -
Click
Weapon Settingsand selectRaycastinFire Type -
Set
Weapon TypetoSingle Shot -
Set
Weapon Attack Distanceto130 -
Set
Max Raycast Distanceto130 -
Set
Raycast Hit LayerstoCharacterPhysics, disablingDefault -
Set
Detection Distancein the charactersDetection Settingsto 100 -
Select the child
W Muszzle -
Move it to the muzzle on the model
-
On the character
Open Settings, thenOpen Attack -
Set
Max Damage Distanceto 150 -
Open Weapon Object Settings -
Drag
Weapon_Low_AssaultRifleon the back intoHolstered Weapon Object -
Drag
Weapon_Low_AssaultRiflein the right hand intoMain Weapon Object -
Hit Play, Character mostly misses
-
Select the
W Muzzleobject on the weapon in the right hand -
Adjust rotation so the debug line hits in the chest
1.7, 1.8, 0
- Open
Inverse Kinematics - Set
Use Inverse Kinematicsto true - Set
Use Hand IKto true - Set
Hand IK TypetoLeft Hand Only - Enter play mode and adjust the
Right Hand IKandLeft Hand IKbeing sure to take a note of the settings
-
Copy
NeoFPS/Samples/Shared/Prefabs/Weapons/MuzzleFlashes/RealisticMuzzleFlash_AssaultRifleinto the scene -
Unpack the prefab and pull out the
Barrel Flarechild into its own object -
Delete the original muzzle effect object
-
Rename
Barrel FlaretoMuzzle Flash -
Make a prefab in
Prefabs/VFX/Muzzle Flash -
Move the
Muzzle Flashto the tip of the Muzzle -
Open
VFX Settingson the weapon in the right hand -
Open
Bullet Settings -
Drag
Muzzle Flashdrag inNeoFPS/Samples/Shared/Prefabs/Weapons/MuzzleFlashes/RealisticMuzzleFlash_AssaultRifle -
Open
Bullet Settings -
Setup sounds using those supplied in
NeoFPS/Samples/Shared/Audio/SoundEffects/Weapons/ -
Set the 3D sound on the Audio Source for the weapon to full 3D
- Add
AINEOSoundDetectioncomponent to your AI - Add
SoloPlayerCharacterEventWatchercomponent to your AI
- Make a prefab in
_UniversalNeo/Prefabs/Enemy
In this section we will create a basic level in which the player must fight their way to a specific point, grab an item, then get to the extraction point.
- Using a pen and paper or drawing tablet sketch out the level (see
_Design/Level Sketches/Scratchpad Level 1) - Create a new scene
_UniversalNeo/Scenes/Scratchpad/Scratchpad Level 1 - Install
Probuilder - Import the
Wizards Code PrototypingPackage
- Add a
Terrain - Adjust size to 250 x 500
- Position at -125, 0, -250
- Build up hills around the edge
- Draw the road network
- Block out the buildings using ProBuilder
- Dig out a lake and throw in a plane of water
- Make a tree in ProBuilder
- Paint some trees in
-
Open
FeatureDemo_Templatescene additively -
Drag in all elements intot the Scratchpad scene
-
Remove the old Camera and the test environment
-
Position the
SimpleSpawnerAndGameModeat the start point -
Hit
Play
-
Drag a number of enemy prefabs into place based on your design
-
Mark all the buildings as
Not Walkable -
Bake the NavMesh
-
Hit
Play -
Double the number of Enemies
-
Increase enemy hearing range to 75
- In
StatssetStart Healthto 100 - In
General Settings/MovementsetDestory Delayto 15 - In
General Settings/AttacksetMin Attack Delayto 0.1 andMax Attack Delayto 0.4 - And more
- Create
Squad AlphaAdd in a bunch of AI - Create
Squad BetaAdd in a bunch of AI - Repeat until
Squad Hotel
- Set
Audio Sourceon the weapon to have full3Dsound - Open
VFX Settings - Add
Audio_Weapon_AssaultRifle_Gunshot01toFire Sound Effect - Add
Audio_Weapon_AssaultRifle_ReloadtoReload Sound Effect - Add
Audio_Weapon_AssaultRifle_DrawtoEquip Sound Effect - Add
Audio_Weapon_AssaultRifle_DrawtoUnEquip Sound Effect - Make the distance drop off in the audio source of the weapon less steep
- Set
Audio Sourceon the enemy to have full3Dsound - Open
Unversal AI Sounds - Add
Audio_Footsteps_Dirt_Std01and a few more (02, 03 etc.) toWalk Sounds - Add
Audio_Footsteps_Dirt_Fast01and a few more (02, 03 etc.) toRun Sounds - Add
Audio_VoiceMale_HitReaction01and a few more (02, 03 etc.) toOn Take Damage - Add
Audio_VoiceMale_Pain01and 02 toOn Death
- Copy
NeoFpsSoloPlayerCharacterinto yourPrefabsFolder - Rename it to
UniversalNeoPlayer - Use it in
SimpleSpawnerAndGameMode - Change
Damage Audio ThresholdonUniversalNeoPlayer/FpsSoloCharacterto 5
- Create a
Items/LootDropscript - Add
ContactPickup_Healthas a health item - Set to
Spawn as Child - Add
OnDropLootto the AIOnDeathevent
- Copy
DemoFacility_FirearmSniperRifletoPrefabs/Weapon/FirearmSniperRifle - Replce default sniper in
UniversalNeoPlayerwith the new weapon - Disable all optics except the
Optics_ScopeSniper_RenderTexture - Copy the
FpsInventoryWiedlablescript from the original sniper quickswitch - Remove the
FpsInventoryWieldableSwapppablescript from the new weapon - Paste as new the new inventory script
- Add a whole bunch of small buildings and barrels onto the scene
- Remove all weapons except the pistol from
UniversalNeoPlayer - Add an enemy in view when the player spawns
- Replace the health pickup with
ContactPickup_AssaultRifle_Quickswitchas a loot drop for that first enemy - On the
LootDropscript add a second category of pickups calledRandomPickip - On the enemy prefab add the various weapon pickups
- Create a new Sniper pickup and use our modified sniiper item