Page 6 of 39

Re: Rainbow Six: Siege Models Thread

Posted: Sat Feb 08, 2020 8:11 pm
by zaramot

Re: Rainbow Six: Siege Models Thread

Posted: Sun Feb 09, 2020 7:22 pm
by MaZTeR
Tushkan wrote: Sat Feb 08, 2020 3:35 am As I said previously, I am planning to share my tools. Only problem is they are going to require some skills from a person using it. It's python based and it's tailored towards scripted execution i.e. there is no gui.
Alright, well, have to see how complicated they are to use once they're public.

Re: Rainbow Six: Siege Models Thread

Posted: Sun Feb 09, 2020 11:27 pm
by Tushkan
I'm trying to document everything I do there. But you will still most likely need to write a script to grab the actual thing you want. Right npw the process looks like this:

Code: Select all

import r6s

with r6s.forge.parse('path\\to\\forge.file') as f:
	for i, e, n, c in f.files():  # loop through all files in forge archive
	# i - file index
	# e - file entry, has info about it's uid and offset
	# n - name entry, has info about its type and lots of less relevant data
	# c - file container (may also be hash or meta dict)
	meta_stream = c.meta.getstream()  # yields stream with unpacked meta data
	file_stream = c.file.getstream()  # yields stream with actual unpacked file
	# right now module doesn't select specific parser on the fly, so you have to make it manually
	with r6s.mesh.Mesh(file_stream) as mesh_handler:
		# mesh_handler holds parameters from model file. It includes vertex buffer length,
		# number of islands, all vertices and all lods
		actual_mesh = mesh.getmesh()  # this one yields 1 specific lod. This is what I import in blender
there are more comfy modules planned designed to ease up asset search and load to avoid fiddling with all that manual work. But that is not going to happen before I crack asset files and strings linking to make search by models names an option.

Re: Rainbow Six: Siege Models Thread

Posted: Mon Feb 10, 2020 5:54 pm
by Custard
zaramot wrote: Sat Feb 08, 2020 8:11 pm https://youtu.be/tSNCstwSzq8
Interesting, they must have separate sub-rig for head and for equipment points, maybe apart or together.

Tushkan wrote: Sun Feb 09, 2020 11:27 pm I'm trying to document everything I do there. But you will still most likely need to write a script to grab the actual thing you want. Right npw the process looks like this:

Code: Select all

import r6s

with r6s.forge.parse('path\\to\\forge.file') as f:
	for i, e, n, c in f.files():  # loop through all files in forge archive
	# i - file index
	# e - file entry, has info about it's uid and offset
	# n - name entry, has info about its type and lots of less relevant data
	# c - file container (may also be hash or meta dict)
	meta_stream = c.meta.getstream()  # yields stream with unpacked meta data
	file_stream = c.file.getstream()  # yields stream with actual unpacked file
	# right now module doesn't select specific parser on the fly, so you have to make it manually
	with r6s.mesh.Mesh(file_stream) as mesh_handler:
		# mesh_handler holds parameters from model file. It includes vertex buffer length,
		# number of islands, all vertices and all lods
		actual_mesh = mesh.getmesh()  # this one yields 1 specific lod. This is what I import in blender
there are more comfy modules planned designed to ease up asset search and load to avoid fiddling with all that manual work. But that is not going to happen before I crack asset files and strings linking to make search by models names an option.
What does making the parser manually entail? If scouring and cataloging some file data will help you out I'd be happy to give it some time.

Re: Rainbow Six: Siege Models Thread

Posted: Mon Feb 10, 2020 11:42 pm
by Tushkan
Right now it's based around manual parsing for 2 reasons: 1) it gives more flexibility. I can collect specific files and work on their raw data 2) it simply isn't finished to be as straightforward as possible =) . My main goal is to build complete models parser, complete skeletons parser (thanks to zaramot for hints on skeleton data) and provide at least rudimental means of identifying specific assets by their names. After that I intend to release it as a module so anyone willing to make a neat gui can use my work as a basis. Or even translate it to other programming languages and build more refined tools.
As for manual data tagging, It might come in handy in reversing some of the unknown tags inside mesh files. I'll think about your proposal. The only problem is it might also involve some manual fiddling with data import in blender. If you're an animator, I suppose you work with some kind of DCC (maya?). Are you familiar with blender and some rudimental understanding of python syntax?

