people playing: 54, servers online: 21, games played: 144,367,749 Top Player: Gentleman

  Toribash Community » Help » Tutorials
Register FAQ General Rules Community
Closed Thread
 
Thread Tools Display Modes
Old Nov 18, 2006   #1
Skjef
Member
 
Blue Belt
Join Date: Aug 2006
Posts: 36



.rpl file editing
Some have expressed interest as to how I accomplished shotputfinal.rpl and other hand-edited replays.

This is a quick overview on rpl files.

I'll use for my example the shotputfinal.rpl file, which is located in your <toribash install>\replay\ folder as of Toribash v2.2.

I suggest Notepad++ for editing, mostly for line numbers, but it also has some nice advanced search/replace functionality as well.

Line 1:
#!/usr/bin/toribash
Hashbang line. You don't need to know anything about this.

Line 2:
#made with toribash-2.1
Default comment generated by Toribash. Any line preceded with '#' is ignored by Toribash when rendering the replay.

Line 3:
VERSION 6
Version number. It's been 6 since at least 2.0. Haven't bothered mucking with it.

Line 4:
FIGHT 0; shotputfinal Skjef uke
<replay name> <tori's name> <uke's name>
Spaces are used for parsing, so make sure your <replay name> doesn't have any.
The number after FIGHT can be safely ignored.

Line 5:
AUTHOR 0; Skjef
Defines the author's name.
The number after AUTHOR can be safely ignored.

Line 6:
NEWGAME 0;550 10 0 0 0 2 1500 1 0 classic 0 0
<total replay frames> <frames per turn> <?> <?> <?> <dq> <engage distance> <self damage> <wrist/ankle dq> <mod file> <?> <dojo size> <dismemberment threshold>
<dq>: 2 = No DQ, 3 = DQ.
<wrist/ankle dq>: 0 = DQ, 1 = No DQ.
<?>: No idea.
You may notice that there is one more <*> option than there is on the example. <dismemberment threshold> was added in 2.2, so it didn't have a field when I made this replay with 2.1.
The number after the NEWGAME indicates whether it's an single- or a multi-player replay. 0 = single, 1 = multi.

Line 7:
FRAME 0; 0 0
<tori's score> <uke's score>
The number after FRAME indicates the frame that the following JOINT, POS, QAT, LINVEL, ANGVEL, GRIP and CRUSH commands apply to.

Line 8:
JOINT 0; 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 4 15 4 16 2 17 2 18 4 19 4
<joint number> <joint state> <joint number> <joint state> ... <joint number> <joint state>
The joint numbers are as follows:
0 = neck
1 = chest
2 = lumbar
3 = abs
4 = right pec
5 = right shoulder
6 = right elbow
7 = left pec
8 = left shoulder
9 = left elbow
10 = right wrist
11 = left wrist
12 = right glute
13 = left glute
14 = right hip
15 = left hip
16 = right knee
17 = left knee
18 = right ankle
19 = left ankle
The joint states are as follows:
If a joint isn't listed, it also counts as relax.
1 = extend/right rotate/right bend
2 = contract/left rotate/left bend
3 = hold
4 = relax
The number after JOINT means this command refers to either tori or uke. 0 = tori, 1 = uke.
JOINT is identical for tori and uke.

Line 9:
POS 0; 1.000000 7.400000 2.590000 1.000000 7.450000 2.140000 1.000000 7.450000 1.890000 1.000000 7.500000 1.690000 1.000000 7.550000 1.490000 0.750000 7.450000 2.090000 0.450000 7.450000 2.240000 0.050000 7.450000 2.240000 1.250000 7.450000 2.090000 1.550000 7.450000 2.240000 1.950000 7.450000 2.240000 -0.350000 7.400000 2.240000 2.350000 7.400000 2.240000 0.800000 7.550000 1.390000 1.200000 7.550000 1.390000 0.800000 7.550000 1.040000 1.200000 7.550000 1.040000 1.200000 7.550000 0.440000 0.800000 7.550000 0.440000 0.800000 7.450000 0.040000 1.200000 7.450000 0.040000
<x co-ordinate> <y co-ordinate> <z co-ordinate> <x co-ordinate> <y co-ordinate> <z co-ordinate> ... <x co-ordinate> <y co-ordinate> <z co-ordinate>
Each triplet of x,y,z co-ordinate refers to a different joint, using the same ordering scheme as the JOINT list above. So, the first triplet refers to the neck joint, the second triplet to the chest joint, etc..., and the last triplet refers to the left ankle joint.
The y axis is directly towards uke, as seen from tori. The x axis is perpendicular to the y axis, and the z axis is straight up and down.
The reason the numbers for the y co-ordinates are so high is because I used a 1500 engage distance for this replay. The regular value for y co-ordinates at an engage distance of 100 is about 0.4.
The number after the POS means this command refers to either tori or uke. 0 = tori, 1 = uke.
POS is identical for tori and uke.

