Boiling Point: Road to Hell *.RF2

Post questions about game models here, or help out others!
Post Reply
StreamThread
beginner
Posts: 27
Joined: Mon Mar 21, 2016 9:58 pm
Location: Russian Federation
Has thanked: 16 times

Boiling Point: Road to Hell *.RF2

Post by StreamThread » Sat Apr 30, 2016 9:22 pm

I'm creating new characters for Xenus: Boiling Point (Road to Hell) game, and i want to use original animations for new recreating models. But official plugins for *.RF2 format contain only Exporter without import. Somebody can help me and create 3ds max import script?

RF2 files of characters models contain together geometry, bones, animations. How i know about animations, is Position format 16 bits/key TFLOAT16 and Rotation format 48 bits/key TQUAT 48. Also RF2 files contains specific collisions and hitmesh geometry, ports and dummies, animations curve data. Detailed information about models structures might be found in doc files from SDK. Also _RF2View tool from SDK for preview all models from game. And VEExchange plugin for 3ds max can load all geometry from game Level Editor to 3ds max, and back. But characters and other objects loading to Max without bones, anims, and of course not in T-Poses.

Plugins can be download here (for 3ds max 6-8), and Boiling Point SDK is here.


Some samples of characters, vehicles (also using bones) and weapons: http://www.mediafire.com/download/bgx0a ... q18/RF2.7z


And question about textures:
Engine of this game is Vital Engine 2.0. And this engine uses texture cache instead textures. For any one texture use two files with extensions *.DT1 and *.DT2. In tools from SDK this textures get uncached and can be ripped. But navigate and sort in ripped textures very hard and long, because in game 3000+ textures.
Availability sources of textures in Textures game folder is important, because without them LevelEditor can't working in developer mode, and lose some functionality.
So, my question is, maybe possible to create a converter for this cached textures?

Samples of cached textures: http://www.mediafire.com/download/7r384 ... 8/CACHE.7z
Last edited by StreamThread on Sun May 01, 2016 12:11 pm, edited 1 time in total.

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 3461
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 955 times
Been thanked: 1876 times

Re: Boiling Point: Road to Hell *.RF2

Post by shakotay2 » Sun May 01, 2016 8:49 am

StreamThread wrote:Somebody can help me and create 3ds max import script?
What exactly do you mean by "help"? Do you know maxscript?
If so then read here:
viewtopic.php?f=16&t=11090&p=118039&hil ... pt#p118039
(When modifying the script for RF2 you'll need to use readFloat insted of readShort and readHalfFloat for example.)
RF2 files of characters models contain together geometry, bones, animations.
The mesh format seems to be pretty simple:
STS_Hummer_Door_Fallen-RF2.jpg
You do not have the required permissions to view the files attached to this post.
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 3461
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 955 times
Been thanked: 1876 times

Re: Boiling Point: Road to Hell *.RF2

Post by shakotay2 » Sun May 01, 2016 9:31 am

here's the script (will work with the door only, startaddress of FI's block 0x256 to be modified for other models):

Code: Select all

vertArray=#()
faceArray =#()
UVarray=#()

function ReadModelFile fName=
(     
    format "-- START READING MODEL FILE --\n"
    stream = fOpen fname "rb"          -- Open the file for reading
    fSeek stream 0x234 #seek_set      -- find the counts
    vertCount = readShort stream       -- vertex count of (first) submesh
    faceCnt     = readShort stream
    vertStride= 36
   
    --print ("@ 0x"+ bit.intAsHex(ftell stream) as string)      

    fSeek stream 0x256 #seek_set   -- face indices block
    for x = 1 to faceCnt do (
        fa= readShort stream #unsigned
        fb= readShort stream #unsigned
        fc= readShort stream #unsigned
            format "f % % %\n" fa fb fc
        append faceArray[fa+1,fb+1,fc+1]   
   )   
    print ("@ 0x"+ bit.intAsHex(ftell stream) as string)
    for i=1 to vertCount do (      --
       x  = readFloat stream
       y  = readFloat stream
       z  = readFloat stream
       fSeek stream (16) #seek_cur
       tu  = readFloat stream; tv  = readFloat stream
       append vertArray ([x,y,z]/127.0)   
      --format "v %\n" vertArray[i]
       append UVarray [tu,tv,0]             
    )
   
    msh = mesh vertices:vertArray faces:faceArray
    msh.numTVerts = vertCount
    buildTVFaces msh
    for j = 1 to vertCount do setTVert msh j UVarray[j]
    for j = 1 to faceCnt do setTVFace msh j faceArray[j]

    fClose stream
)

-- entry point --

ClearListener()
fname = getOpenFileName \
caption:" open BP: R2Hell 3D Model" \
types:"3D Model (*.RF2)|*.rf2"
--historyCategory:"3D Model chunk
format "fname: %\n" fname
   
