Latest - v1.1.00 (10th Mar 2020)
- New save game system
- Quick save/load using F5/F9 (by default) on standalone
- Quick, auto (checkpoint) and manual saves
- Save browser in main menu
- Continue button in main menu resumes from latest save
- Optional screenshots or thumbnails for quick and auto saves
- Persistence (save character health and inventory on scene change)
- NeoSerializable interface for components and scriptable objects
- Formatters for adding save/load to complex third party components
- File read/write on separate thread to prevent freezes on save
- Loading screen system for async scene loading
- In-game saving notification
- Custom binary serializer/deserializer
- Custom serializer for restricted platforms (eg WebGL)
- Save file inspector
- Parkour motion graph elements and demo
- New motion graph states for wall running, dashing, mantling, skiing (crouch slide), pushing off walls, jump pads
- New conditions for climbing, air time, collision flags, time comparisons, lookahead casts (velocity, direction, etc), enhanced casts that output results to parameters, direction and velocity tests, aim tests
- New behaviours for recording time, applying body tilt effects, clamping parameters
- New jump pad scene elements
- Swimming motion features
- Surface and underwater swimming states, with or without strokes
- Wading state that modifies speed by water depth
- Climbing out of water onto ledges
- New water zone scene elements with flow and surface info
- Drowning system that tracks time underwater
- Jetpack motion state behaviours
- HUD meters and readouts for motion graph parameters
- Motion debugger tool
- Charts character movement stats in detail
- View character controller and motion graph data
- Track motion graph parameter values
- Scrub the graph to inspect specific frames and view movement in the scene
- Body tilt & lean
- Lean left / right, with proximity and speed checks
- Motion graph behaviours to tilt based on wall contacts or movement
- Weapon momentum sway spring effect that moves held items as the camera rotates
- New scene management system for async loads with loading screen (ties into save system)
- Added PS4 controller support
- Fixed NeoCharacterController throwing errors on non-readable mesh colliders
- Audio settings now correctly modifying mixer
- Fixed OnEnter/OnExit for disabled motion graph behaviours
- Swapped menu dropdown icon on motion graph behaviours to be more visible on light UI
- Fixed surface manager returning incorrect surface from default layers
- Pressing escape no longer locks input, but blocks it correctly
- Removed 1 frame lag on moving platforms
- Contact ladded base handling fixed (doesn’t force detach)
- Fixed death camera height
- Fixed over-amplified weapon sway when looking up / down
- Motion graph now supports vector parameters
- Motion graph connections can now use condition groups that allow combos of any/all
- Complete rework of NeoCharacterController slope handling
- Slope speed curves now applied to movement states, not controller
- Moved game settings to scriptable object resources for easier editing
- Scene switcher can now switch based on index or name, and allows persisting character data
- Added “On Death” options to example game mode for loading from saves or returning to menu
- Added object to surface hits to allow more complex effects
- Changed weapon aim amplifier to work with variable up vector, and use more intuitive settings
- Tied head and weapon bob to motion graph for more control over bob amount and rate
- Added “rounds per second” and “rounds per minute” readouts to trigger inspectors
- Added settings to block trigger when transitioning aim mode to prevent interrupting animations
- Simplified ammo effect assignment in ammo firearm modules
- Explosion and impact forces can now push the character
- Improved inspector for level select menu
- Added optional parameter to disable ground snapping when adding a force to the NeoCharacterController
- Removed old explosion system deprecated in 1.0.05
- Added audio handling to health pickup
- Added repeat functionality to charged trigger
- Added match camera position system to firearm editor to simplify setup process
- Added all in one character for drop-in testing (doesn’t require spawner and reloads scene on death)
- Enabled AI turrets in demo facility by default
- Enabled post-processing by default (asset store tools can now save dependencies)
- Can now specify camera FoV as horizontal (based on 16:9 aspect) or vertical, but applied in vertical for better ultrawide support
- Save System
- In order to work with the save/load system, all objects to save require a NeoSerializedGameObject component
- Any custom scripts that instantiate objects at runtime should be changed to instantiate via the save system if objects require saving
- Refer to the sample prefabs and documentation
- New input buttons have been added for quicksave and quickload
- The NeoFPS character now has an extra gameobject in the upper body hierarchy with an AdditiveTransformHandler, similar to the head spring on PlayerCameraRoot
- FpsSoloCharacter needs to reference the new transform handler for its Body Transform Handler property
- The demo characters use the BodyTilt and BodyLean behaviours
- Refer to the sample prefabs and documentation
- Game Settings
- The game settings have been switched from singleton gameobjects to scriptable object assets
- Game settings are now found in the NeoFPS/Resources folder
- If you have manually placed the settings components in your scenes (not done by default) then you will need to delete them
- Changes to WeaponAimAmplifier
- The WeaponAimAmplifier behaviour which applies spring rotation to the gun when the camera is rotated has been modified to fix an up/down rotation limits issue and make the settings more intuitive
- You will need to tweak the settings on your guns if the new defaults feel wrong
- A new WeaponMomentumSway alternative behaviour has been added which applies spring position offset instead of rotation. This can work better with aiming down sights
- Motion Graph Additions
- All changes to the old motion graph elements should have been done in a way that the default settings match the original behaviour, therefore no work should be required to adapt old motion graphs
- Neo SceneManager
- All scene changes in the samples now go via the new Neo SceneManager
- Menus and the SceneSwitcher behaviour (now named NeoFpsSceneSwitcher) have been updated to use this
- This is not a requirement, but can take advantage of saving and loading
- The build settings order MUST be scene 0 = main menu, scene 1 = loading screen. If this is not the case, then the save settings and scene switcher can be modified to reference the new build index / scene name of the loading screen
- New NeoCharacterController demo scene with arbitrary up-vector demo
- Script errors in FpsGamepadSettings.cs due to refactoring not picked up with platform dependent compilation
- FoV issues on ultra-widescreen monitors and when resizing window
- Fixed HUD elements not unsubscribing from events properly on destroy
- Tweaked pistol recoil
- Added optional parameter to disable ground snapping when adding a force to the NeoCharacterController
- New explosion system that uses pooled particle effect objects and a simple PooledExplosion behaviour.
- Added example explosion prefabs.
- New multi-object and particle muzzle flash firearm modules.
- Split ballistic shooter into new simple ballistic shooter that ignores accuracy and camera aim.
- Added explosive barrels (red in demo scenes).
- Fixed issues with generated constants editor not refreshing valid state when name clashes are fixed.
- Set proper layers for AI seeker targets on inventory demo characters.
- Set correct audio sources for inventory demo characters.
- Firearm drops now correctly set ammo even without a FirearmAmmoDrop attached.
- Fixed “Apply Manually” errors in settings wizard (2018.3+).
- The ballistic shooter now correctly handles accuracy based on the spread property.
- All shooters now have options to use the camera aim or gun forward for both hip fire and aimed fire.
- New accuracy caps in aimer modules allow maximum accuracy (0-1) to be set for aimed and hip fire.
- Added layers property to CharacterInteractionHandler to choose layers it interacts with.
- Added multiple inventory types to firearm editor quick-setup.
- Added aim transform property to camera so effects can be layered on top.
- Switched swappable inventories to use new FpsSwappableCategory for neater editor and easier expansion.
- Renamed inventory keys to better describe items.
- Reorganised inventory editors to make more readable.
- The spring recoil module can now bypass spring multipliers for more intuitive settings.
- Added RaycastHit versions of AddDamage on damage handlers for more complex use cases.
- Renamed spring multipliers on aimers.
- Added events to AI Seekers for state changes.
- Thrown grenades now use new explosion system.
- Demo grenade launcher now uses new explosion system.
- Spring recoil handler can now bypass the spring multipliers.
- Added base accuracy level for hip firing and aimed.
- Tweaked demo firearms (recoil, shooters and aimers) for better handling.
- Added new IRecoilHandler modules to modular firearms
- Added health pickups
- Added new BaseCharacter and BaseController behaviours and switched singleplayer versions to use these
- Added new player character and inventory watchers and switched hud elements to use these
- Added C# events to motion graph parameters
- Hitscan and spread shooter were dealing damage twice when set to use camera forward vector
- Set HUD inventories to auto-populate slot property in OnValidate and added start errors if not found
- Enabled collisions between default layer and rough envirnoment geo
- Fixed WebGL build issue with input bindings
- Fixed motion graph connectable build error outside editor
- Hitscan and spread shooters now use correct camera transform for aim (not spring parent)
- Fixed divide by zero in AdditiveKicker if starting play mode from paused
- Fixed start-order bug with character disabling on spawn
- Prevented reload continuing after weapon switch
- Fixed aimers being blocked if aiming during reload, but switching weapons before done
- Fixed hold to aim not working
- Fixed key rebinding not detecting some clashes
- Fixed startup scripts not triggering properly in 2017.4
- Added delay between startup checks to prevent overlap on 2019.2+
- Moved firearm handling out of modular firearm and into new IRecoilHandler modules
- Moved firearm scripts into NeoFPS.ModularFirearm namespace
- Added firearm module error reporting in ModularFirearm inspector
- Added collision mask option to firearm shooters with that defaults to bullet blockers
- Switched firearm aimer modules to use vectors instead of proxy transforms (can set from a transform)
- Switched HUD elements to use new base classes and be more “multiplayer friendly”
- Removed static onLocalPlayerInventoryChanged event from inventory base and used character change instead
- Switched canvas HUD in demo scenes to use root prefab instead of individual element prefabs
- Reorganised weapon drop heirarchies to be more intuitive
- Replaced crosshair and switched default colour
- New motion graph editor UI elements
- Added new infinite ammo firearm module
- Added particle system firearm ammo effect
- Modular firearm behaviour inspector now has troubleshooting and “add modules” features
- New ChamberedReloader firearm module that uses different reload (anim & duration) when empty
- New integrations available (https://neofps.com/integrations)
- Emerald AI
- Inventory Pro (in progress)
- New TransformMatcher additive transform for matching animated camera moves
- Enabled inventory HUD in DemoFacility scene
- Fixed missing explosion sound effects
- Fixed shadow casting on first person weapons and arms
- Set default values for all variables to prevent import warnings in 2018.3+
- Fixed turret damage, sight checks and rate of fire
- Fixed hard-coded root asset path for auto build settings and startup checks
- Added bullet trail cleaner that resets trail renderer on pooled projectiles
- Fixed key bindings index out of range when changing button count after saving settings
- Fixed occasional start order blocking character input activation bug
- Fixed hard coded animator key for burst trigger hold
- Fixed automatic trigger getting stuck in fire mode on quick switch
- Fixed enabling character object or weapon while menu up bypassing the menu input block
- Major rework of motion graph editor to make more reactive and respond to undo/redo better
- Graph elements are now edited through the standard Unity inspector
- Added copy/paste to graph viewport
- Added “Move to Sub-Graph” to graph viewport
- Replaced MotionData asset with data entries on motion graph and new MotionGraphDataOverride asset
- Simplified API for creating new graph elements (states, conditions and behaviours)
- Lowered minimum supported version to 2017.4 (long term support)
- Split health manager out from solo character to allow swapping (Inventory Pro integration)
- Added support for multiple box colliders (eg door and handle) to interactive object corner highlights
- Tweaked layer, tag, and physics settings for Emerald AI integration
- Tweaked FpsInputButton generated constant for Inventory Pro integration and future work
- Added inactive “security” layer to demo facility with turrets and cameras
- Added animator key parameter drawer to check keys exist in animator while inspecting behaviours
- Added PlatformDependentObject to allow disabling objects based on platform (used for WebGL and console menus)
- Disabled exit and graphics options on WebGL
- Disabled exit, graphics and key bindings for console
- Fixed build errors due to OnValidate on ladder motion graph states
- Fixed obsolete GetPrefabObject warning on 2018.3
- Fixed wrong type of hand grenades in inventory demo ammo crates
- Fixed dropping excess swappable grenades from crates on floor
- Tweaked light settings for facility and rebuilt lightmaps
- Switched menu and back key to Tab for WebGL since Escape is reserved
- Added minimal character setup with only movement and aim features
- Fixed script compile errors for non-standalone builds
- Fixed shotgun reload interrupt blocking input
- Prevented welcome popup appearing on run when “Show on start” set
- Improved startup order on first import
- Fixed console errors when deleting a graph connection while inspecting
- Prevented clicking off “Add Entry” dropdown in MotionControllerData inspector causing an error
- Temporarily removed copy/paste and move to subgraph features of motion graph editor pending re-engineering
- Improved ladder aim handling and removed incorrect up-down movement for “AimerHeading” setting on contact ladders
- Can now change interactive ladder aim constraints while in play mode
- Motion graph editor now correctly handles exiting play mode while editing runtime graph instance
- Tweaked timings and recoil on weapons
- Fixed execution order issue with NeoCharacterController height
The initial release on NeoFPS on the asset store