Line 10:
QAT 0; 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000
<?> <x rotation> <y rotation> <z rotation> <?> <x rotation> <y rotation> <z rotation> ... <?> <x rotation> <y rotation> <z rotation>
This sets the current orientation of the joint in question. It uses the same ordering scheme as the JOINT list above.
<?>: No idea. Doesn't seem to affect anything.
The number after the QAT means this command refers to either tori or uke. 0 = tori, 1 = uke.
QAT is not the same for tori and uke.

Line 15:
QAT 1; 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000
<z rotation> <y rotation> <x rotation> <?> <z rotation> <y rotation> <x rotation> <?> ... <z rotation> <y rotation> <x rotation> <?>
Note that the implementation is backwards for uke. I have no idea why.
This sets the current orientation of the joint in question. It uses the same ordering scheme as the JOINT list above.
<?>: No idea. Doesn't seem to affect anything.
The number after the QAT means this command refers to either tori or uke. 0 = tori, 1 = uke.
QAT is not the same for tori and uke.

Line 11:
LINVEL 0; 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
<x velocity> <y velocity> <z velocity> <x velocity> <y velocity> <z velocity> ... <x velocity> <y velocity> <z velocity>
This sets the current linear (straight line) velocity for a given joint. From Tori's perspective, looking towards Uke, a negative y velocity is towards Uke, a positive is away. A negative x velocity is to the right, a positive is to the left. A positive z velocity is up, and a negative is down.
These triplets use the same ordering scheme as the JOINT list above.
The number after the LINVEL means this command refers to either tori or uke. 0 = tori, 1 = uke.
LINVEL is identical for tori and uke.

Line 12:
ANGVEL 0; 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
<x velocity> <y velocity> <z velocity> <x velocity> <y velocity> <z velocity> ... <x velocity> <y velocity> <z velocity>
This sets the current angular (rotational) velocity for a given joint. The axes for this is the same as for QAT.
These triplets use the same ordering scheme as the JOINT list above.
The number after the ANGVEL means this command refers to either tori or uke. 0 = tori, 1 = uke.
LINVEL is identical for tori and uke.

Line 30:
CRUSH 0; 0
<joint> <joint> ... <joint>
This command breaks the joint/body connection as listed below. Any number of joints may be listed in a single CRUSH command.
0 = neck/chest
1 = chest/lumbar
2 = lumbar/abs
3 = abs/glutes
4 = right pec/chest
5 = right shoulder/right pec
6 = right elbow/right bicep
7 = left pec/chest
8 = left shoulder/left pec
9 = left elbow/left bicep
10 = right wrist/right forearm
11 = left wrist/left forearm
12 = right glute/abs
13 = left glute/abs
14 = right hip/rglute
15 = left hip/lglute
16 = right knee/right calf
17 = left knee/right calf
18 = right ankle/right calf
19 = left ankle/right calf
The number after the CRUSH means this command refers to either tori or uke. 0 = tori, 1 = uke.
CRUSH is identical for tori and uke.

Additional command(s) not used in shotputfinal.rpl:
GRIP 0; 1 1
<left hand> <right hand>
<* hand>: 1 = grip, 2 = no grip.
The number after the GRIP means this command refers to either tori or uke. 0 = tori, 1 = uke.
GRIP is identical for tori and uke.

FRACT 0; 1
<joint> <joint> ... <joint>
Fractures a joint. It uses the same list as the JOINT command above, but functions more like CRUSH.
The number after the FRACT means this command refers to either tori or uke. 0 = tori, 1 = uke.
FRACT is identical for tori and uke.

EDIT: Updated JOINT as suggested by Qegola.
EDIT2: Added FRACT command.
Skjef is offline  
Old Nov 18, 2006   #2
neterkunal
Member
 
Join Date: Nov 2006



Re: .rpl file editing
this is a good tutorial but...ummmm.... the last part i got silly.i could not understand the last part,but nice tutorial anyways!
neterkunal is offline  
Old Nov 18, 2006   #3
Tombot
Member
 
Join Date: Aug 2006



Re: .rpl file editing
Not bieng mathematicaly minded I am not able to fully comprehend what is going on here. :o
Tombot is offline  
Old Nov 19, 2006   #4
No_0ne2
Member
 
Join Date: Aug 2006



Re: .rpl file editing
Originally Posted by Tombot
Not bieng mathematicaly minded I am not able to fully comprehend what is going on here. :o


I am
Attached Files
File Type: rpl 1Uppercut_Destruction.rpl (15.1 KB, 403 views)
No_0ne2 is offline  
Old Nov 19, 2006   #5
empreamkick
Member
 
5th Dan Black Belt
Join Date: Sep 2006
Posts: 428



Re: .rpl file editing
Very Nice Skjef

keep up the Good work.
Chuck Norris is in fact the most deadliest weapon on this planet, But then there's EmpreamKick
empreamkick is offline  
Old Nov 19, 2006   #6
Skjef
Member
 
Blue Belt
Join Date: Aug 2006
Posts: 36



Re: .rpl file editing
Originally Posted by No_0ne
Originally Posted by Tombot
Not bieng mathematicaly minded I am not able to fully comprehend what is going on here. :o


I am

Beautiful, No_0ne.
Skjef is offline  
Old Nov 19, 2006   #7
COM(B)AT
Senior Member
 
Black Belt
Join Date: Nov 2006
Posts: 1,268



Re: .rpl file editing
im sorry but i dont speak....that language :P
Don't take life too seriously, you never get out of it alive anyways.
COM(B)AT is offline  
Old Nov 20, 2006   #8
No_0ne2
Member
 
Join Date: Aug 2006



Re: .rpl file editing
Originally Posted by Skjef
Originally Posted by No_0ne
Originally Posted by Tombot
Not bieng mathematicaly minded I am not able to fully comprehend what is going on here. :o


I am

Beautiful, No_0ne.


Also, how I make them spin, I've been trying to make Tori spin quickly toward Uke and rip him to shreds.
No_0ne2 is offline  
Old Nov 20, 2006   #9
Skjef
Member
 
Blue Belt
Join Date: Aug 2006
Posts: 36



Re: .rpl file editing
Originally Posted by No_0ne
Also, how I make them spin, I've been trying to make Tori spin quickly toward Uke and rip him to shreds.

Use ANGVEL. You'll probably want to rotate on the Z axis.
Skjef is offline  
Old Nov 21, 2006   #10
Qegola
CHAC'S JOCKSTRAP
 
Brown Belt
Join Date: Nov 2006
Posts: 2,360



Re: .rpl file editing
A very complete analysis of rpl. editting, and very useful. I find only one thing problematic, and that is the fact that the Chest and Lumbar rotate left and right rather than extend and contract - It might make more sense if you show the values that refer to these (i.e, which rotation is extending and which is contracting)
Q = QUAKER OATS
Three rules of Q - 1. Qegola and Quarantine both start with Q. 2. There is no U in Qegola. 3. Qegola is you new god.

So a man walks into a bar with a monkey. I forgot the rest of the joke but your mom is a whore.
Qegola is offline  
Closed Thread


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

Forum Jump


All times are GMT +1. The time now is 07:07 AM.




Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
ragdoll fighting game physics fighting game ragdoll fighting physics funmotion joints martial arts karate pc mac free game turn based game