Re: Rainbow Six: Siege Models Thread

Posted: Tue Feb 11, 2020 11:11 pm
by Custard
I am familiar with Blender, and my idea of Python might pass for rudimentary. I've use a line or two of it making drivers, but it's not like I can differentiate api functions from vars 90% of the time in another person code. If this manual fiddling you speak of is such task of replacing a directory path, or swapping one var for another that's been notated then I manage. :)

I was thinking that finding a few sets of meshes that we know belongs to the same asset could help uncover something through the data comparison, though how far you gotten with this is unknown to me, no reason to indulge me if I can't be put on a useful track.

Re: Rainbow Six: Siege Models Thread

Posted: Fri Feb 14, 2020 9:12 pm
by KnownAzEpic
Is it possible to extract the menu background images?

Re: Rainbow Six: Siege Models Thread

Posted: Sat Feb 15, 2020 12:38 am
by Tushkan
Yes. Those are just textures like everything else. Problem is identifying them.

Re: Rainbow Six: Siege Models Thread

Posted: Mon Feb 17, 2020 10:55 pm
by Tushkan
comword wrote: Wed Feb 05, 2020 4:09 pm Here is the link, have a try. https://www.dropbox.com/sh/sii6e34kymrk ... DBY3Qv2TUa
Small node about your archives. I couldn't find any pointers from beast mesh to it's asset file. What this means is there are 2 options:
1. Mobs aren't stored as an operator asset
2. You missed some .depgraphbin file when you were backing up outbreak assets, so now I'm lacking linking data between assets.
I think it's the second one (can be proved on current full game build but I hadn't had enough time to check). What does it mean: either I will scan through all asset files and will find links there or you will be bound to manually skim through all meshes and textures to assemble the model back. Or you will be able to find another enthusiast that managed to store all necessary depgraphbins.

On the bright side, I almost ended unpacking data for meshes (normals done, vert colors done, uvs done thanks to zamarot, skinning is next in queue). Next up will be asset's skeletons (again, thanks to zamarot for data section hints).

Re: Rainbow Six: Siege Models Thread

Posted: Mon Feb 17, 2020 11:18 pm
by Tushkan
NNNNNOOOOOOOO!!!! I just found out from their update notes that they are going to restructure game data. Why?! WHY?!?!?!

Edit: checked the TTS game version. They have indeed changed file format. But it's not that severe. They seem to pack meta and file data into one block now, so file headers have changed. But overall forge structure is the same (except for file type link but it will be easy to fix), compressor is the same, models are the same. Will have to see how they handle assets. I guess I will catch up fast enough. Only problem is I will shift onto new format and stop working with older forge archives. I still can decompress them, but at some point api might diverge and not all tools will longer apply to both newer and older forge versions.

Re: Rainbow Six: Siege Models Thread

Posted: Tue Feb 18, 2020 4:07 am
by Custard
Yikes :ninja:

Btw we can guess that those Operation Chimera creatures and more is going to be in the Rainbow Six Quarantine, so that might providing a better source for that stuff. With a bit of luck it could end up being very relatable in the files to Siege.

Re: Rainbow Six: Siege Models Thread

Posted: Tue Feb 18, 2020 8:44 am
by Tushkan
Well as long as they don't decide to encrypt it like in for honor. And someone provides game resources. Because I don't think I'm going to buy it )

Re: Rainbow Six: Siege Models Thread