ReadModelFile fname
(startaddress of counts (0x234) to be modified, too, for other models)
RF2_3dsmax.JPG
You do not have the required permissions to view the files attached to this post.
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 3461
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 955 times
Been thanked: 1876 times

Re: Boiling Point: Road to Hell *.RF2

Post by shakotay2 » Sun May 01, 2016 10:09 am

start of counts (check it for other models!):
STS_hummer.jpg
You do not have the required permissions to view the files attached to this post.
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

StreamThread
beginner
Posts: 27
Joined: Mon Mar 21, 2016 9:58 pm
Location: Russian Federation
Has thanked: 16 times

Re: Boiling Point: Road to Hell *.RF2

Post by StreamThread » Sun May 01, 2016 12:10 pm

shakotay2, it's good!
But me need import script with support bones and animations. Just models can be easy imported with official VEEchange plugin or with using NinjaRipper.

I'm more 3d artist than programmer, so i'm can't writing something for import by himself =(
I don't know MaxScript. I just hope, what someone writing that script if format is really so easiest. The hope it's all what i can do in this situation, unfortunately =(

I'm already created some models of characters for my "nonamed' mod of this game, and i want transfer animations from original models to new. Also i want change ingame cutscenes models. Models are exactly the same in structure, but i give link to samples of one cutscene just in case: http://www.mediafire.com/download/78ls8 ... CENE-1A.7z


There is screens how looks the official RF2Viewer:
http://fs5.directupload.net/images/160501/xfk8owkk.jpg
http://fs5.directupload.net/images/160501/bmi8dxtc.jpg
http://fs5.directupload.net/images/160501/xyiwhzqz.jpg

And 3ds max with VEExchange from LevEditor:
http://fs5.directupload.net/images/160501/5u97x85i.jpg

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 3461
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 955 times
Been thanked: 1876 times

Re: Boiling Point: Road to Hell *.RF2

Post by shakotay2 » Sun May 01, 2016 6:06 pm

StreamThread wrote:But me need import script with support bones and animations.
that's not a "15 minutes job", so sry.
There is screens how looks the official RF2Viewer:
does this viewer have an export option (for skeleton bones etc.)?
Is there an option to export the mesh?
Guess noone will care just for "bones and animations" without dealing with the mesh:
KIR_girl.jpg
(uncomplete, should be about 16 submeshes or so)
You do not have the required permissions to view the files attached to this post.
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

StreamThread
beginner
Posts: 27
Joined: Mon Mar 21, 2016 9:58 pm
Location: Russian Federation
Has thanked: 16 times

Re: Boiling Point: Road to Hell *.RF2

Post by StreamThread » Sun May 01, 2016 8:37 pm

shakotay2 wrote:that's not a "15 minutes job", so sry.
Of course i understand it and can wait as long as required. Thank for your help.

shakotay2 wrote:does this viewer have an export option (for skeleton bones etc.)?
Is there an option to export the mesh?
The point is that is not. If it is was be possible, i'm not start this thread. Sry for my english, if i'm unclear write.

Something like it might be found only in _RF2View tool from leaked sdk for Vital Engine 3.0 ("The Precursors", "White Gold" games). In Menu of program have button with interesting name "Send to Max", but it requires new version of VEExchange plugin for Vital Engine 3.0. These plugins never leaked.
http://fs5.directupload.net/images/160501/xupys8gs.jpg

I'm not sure what it may be useful even with reverse engineering, but unofficial SDK for The Precursors can be found here.

Ask developers is without avail, someone already tried. Their сompany has been closed.

StreamThread
beginner
Posts: 27
Joined: Mon Mar 21, 2016 9:58 pm
Location: Russian Federation
Has thanked: 16 times

Re: Boiling Point: Road to Hell *.RF2

Post by StreamThread » Fri May 06, 2016 8:05 am

Well, then maybe someone can tell me, where in this RF2 files is stored animation data? I'm can recreate all skeletons and hope so is possible just to copy hex data of anims from original models to new characters.

Of course, hexing is hard for me, so detailed manual will desirable. But i will try to do it anyway. It's very important for me.

Thanks in advance.

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 3461
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 955 times
Been thanked: 1876 times

Re: Boiling Point: Road to Hell *.RF2

Post by shakotay2 » Fri May 06, 2016 2:32 pm

StreamThread wrote:Well, then maybe someone can tell me, where in this RF2 files is stored animation data?
guess, there's no "Animation" data in your uploaded RF2 files (Actor folder). But you could search for "Bip" in KIR_GIRL_1.RF2 to find the bones, which are widely spread therein (up to 0xB49FC).

(Not sure if you know the difference between skeleton/skinning and animation.
Search for "idle", "walk", "run" in filenames, or in files assumed to contain animations.)
and hope so is possible just to copy hex data of anims from original models to new characters.
(You mean "to copy the skinning", don't you?)

Keep in mind that copying the skinning requires the original and new mesh to be very similar.
(Even with the skeletons assumed to be identical.)
From my experience copying fails if the vertex counts of meshes are too different.

(Use of existing animations requires the bone count and bone names to be identical in the original files and your new character.
Also you need to know how characters and animations are linked together. May be simple such as by the file names - diablo, mesh/skeleton: Adria.app, anim: Adria_walk_01.ani)

btw: does the RF2_viewer show animations if you load KIR_GIRL_1.RF2 for example from a folder where only this file is contained? (There is data "around" the bone names in the RF2 file which I can't identify.)
Last edited by shakotay2 on Fri May 06, 2016 5:04 pm, edited 1 time in total.
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

StreamThread
beginner
Posts: 27
Joined: Mon Mar 21, 2016 9:58 pm
Location: Russian Federation
Has thanked: 16 times

Re: Boiling Point: Road to Hell *.RF2

Post by StreamThread » Fri May 06, 2016 4:55 pm

shakotay2

No, RF2 files contain all animations is absolute exactly. I'm already have exported characters with new animations from other games.


Description of RF2 format possibilities from SDK:
1. Format possibilities.


RF2 files intended for storage models of Vital Engine ZL 2.0.

In Vital Engine 2.0 uses skeletal animation.

RF2 file contain next bank of data:

*Skinned mesh
Mesh (triangles and verticles), linked to bones; optional - LOD levels.

*Sets of bones with used animations

Skeleton for Skinned mesh.

* Information about bones partition groups

See Breaking bones into groups.

*Curve of character movement
See Characters Movements.

*List of materials, used by model.

See Names of materials.

* HitMesh
See HitMesh

*Collision boxes with used animations
See Collision Boxes

* Additional information
Distances of changing LOD-levels, order of simplify the skeleton.
This is from RF2_files.rtf file, which includes SDK. But original of file only on Russian language.
There is link: http://www.mediafire.com/download/q425a ... _files.rtf

I'm can try to translate it, but then sorry in advance for my breakin-english.

Also i'm can export one model to several files with differences in amounts of keyframes and animation quality export settings, if it may helped.

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 3461
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 955 times
Been thanked: 1876 times

Re: Boiling Point: Road to Hell *.RF2

Post by shakotay2 » Fri May 06, 2016 5:13 pm

StreamThread wrote:No, RF2 files contain all animations is absolute exactly.
ok, do you know this from the rtf you've uploaded or from using the RF2_viewer? If the latter, could you try out the edit from my previous post?
Also i'm can export one model to several files with differences in amounts of keyframes and animation quality export settings, if it may helped.
well, that could help. (Just asking myself why you didn't tell this sooner?)

Could you export from KIR_GIRL_1.RF2, please, possibly uncompressed animations (and/or highest quality).
50 keyframes should be enough, but it should be "raw" frames, no interpolation or such.

An exported skeleton would be nice, too. :D

edit: got some translation(?) data but maybe the values are to similar?
spine
3.869141 -0.190674 -0.366943
3.869141 -0.190674 -0.366943
3.869141 -0.190674 -0.366943
3.869141 -0.190918 -0.366943
3.869141 -0.191162 -0.366943
3.869141 -0.191406 -0.366943
3.869141 -0.192261 -0.366943
3.869141 -0.195679 -0.366943
3.869141 -0.196533 -0.366943
[...]
3.869141 -0.190796 -0.366943
3.869141 -0.190674 -0.366943
3.869141 -0.190674 -0.366943
3.871094 -0.190552 -0.366943
3.871094 -0.190674 -0.366699
3.871094 -0.190552 -0.366699
3.869141 -0.190674 -0.366943
3.871094 -0.190552 -0.367188
3.871094 -0.190552 -0.367188
3.871094 -0.190552 -0.367188
3.871094 -0.190552 -0.367188

clavicle
-2.267578 1.079102 4.824219
-2.267578 1.079102 4.824219
-2.269531 1.079102 4.824219
-2.273438 1.078125 4.820313
-2.275391 1.078125 4.820313
-2.277344 1.078125 4.820313
-2.281250 1.078125 4.820313
-2.283203 1.078125 4.820313
-2.287109 1.078125 4.816406
-2.289063 1.078125 4.816406
[...]
-2.240234 1.087891 4.828125
-2.242188 1.086914 4.824219
-2.259766 1.083984 4.812500
-2.279297 1.082031 4.804688
-2.279297 1.082031 4.804688
-2.273438 1.082031 4.804688
-2.273438 1.082031 4.804688
-2.273438 1.082031 4.804688
-2.273438 1.082031 4.804688
-2.273438 1.082031 4.804688
StreamThread wrote:I'm already have exported characters with new animations from other games.
just for curiosity: copied or new created animations?
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

Post Reply