branchrust_reboot/main/PlayerRigUpdate2cancel
144 Commits over 212 Days - 0.03cph!
Fixed gingerbread man corpses throwing errors
Updated position of player model in wanted poster renders
Fix mountable sub systems not properly getting disabled when scrubbing in a demo
Adjust both arms curve on torch attack animations
Created a new Wearable Variant Creator Window, simple tool that lets us make new premade skeleton variants
Presents a list of every wearable in the project, can pick and choose which items you want and it then produces a new prefab with the skinned meshes setup and LODs stripped
Keeps prefab links to original clothing so this shoud be more future proof as we modify/update clothing
Fixed looping gestures fading out after a single loop (but not actually ending)
Added a visible list of all of the currently active subsystems on the PlayerModel inspector, can click them to select the gameobject of that system (since now the player could be affected by a mountable and held entity at the same time)
Fixed every player being followed by a disembodied mouth and eyeballs, just out of sight, forever watching....
Better fix, also fixes first frame of weapon being held not looking correct
Fix held entity sub systems not working in builds (torches)
Print out all of the parameters in a child animator in Debugprintout, that way it works at runtime as well
Multiply the layer weights by player movement (controlled via PlayerVelocityCap and PlayerVelocityMultiplier curve on MeleeWeaponAnimationSubSystem)
Replaced the UseTwoHandMask parameter on the torch animatior with two new float multipliers (RightArmLayerWeight and BothArmsLayerWeight)
This allows us to fade in and out both arms independedntly and makes it easier to match the fade outs with motion in the clip (ie. mask us fading out both arms by making sure the fade happens while the left arm is moving)
Fixed OverrideAnimationSubSystem having a weight of 0 for a frame if it's Fade In Time is 0
Set Fade In Time on hand hold sub system to 0 to fix torch being out of position for a frame (right arm controller still fades in so it looks nice, the hand snaps to hold though)
Fixed telephone reference on OverrideAnimationSubSystem
Fixed most subsystems not fading out properly on disable
Fixed player body being visible in first person
Added new mesh.reducebonecountonlowlod convar, adjusts bone quality on skinned meshes spawned with a player
LOD0 - Auto
LOD1 - 2 Bones
LOD2/3/4 - 1 Bone
These use LODGroups so the LOD is calculated based on screen height, making the quality change imperceptible
Might have scraped a quarter of a millisecond in a stress test? Hard to judge
Defaults to on
Fixed wrong item id on ballistic vest
Hooked up the new shopkeeper anims to the waterwell shopkeepers as well
Replaced the old gesture based NPC wave with a new state on the child animator
Also did a bit of cleanup on the wave code, instead of every shopkeeper in the world doing a Vis sweep every 5-10s just do a distance check based on nearby subscribers
Makes the process free if no players are around, saves around 0.03ms each invoke
Replaced the stack of 4 sub systems on the vendor with a single animator controller
Merge from melee_subsystem (just setup on the vanilla torch for now)
Fixed warning spam from ragdolled player models
Added static helpers to easily detect and enable/disable stacks of subs systems
Sub systems can now be applied to any mountable
Sub systems can now be applied to a HeldEntity
Replaced the upper body toggle on animator sub systems with a mask field, each system can now be assigned an independent mask
If no mask is assigned it will fall back to the full body mask (cannot have no mask at all)
Added an outline to animation sub system inspectors, matches the colour of the system in the animation inspector
Merge from main
Mostly code merges, all auto resolved
Fixed broken PlayerModelAnimationInspector after last commit, also added better rendering support for child animator systems
Refactored how we create and dispose controller handles, much cleaner
Fixes priority not being respected for child animation controllers
Update WearableReplacementByRace component, now attaches to a skinned mesh and contains sets of SkinSet<->Mesh
Needs to be added to each LOD level individually
Added an auto populate button that fills in the sets automatically based on name parsing, saves a lot of tedious clicking
Fix NRE when no editor window is selected
Fix animator window always opening (only inject the playable dropdown when the window is focused)
Fixed editor performance after merging child animator system
Merge from main
Auto conflict resolved on cannon.depoyed, salvaged_cleaver, Scientist2
New ChildAnimatorSubSystem
Runs an entirely independent controller
Has it's own weight, can target specific layers, etc
Added a dropdown to the player animator that detects this and allows us to switch between multiple controllers for easy debugging
Add a warning to the state sync editor if the state name is incorrect
Fixed lower case Attack on StateSync components (sks and paintball gun)
Fixed [Button] attributes not working on animation sub systems
Added PlayFromStart method to PlayerAnimationHandle
Added a new TwoAxisOneShotBend aniamtor sub system, should replace the reactions layer on the animator entirely
Added IsPlaying and NormalizedTime accessors to OneShotAnimationSubSystem
OneShots now start paused, makes debugging easier
Don't show the self component in dropdowns
Merge from AnimationSubSystems
Fixed missing throw animation on bee grenade hold type
Added toggle visible events for bee grenade and beancan
Reapply AnimatorOverrideUpdater
Create a new 3p_idle_unarmed_pose - a single frame version of 3p_idle_unarmed
Use that on the upper body idle, update all of the overrides accordingly
Subtract
150051 (introduced stepping issues)
Added a new Animator Override Updater tool to batch update overrides when replacing an animation on the base player animator
Since overrides work by overriding clips (not states) replacing the clip breaks every override that was referencing that clip
This automates the process of hooking them all up
Replaced the stance-idle clips in the Idle/Aiming blend tree with 3p_idle_unarmed and then ran the updater, updated 141 override controllers
Merge from main
Cannon.cs and PlayerModel.cs conflicted, auto merged
Merge from main
Lots of code conflicts, all resolved except for one in PlayerModel.cs, looked fine
Conflicts on binocular.entity, used changes from source (presumably related to refresh?)
Added a new ToggleThrownWeapon animation event, allows us to switch on/off the grenade visuals so they don't stay in the players hands all the time throughout a throw animation
Implemented on supply signal, smoke grenades, molotovs, beancans, flashbangs, bee grenades, f1 grenades and firecrackers
Fixed incorrect animations on the smoke grenade and firecracker animation overrides