Posted: Wed Feb 19, 2020 5:41 pm
by comword
Tushkan wrote: Mon Feb 17, 2020 10:55 pm 2. You missed some .depgraphbin file when you were backing up outbreak assets, so now I'm lacking linking data between assets.
I think it's the second one (can be proved on current full game build but I hadn't had enough time to check). What does it mean: either I will scan through all asset files and will find links there or you will be bound to manually skim through all meshes and textures to assemble the model back. Or you will be able to find another enthusiast that managed to store all necessary depgraphbins.
Hi, I am really busy these days and very glad to see your progress. I found that my dropbox was full, and may result in missed depgraphbin.
This is all depgraphbins:

Code: Select all

./datapc64_bootstrap.depgraphbin
./datapc64_fury_d01_resort.depgraphbin
./datapc64_fury_d01_resort_p2.depgraphbin
./datapc64_fury_d02_hospital.depgraphbin
./datapc64_fury_d02_hospital_p2.depgraphbin
./datapc64_fury_d03_junkyard.depgraphbin
./datapc64_fury_d03_junkyard_p2.depgraphbin
./datapc64_pvp10_chalet_set02.depgraphbin
./datapc64_pvp11_university.depgraphbin
./datapc64_pvp12_russiancafe_set02.depgraphbin
./datapc64_pvp13_border.depgraphbin
./datapc64_pvp14_favela.depgraphbin
./datapc64_pvp15_temple.depgraphbin
./datapc64_pvp16_ibiza.depgraphbin
./datapc64_pvp17_themepark.depgraphbin
./datapc64_pvp19_tower.depgraphbin
./datapc64_r6_menuworld_playgo.depgraphbin
./datapc64_ui_playgo.depgraphbin
./datapc64_ondemand.depgraphbin
./datapc64_ondemand_fury.depgraphbin
./datapc64_ondemand_playgo.depgraphbin
./datapc64_ondemand_set01.depgraphbin
./datapc64_ondemand_set02.depgraphbin
./datapc64_pvp01_house_v2_set01.depgraphbin
./datapc64_pvp02_oregon_set02.depgraphbin
./datapc64_pvp03_hereford_playgo.depgraphbin
./datapc64_pvp04_clubhouse_set02.depgraphbin
./datapc64_pvp05_plane_set01.depgraphbin
./datapc64_pvp06_yacht.depgraphbin
./datapc64_pvp07_consulate_set01.depgraphbin
./datapc64_pvp08_bank.depgraphbin
./datapc64_pvp09_kanal_set02.depgraphbin
https://drive.google.com/file/d/1EGeIBr ... sp=sharing
Tushkan wrote: Mon Feb 17, 2020 11:18 pm NNNNNOOOOOOOO!!!! I just found out from their update notes that they are going to restructure game data. Why?! WHY?!?!?!

Edit: checked the TTS game version. They have indeed changed file format. But it's not that severe. They seem to pack meta and file data into one block now, so file headers have changed. But overall forge structure is the same (except for file type link but it will be easy to fix), compressor is the same, models are the same. Will have to see how they handle assets. I guess I will catch up fast enough. Only problem is I will shift onto new format and stop working with older forge archives. I still can decompress them, but at some point api might diverge and not all tools will longer apply to both newer and older forge versions.
You can try to use different parts of unpacking code based on conditions and try to support different game versions. If this is too complex, try to use version control like git to snapshot your code for older forge versions.

Re: Rainbow Six: Siege Models Thread

Posted: Wed Feb 19, 2020 7:44 pm
by Tushkan
Fury_ondemand seems to be the vital one that is missing.
I stashed the old parser for now to keep the code. I don't want to introduce versioning inside existing repo right now because I want to focus on actual data parsers. I might introduce version recognition later. Or simply unpack the data and sent it back to you so you can work with it.

Re: Rainbow Six: Siege Models Thread

Posted: Thu Feb 20, 2020 6:24 am
by benchmark7770
Hey Tushkan,
First of all thank you for your time and effort you are putting into this, i have a question do i have to keep the mesh.rip data that i extracted via ninja ripper or is it all ruined already and of no use, bcs of how the mesh is broken, when it is imported into noesis?