www.tombraiderforums.com  

Go Back   www.tombraiderforums.com > Tomb Raider Modding > Tomb Raider Level Editor > Next Generation Level Editor

Reply
 
Thread Tools
Old 08-10-21, 16:40   #1
Krystian
Archaeologist
 
Join Date: May 2010
Posts: 1,170
Default Overhang Climbing Plugin

Overhang Climbing Plugin





As my climbing plugin has finally been released, I have decided to make a thread for it here on the forums. The purpose of this thread is to have a place for discussions about the plugin, reporting bugs or unforseen issues, asking and answering questions, as well as for me to post about updates and bugfixes.


------------------------
History

Some backstory about this plugin, feel free to skip if you're not in the mood for reading a whole novel...

It started all the way back in 2013, when I first wanted to somehow add overhang climbing to TRLE. At the time, I was involved with the TLD project, meant to be an Angel of Darkness continuation made in TRLE.
Of course, back then plugins weren't around, so I tried implementing it with TRNG's Animation= scripts. I was becoming quite proficient with TRNG's scripting possibilities and was familiar with almost all the ENV_ constants for animation scripts. However I noticed that there were none which would allow me to check for slopes on the ceiling (in fact, it's not at all possible to check for slopes, even ones on the floor). So I had to devise a different method...

I was aware that TRNG made it possible to detect objects with TestPosition scripts, allowing to set up a condition that Lara is in a particular postion, relative to some object. So with that, I came up with an idea to make an invisible "sheet" object (textured with magenta) which could be placed over the ceiling slopes, and then create numerous TestPosition scripts around this object. And as a matter of fact it did work to some extent, which I have actually documented in the video below




Excuse the terrible animations, they were placeholders for testing
However I didn't get very far beyond what's showcased in the video with this approach. Having realised this, I've accepted that it's just not feasible to do...


Fast forward to the end of 2016. Paolone has released the TRNG plugin SDK. I was very excited for it, but I was also quite occupied at the time, so I couldn't check it out immediately. I also didn't know what to do with the plugin SDK, yet.
Several months had passed. During the summer break in 2017, I recalled my previous unsuccessful attempt of the climbing. I had the sudden urge to try it again with these new possibilities. Started working on animations and brushed up on my programming knowledge I've picked up over the years when messing around with geeky computer stuff. I started writing the first few lines of code, but I sticked mostly to solutions Paolone had provided in the plugin help files. But I noticed that I wasn't able to detect ceiling slopes again, as before. I sent Paolo an email, asking if it's indeed possible and I just overlooked it. Paolone responded, but unfortunately was only able to say that he also didn't know of any ways to check for ceiling slopes.

So, it seemed that I was stuck with the same issue as before. I experimented with different code, but all the results I had weren't what I had hoped for. I didn't give up, though. I told myself that if I want to do this, perhaps I should start studying the underlying Tomb4 engine on a technical level. With help from knowledgeable people like Lwmte and documentation like TRosettaStone, I read about the mechanics underpinning the engine. In particular, I focused on the way the collision and animation system worked, as I figured these would be the most relevant info necessary for the plugin. It was difficult and there were many things that were confusing, that I wasn't able to figure out initially (such as understanding how the engine's FloorData system works).

However it wasn't in vain, I was finally getting somewhere. The plugin was doing a lot better than before. I was able to seperate the climbing animations from the main LARA object and put them in a new object, from which the animations would be passed to Lara at runtime. I learned how to properly read floordata parameters to check if a particular sector was a ceiling slope, a monkeyswing or had a ladder. All was finally starting to come together...





Unfortunately, soon after I got busy again, so progress on the plugin had to be stalled. After uploading the above video in 2018, there were only infrequent updates given about it, because there wasn't much going on.
I suddenly realised that I had not been doing much about the plugin for almost 3 years and that it's time to put gears into max shift once more. I revisioned the plugin and started re-doing some of the animations (there were probably like 2 revisions of the animation set alone...). But the scope of everything was demotivating sometimes, when I saw how much was still left to do.
Thankfully, someone was able to provide some support and help in organising my workflow, and this person was MarlenaCrystal. With her help, I was able to maintain a more orderly workflow and make consistent advancements. Without her input, this plugin would still remain in development hell. So thanks a bunch, Marlena!

I have also ChocolateFan to thank, whenever I still had some uncertainty about how the engine operates and how I could achieve something within it, she always happily provided her knowledge. Slowly, but surely, the plugin was coming close to finish. Finally I was able to complete the most important aspects of the plugin and bring it to the community! Now hopefully it will be useful to many people for adding intricate platforming to their levels


-----------------------

I still have some things to polish in the plugin, but overall I would consider it mostly finished. Sorry for such a long-winded history, but developing this plugin and providing it to the community has been quite a ride. I hope it was worth the read and inspiring, at least

