Repository navigation
Tachi: reload from empty with the slide held back - #170
Open
sunzenshen wants to merge 4 commits into
Open
sunzenshen wants to merge 4 commits into
sunzenshen wants to merge 4 commits into
Conversation
The Tachi viewmodels had no reload for an empty gun, so a reload from empty played the normal reload, whose slide is forward from its first frame, and the slide closed as the reload began. Add reloadempty (ACT_VM_RELOAD_EMPTY) to the Jinrai and NSF Tachi, built the way the Milso's shipped one is: the normal reload with only the slide changed, held back and released over frames 54-62 after the magazine is seated. Every other sequence is the shipped one, recompiled.
This was referenced Oct 17, 2026
Contributor
Author
|
I'm expecting critical feedback on where to actually put the pre-compilation animation files. Probably don't want to commit every file as is in this initial commit to neoAssets. Edit: Initial discussion seems to point to neoAssets being the right repo, but I need to prepare the project files in modelsrc/ to be more easily auditable by a Blender user. |
sunzenshen
marked this pull request as ready for review
October 17, 2026 02:03
Contributor
Author
|
TODO: I still need to make a Blender project example for the custom animation. |
Make both Tachi animation sets editable in Blender with relative preview textures and repeatable SMD export and model compilation. Include the original reference mesh and all animation inputs for a complete rebuild. Keep reference mesh export disabled to preserve original split normals. Document the animator workflow and CMake-installed asset layout. Verify both Blender exports, SDK compiles, and relocated project exports. Preserve all 54 bones, 16 clips, sequence metadata and mesh attributes.
Removed redundant timing information for model export and compilation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Companion of NeotokyoRebuild/neo#2248 (the empty pistol's slide). With that PR, the Tachi's slide locks back at the last shot, but a reload from empty plays the shipped
reload, whose slide is forward from its first frame: the slide closes as the reload starts, not when the new magazine is in (reported in review of #2248). The Milso ships areloademptyfor this (ACT_VM_RELOAD_EMPTY); the Tachi does not.This adds
reloademptytov_jinrai_tachiandv_nsf_tachi, built the way the Milso's shipped one is: the shippedreload(64 frames, 2.1 s) with only the slide bone changed, held at itsidle01emptyvalue (back) and eased forward over frames 54-62 (1.80-2.07 s), after the magazine is seated. Every other sequence is the shipped one, recompiled (within 0.01 u of the shipped model;reloadwithin 0.14 u / 0.44 deg); the fire sequences keep their muzzle flash event. Reload length and timing are unchanged.The two models are new in this repo; the game loads the original NEOTOKYO Tachi models today.
The neo side is NeotokyoRebuild/neo#2248: it plays
ACT_VM_RELOAD_EMPTYon a reload from empty wherever the model has it. Without that PR the new sequence is never played; without this PR the Tachi keeps the shippedreload. NeotokyoRebuild/neo#2259 is the same code as NeotokyoRebuild/neo#2248, for merging both at once.Sources:
neo/modelsrc/weapons/{jinrai,nsf}_tachi/holds the QC, the new animation (SMD), the row it was composed from (segments.csv) and a README. The reference mesh and the other animations are the shipped model decompiled; compiled with studiomdl from the Source SDK Base 2013 MP tools (MDL v48).How to test
With NeotokyoRebuild/neo#2248 (or NeotokyoRebuild/neo#2259): fire a Tachi's magazine dry, then reload. The slide stays back through the reload and goes forward near its end. A partial reload plays the normal reload. Both teams' Tachi.
Results
Per-frame viewmodel log, Release build of NeotokyoRebuild/neo#2248 with these models: a Tachi reload from empty plays
reloadempty(2.08-2.09 s, full clip at its end), Jinrai and NSF; a partial reload playsreload. On video, mid-reload the slide is back with this PR and forward without it.Related