It's A Viewmodel
#53 posted by
killpixel on 2018/01/05 01:01:39
the mesh is in a very different position during that particular sequence than it is in any other, so that lerp is critical for a smooth transition (especially since it's right in your face).
#54 posted by
Kinn on 2018/01/05 01:11:18
So I assume adding a transition animation where the weapon spins down to a rest state when player releases the button is out of the question?
The Transition From Fire To Spindown
#55 posted by
killpixel on 2018/01/05 01:26:37
is where the problem is occurring. to adjust the mesh position of the first few frames of the spin down anim to smooth the transition between the two looks terrible (artistically, needs that sudden jolt), worse than the gear issue itself.
looks like my options are 1) learn/setup/test yet another model format just to figure out how it works and see if it will solve the issue and lose valuable time while doing so, 2) remove the gear (rather not), 3) remove time slowing down (possible, but rather not) 4) make the gear a separate entity and achieve rotation via qc rather than vertex animation (this sounds like another giant can of worms and I think it will look jittery), 5) do something else with my life.
Qmaster
#56 posted by
madfox on 2018/01/05 01:33:04
In qmle is an option for frames setting to interpolation.
Not sure if it has anything to do with qc, but when using a model it sometimes angles back to the start frame, in stead of rolling on. Creating a strange turn of the animation.
I just call it a criple loop, may sound strange.
Frame Seqwhatnow?
#57 posted by
Qmaster on 2018/01/05 18:38:44
Are you using framegroups or are you stepping it through frame by frame like on monsters
E.g.:
playergearwep1 [0, playergearwep2] () { self.weaponframe = 0;};
playergearwep2 [1, playergearwep3] () { self.weaponframe = 1;};
etc.
Viewmodels are a whole different ball game. Not sure if most engines even support framegroups on viewmodels (FTE does).
#58 posted by Spike on 2018/01/05 21:57:24
if you want to get fancy, csqc is the way to go.
combine with modelevents too or something, and you can have particle effects etc handled in a generic way.
but yeah, if you want something to spin, do it in csqc. a little spinup+spindown makes it feel more real, and definitely smoother.
skeletal models potentially allow you to control each part of a model independently.
The Hack Way
#59 posted by
Preach on 2018/01/05 22:53:46
If you want to do something that's supported in all engines, here's a hack to skip the interpolation:
Have two separate model files for your weapon, v_spinning.mdl and v_standing.mdl. Change the weapon model when you want to switch between two poses without interpolating them, just change the frame when you want to have interpolation.
It's not a pretty solution, but it works!
Thanks For The Ideas
#60 posted by
killpixel on 2018/01/06 00:10:47
@qmaster - we use both framegroups and hardcoded frames depending on the situation. The anims in question are using framegroups, I believe.
@spike - I'm leaning toward making the gear a separate entity but won't even have to do that if IQM would allow me to control a particular bone and nolerp that one bone for one frame.
@preach - that's an interesting hack :D
#61 posted by
metlslime on 2018/01/06 00:42:29
In Fitzquake-derived engines, EF_MUZZLEFLASH will disable lerping for one frame.
But I think Preach's answer is the best.
#62 posted by
killpixel on 2018/01/06 00:58:49
The issue with EF_MUZZLEFLASH, DP_EF_TELEPORT_BIT and Preach's solution (unless I'm missing something) is that I don't want to nolerp the entire model, just a part of it.
Looks like splitting it off into another entity is that way to go about it (lame!)