Gildor's Forums

Author Topic: Splinter Cell Series (SC1-4)  (Read 21300 times)
spiritovod
Global Moderator
Hero Member
*****
Posts: 2879


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #30 on: June 21, 2025, 19:09 »

@Joshhhuaaa: In the provided samples header of custom package is exactly the same as for original package without modifications, no wonder it doesn't work. I hardly doubt you can create a proper package for such custom engine, except for inlining objects manually to already existing packages (mostly for textures, as they have the same data size). Also note that modding is out of scope of the forum in general, please refrain from discussing it in the topic.

If you want me to support Xbox 360 version in umodel, provide some samples, I'll take a look.
Logged
Joshhhuaaa
Newbie
*
Posts: 32


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #31 on: June 22, 2025, 02:05 »

Thanks for taking a look, I figured that was probably the case.

The Xbox 360 version was packed into .ULL files (likely a variation of .LIN) and then compressed. He managed to decompress them to get readable data, but they still aren’t standard Unreal packages that UModel can load, so I’m assuming that’s probably a dead end.
Logged
3A2watup
Newbie
*
Posts: 7


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #32 on: January 17, 2026, 17:50 »

Hey Joshua, I couldn't find the Umodel build in the topic you referred?
Not ready to give up on Chaos Theory/DA offline yet.
Logged
spiritovod
Global Moderator
Hero Member
*****
Posts: 2879


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #33 on: January 18, 2026, 00:46 »

@3A2watup: There is only one link with the reference to specific build in the mentioned topic, and you need the "materials" one from the linked archive. The reason why it's not provided directly is because the build (and the link) is updated over time, as it's not dedicated to the game series.
Logged
3A2watup
Newbie
*
Posts: 7


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #34 on: January 20, 2026, 20:49 »

About the single player engine and infamous .ukx files (SCDA PC).
Looking at strings in UnrealEd.exe (PC Demo)
I see things like UKX, AnimSet, AnimName, NumFrame, Rate, Type, Optimize, NumBones, Size(Kb), CompressedPos, CompressedQuat, GlobalComp, MaxAngleErr, MaxPosError, MeshTotSize, MeshMemSize, MeshTextureSize, ApprovedAndLocked, bCrouched, CanFireWeapon, RetakeSound, SnapHandToGun, SoundDone, SoundNeeded, SoundOrdered, UseHeadBone, EnableBreathing, EnableBreathingNoArms, OneHanded, TwoHanded, Comment, Notifies(Obj, Time, playfwd, playrwd, Function, Target, SoundName)

Was anyone able to extract the .lin files clean? The only tool I found extracts them in several .ukx(index number?) like split in several chunks but you can always open one of them and find some anim or anim sequence names and bones for each character (?)
Some of Sam's bones
B R Hand
B L Hand
B Spine2
B Pelvis
BF NVGoggles
B Spine1
B R Thigh
B L Forearm
B Head
B L Foot
B R Foot
B L UpperArm
B L Thigh
B R UpperArm
BR L Wrist
B Spine
B L Finger31
B Neck
B L Toe0
B L Finger11

Some anim sequences?
piphpralfl0
RopeStNrFd0
LaddStLgEuR
KbrdStAlBg0
PipHStAlBV0
pipvstalbur
KbrdCrAlBg0
RopeStNrOn0
windcralup0
LaddStAlUp0
CndlCrNm0
etc

Do you have any idea of what some of these imply spiritovod? Are these files probably only partially compressed? ( CompressedPos, CompressedQuat)  
This is no big deal and has been available for years, but... just documenting for anyone interested
« Last Edit: January 20, 2026, 20:53 by 3A2watup » Logged
spiritovod
Global Moderator
Hero Member
*****
Posts: 2879


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #35 on: January 21, 2026, 01:42 »

@3A2watup: I don't quite understand the question. Those strings are just names of classes/structs/properties that you may see in any UE game. Such things are read upon reading package summary or any object.

As for lin format, it was briefly explained long time ago by Gildor in original game topic (and there is also more complex explanation available here). Basically, lin contains only those parts of original UE packages, which are used by the game, and in the exact same order as the game is reading them, making the whole process seek free, which is not possible by design in umodel and default engine. Currently existing tools are more about extracting native packages from lin, where import/export tables are patched to avoid reading incomplete data of unused objects, but that's also not totally correct with dependencies in mind.

I really don't want to clamp the topic with discussion of this format, as the topic has different purpose, and I would be grateful if people would provide only something helpful (like working solutions or links to related researches) on this matter.
Logged
Joshhhuaaa
Newbie
*
Posts: 32


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #36 on: April 26, 2026, 03:34 »

@spiritovod This isn't strictly Splinter Cell-related, but I was wondering if there's any chance UModel could add the ability to export collision meshes alongside visual meshes in the .pskx export? In Unreal Engine 2, collision meshes were prefixed with "MCDCX_" in tools like 3DS Max and Maya to designate them as collision objects. Currently, these MCDCX meshes aren't preserved when exporting to .pskx in UModel. It would be incredibly useful to retain the collision meshes during export, especially since the original ASE file may not always be available, making it hard to retrieve the collision mesh. This wouldn't just benefit Splinter Cell but pretty much all Unreal Engine 2 games since they handle collision meshes the same way.
Logged
spiritovod
Global Moderator
Hero Member
*****
Posts: 2879


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #37 on: April 26, 2026, 11:32 »

@Joshhhuaaa: If you could provide a package with such mesh (or at least with something that can be it), I could take a look. You can disable everything at startup screen, then upon loading any package or asset you'll see list of all included objects. Also, some games are using collision boxes as part of actual mesh geometry (for example Brothers in Arms series).
Logged
Joshhhuaaa
Newbie
*
Posts: 32


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #38 on: April 26, 2026, 14:36 »

