www.tombraiderforums.com  

Go Back   www.tombraiderforums.com > Tomb Raider Modding > Tomb Raider Level Editor > Software Development

Reply
 
Thread Tools
Old 21-09-19, 21:17   #731
Joey79100
Professor
 
Joey79100's Avatar
 
Join Date: Mar 2012
Location: France
Posts: 3,516
Default

Oh, and maybe a patch to change that animation. I mean, it's actually not a proper landing animation, but the underwater swim to stand animation that they reused. It would be nice to be able to have a different one.

And there are other things I could ask for too, mainly being able to change the values of some constants. For example, the frame at which a flare is thrown in the throw flare animation, and I know I wanted other animations to be changed too but on top of my head I can't remember right now.
If possible of course, I'm not demanding.
Joey79100 is offline   Reply With Quote
Old 21-09-19, 22:17   #732
Uzi master
Relic Hunter
 
Uzi master's Avatar
 
Join Date: Jul 2009
Location: Canada
Posts: 7,033
Default

Quote:
Originally Posted by Boobandie View Post
But it will also massively inflate the amount of vertices in your level if you use it on more than a few objects. Having the engine just render shading like that is much better for a larger scale build.

Is it possible to alter how shading is rendered in other ways? Something resembling cell shading would be amazing.
Actually, you can also just apply different shine values to achieve the same effect.
Uzi master is offline   Reply With Quote
Old 21-09-19, 22:52   #733
ChocolateFan
Historian
 
ChocolateFan's Avatar
 
Join Date: Dec 2017
Location: I am female
Posts: 424
Default

Not all things are possible, but I will look into them. Meanwhile, if you remember the other animations please tell me Joey79100.
ChocolateFan is offline   Reply With Quote
Old 22-09-19, 16:34   #734
Joey79100
Professor
 
Joey79100's Avatar
 
Join Date: Mar 2012
Location: France
Posts: 3,516
Default

Oh thanks!
Well, if I believed in Santa I would ask for all constants to be customizable.
But the ones I often find myself begging for are these ones:
  • Low water landing animation. By default, landing in low water will play the underwater swim to stand animation, we don't have a proper animation for that. (exactly what I suggested in my previous post, I put it here only for consistency).
    Constant: SWIM2QSTND_A, but there is no separate constant for the landing

  • Standing jump grab animation. We already have a patch that lets us customize the frame at which it should start, but we're bound to using animation 96 (jump forward grab animation), instead of being able to have a proper animation. This is stupid because Core actually made an animation, they just didn't use it (animation 29).
    Constant: STARTHANG_A

  • Ledge release animation. It defaults to the jump up animation, so we can't have a transition either. Same story by the way, there is an animation, it's just unused (animation 37 - this one directly leads to the freefall animation though, so it's not possible to release a ledge to grab the one just below if there is one, and you always get the hard fall animation).
    Constant: STOPHANG_A

  • Push/Pull ready frame number. They hardcoded a delay of 19 frames in the push/pull animation before the player can actually start pushing/pulling a block, instead of a proper solution using State Changes. For and AOD style animation, where she doesn't move until she starts pushing/pulling, it adds an unnecessary delay.
    Constant: PPREADY_F

  • Throw flare frame number. I have a different throw flare animation, and well, the length of the animation is already hardcoded to 32 frames, but the frame at which the flare is thrown is also hardcoded to frame 20.
    Constants: FL_THROWRELEASE_F (frame at which it's thrown) & FL_THROW_FRAMES (animation length)

  • Pickup flare frame numbers for every flare pickup animation (to decide at which frame the flare should appear in Lara's hand).
    Constants: PICKUPF_F & PICKUPF_UW_F

I also thought about the following ones, however I don't think they're as important because they are more or less easily fixable with TRNG scripts, or because I don't think anyone ever asked for them:
  • Pickup item frame numbers for every pickup animation (to decide at which frame the item should disappear).
    Constants: PICKUP_F & PICKUP_UW_F

  • Running jump delay removal/customization. When the run is initiated with the start running animation (not from landing, walking, etc, only from stance), the jump is not possible during the start running animation and is enabled only after frame 4 of the running animation is reached once.
    Variable: jump_ok in the lara_as_run() function

  • Dive delay. When on water surface, if you press Jump to dive into the water, there is a delay of 10 frames before the animation is triggered (if you release the key before it's not triggered at all of course). They probably wanted to make it look like she takes her breath before diving.
    Constant:DIVE_COUNT

I think that's all, I'll come back if I can think of more of them. The constants can be found LARAANIM.H and LARAFLAR.H.

Last edited by Joey79100; 22-09-19 at 19:55.
Joey79100 is offline   Reply With Quote
Old 22-09-19, 16:46   #735
LoreRaider
Archaeologist
 
LoreRaider's Avatar
 
Join Date: Jul 2016
Location: Italy
Posts: 1,572
Default

EDIT: oops nevermind.. replied to something really old
__________________
"Everybody lies, no exceptions."
LoreRaider is online now   Reply With Quote
Old 02-10-19, 15:22   #736
ChocolateFan
Historian
 
ChocolateFan's Avatar
 
Join Date: Dec 2017
Location: I am female
Posts: 424
Default

So, here it is: https://drive.google.com/open?id=1O2...TZ4sWcG0_gzLZz. Pick a tomb4.exe already patched with Delete tomb4.exe unused resources and Extend Tomb4.exe size patches and test in it, carefully because the animation system is in fact a minefield.

*TR4 unnamed soldier voice* I do [The animation system does] a good job with the mines.

The low water landing animation is harder than the others, I still do not know how I would accomplish its modification.

*Zip voice* Now this is not going to be easy...

And I have not found the push/pull ready frame number. Can you explain how this delay happens exactly?

*Jean-Yves voice* More information, oui?
ChocolateFan is offline   Reply With Quote
Old 02-10-19, 17:21   #737
TR-Freak
Relic Hunter
 
TR-Freak's Avatar
 
Join Date: Jan 2008
Location: Deutschland
Posts: 5,135
Default

You are awesome
__________________
"Your perception of good timing is...bad!"
TR-Freak is online now   Reply With Quote
Old 02-10-19, 17:44   #738
Joey79100
Professor
 
Joey79100's Avatar
 
Join Date: Mar 2012
Location: France
Posts: 3,516
Default

Oooooh you did it!

Right now I don't have much time to test things extensively, but here are the results for what I've tested:

Quote:
Standing jump grab animation
Animation & Frame: ok!

Ledge release animation
If the patch is enabled, even with default values, it crashes as soon as you release a ledge.

Throw flare frame number
If the patch is enabled, even with default values, it crashes as soon as one of the throw animations (standing, from LARA, or just the arm, from FLARE_ANIM) start playing.

Pickup flare frame numbers
Underwater: ok!
Land (crouching): ok!
Land (standing): ok!

Pickup item frame numbers
Underwater: ok!
Land (standing): ok!
Land (crouching): ok!
Land (low pedestal): No effect?
Land (high pedestal): ok!
Land (hole-in-wall): ok!
Land (crowbar): ok!

Running jump delay removal
Not fully working: it seems it unlocks Lara's jump during the main run animation cycle (anim 0), but she still can't jump during the start running animation (anim 6), even if the state change is setup correctly.

Running jump delay customization
Works but like the previous patch, it seems limited to anim 0. So you can extend the time before Lara is able to jump, or even disable it completely if you put a frame number higher than the length of the run animation, but it still doesn't seem to affect anim 6.

Dive delay
Ok! However it is needed to say that value 0 (or below) will "remove" the dive animation completely (the counter is incremented and it's done before the check), so the minimum value should be 1, which actually means no delay at all (so I was wrong when I say it's a 10 frames delay, it's actually 9 frames when you consider that).
Also I noticed there's already a "Disable dive delay" patch in the initial FLEP release patches, but that one doesn't seem to work. Could be deleted?
I'll update the post later when I can make deeper tests. Thank you very much for doing that!
[post updated in 2021 but covid years don't count so I'm not actually late ��]

Last edited by Joey79100; 03-07-21 at 17:30.
Joey79100 is offline   Reply With Quote
Old 02-10-19, 18:05   #739
Tomb Raidering
Professor
 
Tomb Raidering's Avatar
 
Join Date: Aug 2019
Location: Pie Titty
Posts: 3,899
Default

Quote:
Originally Posted by ChocolateFan View Post
*TR4 unnamed soldier voice* I do [The animation system does] a good job with the mines.

*Zip voice* Now this is not going to be easy...

*Jean-Yves voice* More information, oui?
My PLs seem to pay off...
_________

On topic: Changing those hard-corded animations seem like a lot of work. I tip my hat you valuable TRLE programmers...
__________________
Talk about being your own worst enemy.
Tomb Raidering is offline   Reply With Quote
Old 02-10-19, 19:24   #740
Joey79100
Professor
 
Joey79100's Avatar
 
Join Date: Mar 2012
Location: France
Posts: 3,516
Default

Oh I realize I forgot your question.
Quote:
Originally Posted by ChocolateFan View Post
And I have not found the push/pull ready frame number. Can you explain how this delay happens exactly?

*Jean-Yves voice* More information, oui?
Voilą de l'information !
I don't know how much the MovableBlockCollision() function has changed between TR3 and TR4 but this seems to be still relevant in TR4:

This function (in MOVEBLOK.C - it's called when Lara is colliding with the pushable block if I understand correctly) is the one that handles triggering Lara's ready to push/pull animation, as well as the push & pull animations if she's in the ready animation.
So there's this part that says "if Lara is ready to push/pull..." (lines 248 to 279), and a bunch of stuff is done there, especially checking the keys currently pressed to make Lara push or pull the block if Up or Down is pressed (by setting her Next (Goal) StateID accordingly). The thing is, at the very beginning of that IF statement, there's another one (line 250) that returns (nothing, it only stops the function) if Lara's current animation frame number is different than 19 (the value of PPREADY_F, which is actually the last frame of the push/pull ready animation (animation 120)). So it prevents the function to reach the code that allows Lara to push or pull a block.

So effectively, we can only have one frame of the animation where Lara can push or pull the block. But changing PPREADY_F's value would allow us to choose that frame, so we're not stuck with a fixed 19-frames long animation. So even a 1-frame animation could work.
Joey79100 is offline   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 15:03.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.