Krys

Last edited by Krystian; 08-10-21 at 20:23.
Krystian is offline   Reply With Quote
Old 08-10-21, 19:40   #2
Krystian
Archaeologist
 
Join Date: May 2010
Posts: 1,170
Default Updates

*reserved*

Last edited by Krystian; 09-10-21 at 07:08.
Krystian is offline   Reply With Quote
Old 08-10-21, 19:40   #3
Krystian
Archaeologist
 
Join Date: May 2010
Posts: 1,170
Default Bug reports

Reported bugs:


Status: not fixed yet
Quote:
Originally Posted by Titak View Post
If you have an Animation= command for the ladder-to-monkey move, it will overrule the move in the plugin.
Result is that Lara is just hanging there on the slope, not going anywhere.

Last edited by Krystian; 16-10-21 at 17:44.
Krystian is offline   Reply With Quote
Old 10-10-21, 21:18   #4
AkyV
Moderator
 
Join Date: Dec 2011
Location: Hungary
Posts: 4,527
Exclamation

For Krystian's request: plugin has been updated.
About the PDF manual.
AkyV is offline   Reply With Quote
Old 15-10-21, 21:04   #5
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 33,098
Default

Great work Krystian!
Works like a charm!


Note:
If you have an Animation= command for the ladder-to-monkey move, it will overrule the move in the plugin.
Result is that Lara is just hanging there on the slope, not going anywhere.
So if that is happening, simply get rid of the Animation= command.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak is offline   Reply With Quote
Old 15-10-21, 22:24   #6
Kubsy
Historian
 
Kubsy's Avatar
 
Join Date: Nov 2019
Location: Polska
Posts: 485
Default

Quote:
Originally Posted by Titak View Post
Great work Krystian!
Works like a charm!


Note:
If you have an Animation= command for the ladder-to-monkey move, it will overrule the move in the plugin.
Result is that Lara is just hanging there on the slope, not going anywhere.
So if that is happening, simply get rid of the Animation= command.
Isn't that a bug?
__________________
Chronicles Lara: "Whatever"
Kubsy is offline   Reply With Quote
Old 16-10-21, 12:14   #7
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 33,098
Default

I see it as one of those "the engine wants to do two things at the same time and then picks one of those things" situations.
Like some FLEP patches not working correctly when also using TRNG scripting for the same thing (clear backgrounds for example)

So I do not see this as a bug.
I might be wrong though... not knowing anything about the coding of this.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak is offline   Reply With Quote
Old 16-10-21, 12:55   #8
Krystian
Archaeologist
 
Join Date: May 2010
Posts: 1,170
Default

Quote:
Originally Posted by Titak View Post
I see it as one of those "the engine wants to do two things at the same time and then picks one of those things" situations.
It's precisely this
The climbing animations are managed before TRNG executes the Animation= script commands. Since the animation scripts are executed last, it overrides what the plugin does.

I hoped giving the climbing animations new stateIDs would fix the issue, but unfortunately it hasn't. I want to try addressing this bug in the next update of the plugin with a different approach. I didn't manage to fix it for this first release, but thank you for bringing attention to it, I forgot to mention it in the manual
Krystian is offline   Reply With Quote
Old 16-10-21, 13:16   #9
justin
Professor
 
Join Date: Aug 2001
Location: CT, USA
Posts: 4,401
Default

Quote:
Originally Posted by Titak View Post
Great work Krystian!
Works like a charm!


Note:
If you have an Animation= command for the ladder-to-monkey move, it will overrule the move in the plugin.
Result is that Lara is just hanging there on the slope, not going anywhere.
So if that is happening, simply get rid of the Animation= command.
I'm glad you remembered to post this here, I totally forgot after we discovered this yesterday

Krystian, this plugin is brilliant
__________________
Alias: AnkhOfMishra
justin is offline   Reply With Quote
Old 16-10-21, 14:33   #10
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 33,098
Default

Quote:
Originally Posted by Krystian View Post
It's precisely this
The climbing animations are managed before TRNG executes the Animation= script commands. Since the animation scripts are executed last, it overrides what the plugin does.

I hoped giving the climbing animations new stateIDs would fix the issue, but unfortunately it hasn't. I want to try addressing this bug in the next update of the plugin with a different approach. I didn't manage to fix it for this first release, but thank you for bringing attention to it, I forgot to mention it in the manual
Ah, so I was right. Nice.


Am I right in thinking that this set does not include "monkey to overhead ladder"?
Like going from a flat monkey swing to a ladder above it.
From monkey to sloped ceiling is possible, but instead of sloped ceiling it is a flat wall. (I hope I was clear enough... )
Just checking, because I have a script for that move and if this move is included in the plugin, it could also conflict with the scripted move.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak 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 02:50.


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