@spiritovod Here's an example package containing a single StaticMesh with an included collision mesh.

The package is called SCCT_CollisionExample.usx and is located in the StaticMeshes folder. I also included an Export folder in case it's helpful to see how the original ASE was set up before being imported into the engine. The main visual mesh is aqua_machine03, and the collision mesh is MCDCXaqua_machine03. Currently, UModel exports aqua_machine03, but it does not include MCDCXaqua_machine03 in the .pskx export.

In the UnrealEd StaticMesh browser for this game, the yellow wireframe shows that a collision mesh is included.




Logged
spiritovod
Global Moderator
Hero Member
*****
Posts: 2879


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #39 on: April 26, 2026, 22:04 »

@Joshhhuaaa: Not sure Splinter Cell games can be used for researching default collision implementation. From what I understand, collision data is a part of respective mesh object, which allows to create collision geometry based on the mesh and respective parameters with a shader at runtime. In editors collision is represented as a mesh for convenience. As result, collision data can be 1.5-2 times larger than actual mesh, because it may contain multiple presets, but it doesn't store result geometry for them explicitly. I doubt I'll look into it further.
« Last Edit: April 26, 2026, 22:11 by spiritovod » Logged
Joshhhuaaa
Newbie
*
Posts: 32


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #40 on: April 27, 2026, 00:25 »

@Joshhhuaaa: Not sure Splinter Cell games can be used for researching default collision implementation.

Sorry about that, here's a UT2004 package that includes a MCDCX mesh.

From what I understand, collision data is a part of respective mesh object, which allows to create collision geometry based on the mesh and respective parameters with a shader at runtime. In editors collision is represented as a mesh for convenience. As result, collision data can be 1.5-2 times larger than actual mesh, because it may contain multiple presets, but it doesn't store result geometry for them explicitly. I doubt I'll look into it further.

I could be misunderstanding, but it sounds like you're describing automatically generated collision. In this case, the collision geometry is not generated at runtime. These collision meshes are created explicitly in 3D modelling software by hand. When importing an ASE, the engine detects any objects prefixed with MCDCX_ and uses those as the collision mesh instead of generating one automatically.

So I'm hoping that means the MCDCX mesh is still stored in the package and could potentially be exported as its own separate mesh alongside the visual mesh.

Here's how it works. Import the ASE into UT2004:



A dialog will appear indicating that collision geometry was detected. This is the MCDCX mesh that I created manually, and the editor gives you the option to import it.



Here's the final result:



To make it obvious that this isn't automatically generated, I intentionally placed a few random cubes of different sizes around the visual mesh. The wireframe matches those cubes exactly.

For reference, here's the original collision mesh I created in Blender:

Logged
spiritovod
Global Moderator
Hero Member
*****
Posts: 2879


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #41 on: April 27, 2026, 12:35 »

@Joshhhuaaa: I was talking about content of the cooked package. Thanks for UT2004 sample, it has minor difference (probably game specific), but overall approach is the same. If the editor can load collisions from the cooked package, I guess it's doing the same as the game itself, i.e. creating collision meshes from cooked collision data. Basically, it contains expanded info about base mesh geometry (like 3 sets of positions with different orientation), some orientation vectors for shader computations and other related things. And actual collision is calculated as transformation/difference of base mesh, maybe with collision geometry included as part of expanded geometry for collision data. For example, all collisions from UT2004 sample are clamped to single block (in SC sample there are 3 collision blocks) and takes as much as shown on the screenshot, the highlighted part is the transform/diff.


* Clipboard01.png (45.96 KB, 1435x395 - viewed 62 times.)
« Last Edit: April 27, 2026, 13:03 by spiritovod » Logged
Joshhhuaaa
Newbie
*
Posts: 32


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #42 on: April 27, 2026, 14:58 »

@spiritovod Ah alright, I see. Well, thanks for taking a look as always. The UModel support you've added for Splinter Cell has still been very useful for multiple maps and patches I've made, so I appreciate all the help. I've just been manually recreating the MCDCX meshes whenever I'm porting assets between games. It's a bit of extra work, but it's manageable.
Logged
Joshhhuaaa
Newbie
*
Posts: 32


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #43 on: May 05, 2026, 06:40 »

@spiritovod Sorry to ask again, did you ever get a chance to check SCCT Versus animation packages? I remember you mentioned a while back you might take a look when you had time, but totally understand if you've been busy with newer releases.

I assume they're similar to the first two games, which your UModel build already supports, since SCPT/SCCT Versus is still mostly vanilla UE2. I know SCCT single-player is a different story due to the engine overhaul, so I'm not expecting support for that.

If it's not an easy add, no worries. I'm mainly asking because I'm looking to import/modify animations for SCCT Versus, and being able to export the originals would help a lot. Thanks.

Logged
spiritovod
Global Moderator
Hero Member
*****
Posts: 2879


View Profile
Re: Splinter Cell Series (SC1-4)
« Reply #44 on: May 06, 2026, 00:59 »

@Joshhhuaaa: Skeletal meshes and animations from Chaos Theory (versus version only at the moment) should work now in the updated build. Though they may be not 100% accurate, as I made some assumptions, and complex meshes are using default fallback, because soft+rigid combination is not supported for conversion to begin with. Even Gildor couldn't implement it, so doubt I can make something with it as well.

Also, I understood the core issue behind serialization of structs and other props. They should be actually read, as they can't be properly skipped in some cases, because their built-in prop sizes may not be the same as real serialized size (depends on the structs/props). And it's also the reason why some materials don't work properly.


* Clipboard01.jpg (117.7 KB, 2555x1250 - viewed 61 times.)
« Last Edit: May 06, 2026, 01:22 by spiritovod » Logged
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS