Warden Souls don't fade out based on beat rate
MerpisMe opened this issue ยท 18 comments
When the Warden is angry, its souls still take the same amount of time to fade out as they would when it's not. This causes the souls to barely appear to pulse at higher speeds, which contrasts official footage.
Also this is unrelated, but do you know if it's possible to make the last keyframes of the emerge, sniff, and roar animation be the idle animation instead? As of now I think you have the Warden returning to the basic "Steve" pose, I'm just wandering if it could return to the idle animation's calculations on the last keyframe instead.
Also this is unrelated, but do you know if it's possible to make the last keyframes of the emerge, sniff, and roar animation be the idle animation instead? As of now I think you have the Warden returning to the basic "Steve" pose, I'm just wandering if it could return to the idle animation's calculations on the last keyframe instead.
I'm not sure if it's actually feasible, but it's worth a mention.
hmm, maybe. i'll try it out. if my idea as to how to go about doing it doesn't work, though, i'm not gonna bother
only issue with this solution (if it works) is that the last line of every part's animation is twice the length
Also this is unrelated, but do you know if it's possible to make the last keyframes of the emerge, sniff, and roar animation be the idle animation instead? As of now I think you have the Warden returning to the basic "Steve" pose, I'm just wandering if it could return to the idle animation's calculations on the last keyframe instead.
I'm not sure if it's actually feasible, but it's worth a mention.
Also this is unrelated, but do you know if it's possible to make the last keyframes of the emerge, sniff, and roar animation be the idle animation instead? As of now I think you have the Warden returning to the basic "Steve" pose, I'm just wandering if it could return to the idle animation's calculations on the last keyframe instead.
I'm not sure if it's actually feasible, but it's worth a mention.
hmm, maybe. i'll try it out. if my idea as to how to go about doing it doesn't work, though, i'm not gonna bother
Also this is unrelated, but do you know if it's possible to make the last keyframes of the emerge, sniff, and roar animation be the idle animation instead? As of now I think you have the Warden returning to the basic "Steve" pose, I'm just wandering if it could return to the idle animation's calculations on the last keyframe instead.
I'm not sure if it's actually feasible, but it's worth a mention.
hmm, maybe. i'll try it out. if my idea as to how to go about doing it doesn't work, though, i'm not gonna bother
only issue with this solution (if it works) is that the last line of every part's animation is twice the length
nope, doesn't work, oh well
Almost got a fix for this, it works perfectly until the Warden roars.
...aaaaand it won't fix! Great!
At this point all that's left is just decreasing the fade time since fast heartbeat speeds just breaks for some reason.
With this route the fading speed is still fine, and it's timed so the instant it hits zero at max anger, the next beat will start. Is this fine?
It's not possible to sync the amount of time the heartbeat takes to the client, because you know, datatrackers won't work for some reason. The only solution to this is to make the souls pulse even faster (fade completely at 10 ticks/half a second,) and that's really it.
It technically IS possible to simply send a boolean to the client using our current method and make the souls pulse faster based on that, but it would make fading inconsistent (why would is suddenly speed up at level 30 or so? It'd look strange,) and it would just cause more unnecessary code clutter. I think reducing the time it takes to pulse is really the only good solution here, unless anyone can find out how to get datatrackers to actually work and properly sync values to the client.
It's not possible to sync the amount of time the heartbeat takes to the client, because you know, datatrackers won't work for some reason. The only solution to this is to make the souls pulse even faster (fade completely at 10 ticks/half a second,) and that's really it.
It's not possible to sync the amount of time the heartbeat takes to the client, because you know, datatrackers won't work for some reason. The only solution to this is to make the souls pulse even faster (fade completely at 10 ticks/half a second,) and that's really it.
would it not work to just make a new variable that saves the second previous heartbeat (warden.lastlastClientHeartBeat), and then subtract warden.lastClientHeartBeat from warden.lastlastClientHeartBeat, and then use the result as a multiplier for the fade?
it'd be a bit delayed, sure, but it's better than nothing
It's not possible to sync the amount of time the heartbeat takes to the client, because you know, datatrackers won't work for some reason. The only solution to this is to make the souls pulse even faster (fade completely at 10 ticks/half a second,) and that's really it.
would it not work to just make a new variable that saves the second previous heartbeat (warden.lastlastClientHeartBeat), and then subtract warden.lastClientHeartBeat from warden.lastlastClientHeartBeat, and then use the result as a multiplier for the fade?
would it not work to just make a new variable that saves the second previous heartbeat, then subtract warden.lastClientHeartBeat from it, and then use the result as a multiplier for the fade?
That is possible, but I fear it could look strange when the Warden's overallAnger suddenly drops (I.E. it just killed a bat that it was mad with)
I did think about that and it would technically be the only "working" method to do this without a ton of clutter, so I'll give it a try whenever I'm not busy.
ah, that's true. but even still, it'd likely be mostly unnoticeable since the warden's attack animation moves its body back, and it generally tends to wander after attacking (with there being about a 50% chance it'll turn away from the player when doing so)
if it'll only last across 1-2 beats it'll be fine, as long as it stays in sync with the sounds
would it not work to just make a new variable that saves the second previous heartbeat, then subtract warden.lastClientHeartBeat from it, and then use the result as a multiplier for the fade?
That is possible, but I fear it could look strange when the Warden's overallAnger suddenly drops (I.E. it just killed a bat that it was mad with)
I did think about that and it would technically be the only "working" method to do this without a ton of clutter, so I'll give it a try whenever I'm not busy.
At this point all that's left is just decreasing the fade time since fast heartbeat speeds just breaks for some reason. With this route the fading speed is still fine, and it's timed so the instant it hits zero at max anger, the next beat will start. Is this fine?
Nvm, it just took an embarrassingly long time to figure out how to do this. Gonna commit the fix soon!
