JKHub CommlinkCouncil Review

Porting MOHAA Maps to JKO: Handling .tik and .skd Models

A technical exploration of porting Medal of Honor: Allied Assault maps into Jedi Outcast. The discussion focuses on converting bone-based static props (.skd) to .md3, automating shader remaps found in .tik files, and engine-specific limitations regarding model formats in multiplayer.

Channel: #mappingSource window: 2023-12-06 21:48 - 2023-12-12 16:109 posts5 views0 votes
Tags: JKOShadersMD3Multiplayer
Contributors: Deleted User #135808 (71), .mjt (34), jk_sunny (4), .somaz (1), acrobatc (1), +2 more
Comms log
[2023-12-06 21:48] <Deleted User> finally got around to trying it πŸ˜† / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182076204715614268/shot0003.jpg?ex=6a024ec1&is=6a00fd41&hm=ff0bfb48183b2264651ed6ad58c20fa841eaa4d72f4b68d822eb05db3a8ab25f&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182076205059555439/shot0004.jpg?ex=6a024ec1&is=6a00fd41&hm=a1f2d6fce3aea78ed02f1142ba87f9727b0ee464cedf27f9d7845622af47910c&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182076205374132324/shot0005.jpg?ex=6a024ec1&is=6a00fd41&hm=76f699ca96a835da100247e18a42a1f4c9bf3c151717c0fc39c6a5102446ca37&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182076205667721397/shot0006.jpg?ex=6a024ec1&is=6a00fd41&hm=4be93b2ab2f5b19e9ecdcacb1bb63747517841f02bf420867ff45eada0952dba&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182076205965524992/shot0007.jpg?ex=6a024ec1&is=6a00fd41&hm=efb024ed5cda0b39da703d082b1cfca0afc6d47bcd329d116ca4cdb22595e865&]
[2023-12-06 21:49] <Deleted User> not bad tbh
[2023-12-06 21:51] <Deleted User> @mjt actually, not using the mohaa shaders makes even more textures appear / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182076903134330971/shot2061.jpg?ex=6a024f67&is=6a00fde7&hm=1321ade3dc7ec6bc5ee11d056da811ca2b8997731e90f208277c908f25cc7fad&]
[2023-12-06 21:51] <Deleted User> sad that all the nature/bushes are gone πŸ˜†
[2023-12-06 21:51] <Deleted User> but good start.
[2023-12-06 21:52] <.mjt> foliage lump
[2023-12-06 21:53] <Deleted User> ah
[2023-12-06 21:53] <.mjt> maybe it can be converted to trisurf and screw your FPS πŸ˜„
[2023-12-06 21:53] <Deleted User> tbh all i wanted was to get the map into jomme so i can make campaths for demo baking
[2023-12-06 21:53] <Deleted User> good enugh.
[2023-12-07 01:47] <.mjt> Sanitizing them should be easy - there's only few things you need to strip to make the shaders compatible
[2023-12-07 10:01] <Deleted User> yeah quite possibly
[2023-12-07 10:01] <Deleted User> if only i could figure out how to convert .tik models to .md3 while preserving textures
[2023-12-07 10:02] <Deleted User> then i could even get all the bushes etc back
[2023-12-07 10:35] <Deleted User> @mjt / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182269164799410176/2023-12-07_11_34_57-convert_.tik_to_.md3_-_Google_Search_Mozilla_Firefox.png?ex=6a0259b6&is=6a010836&hm=4ad95351767982dd2f806a2865e9778e9a995c0a9fa4ab3b285dc1847cc7fa5b&]
[2023-12-07 10:35] <Deleted User> high IQ algorithm (edited)
[2023-12-07 20:53] <.mjt> @Deleted User still interested in converting .tan, skc, skd?
[2023-12-07 20:53] <Deleted User> maybe.
[2023-12-07 20:53] <Deleted User> have you found something?
[2023-12-07 20:53] <Deleted User> i tried with noesis and it doesnt support skd it seems
[2023-12-07 20:54] <.mjt> https://www.x-null.net/forums/threads/3257-import-export-models-MOHAA-lt-gt-Blender
[2023-12-07 20:54] <Deleted User> thats funny, i actually saw the same thread
[2023-12-07 20:55] <Deleted User> does it actually link the plugin? i didnt see
[2023-12-07 20:55] <.mjt> no
[2023-12-07 20:55] <.mjt> it mentions nothing for blender... but lightray can apparently
[2023-12-07 20:55] <Deleted User> wtf is lightray
[2023-12-07 20:56] <Deleted User> from the sound of that name it sounds like a $5000 per year subscription software
[2023-12-07 20:56] <.mjt> https://www.hdmachina.com/products/lightray3d/
[2023-12-07 20:56] <.mjt> [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182425507657158676/image.png?ex=6a024291&is=6a00f111&hm=abd5486c8190c1c57f1eed2358e8dbf695f021b58f69a3512107954b7aa76c44&]
[2023-12-07 20:57] <Deleted User> huh!
[2023-12-07 20:57] <Deleted User> that would be NEAT
[2023-12-07 20:57] <.mjt> https://www.hdmachina.com/products/lightray3d/#lr3d_regcodes
[2023-12-07 21:13] <Deleted User> it's a start i guess thinkmonocle / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182429644213977140/test_15.png?ex=6a02466b&is=6a00f4eb&hm=e197cf614a96365fea600d5458e7ce31dd1a43fa20f24be800f85f8fff59c3a7&]
[2023-12-07 21:14] <.mjt> they made trees as skc / skd? @Deleted User ?
[2023-12-07 21:14] <.mjt> as in bone animated swinging around, or just too lazy to convert to static model format?
[2023-12-07 21:15] <.mjt> Does mohaa rely on .tan or .md3?
[2023-12-07 21:15] <Deleted User> well its a bit weird
[2023-12-07 21:15] <Deleted User> so the model has its own classname like static_natural_bush_buckthorn
[2023-12-07 21:15] <Deleted User> and then it references a model under "model" as static/bush_buckthorn.tik
[2023-12-07 21:16] <Deleted User> and .tik one is a text file with some human readable stuff
[2023-12-07 21:16] <.mjt> yeah that much it shares with the other ubertools branches
[2023-12-07 21:16] <Deleted User> and then there is a .map file that contains a clip for it
[2023-12-07 21:16] <.mjt> yeah
[2023-12-07 21:16] <Deleted User> and then there is the .skd
[2023-12-07 21:16] <.mjt> the .map clips, just found them. nice
[2023-12-07 21:16] <.mjt> Yeah so they even made their static props models as bone based
[2023-12-07 21:16] <.mjt> it seems there's no .tan used anymore
[2023-12-07 21:16] <Deleted User> ah
[2023-12-07 21:16] <Deleted User> well
[2023-12-07 21:17] <.mjt> it has .lod files and .morph files too like EF2, though EF2 didn't use .lod
[2023-12-07 21:17] <Deleted User> now how to automate it all to make it actually realistic to convert all needed
[2023-12-07 21:17] <Deleted User> yea i see .lod too
[2023-12-07 21:17] <.mjt> you can edit morphs with 3dsmax 5 and elite force plugins
[2023-12-07 21:17] <Deleted User> i dont see morhph
[2023-12-07 21:17] <.mjt> automate? Maybe lightray has an sdk xD
[2023-12-07 21:17] <Deleted User> i dont need them to move tbh, im happy if theyre static
[2023-12-07 21:17] <Deleted User> yeah i mean maybe one could write a script or sth
[2023-12-07 21:17] <.mjt> engine supports it, modders used it, might not have been in vanilla assets
[2023-12-07 21:17] <Deleted User> ah
[2023-12-07 21:17] <.mjt> you... πŸ˜„
[2023-12-07 21:18] <Deleted User> im not sure if im motivated enough
[2023-12-07 21:18] <Deleted User> maybe someday
[2023-12-07 21:18] <Deleted User> would first have to figure out how to properly map the textures on to it
[2023-12-07 21:18] <Deleted User> since it seems like it does something akin to shader remaps too
[2023-12-07 21:18] <Deleted User> { /  scale 0.52 // Set default scale to 16/30.5 since world is in 16 units per foot and model is in cm's /  path models/static/natural /  skelmodel bush_buckthorn.skd /  surface bush4_3 shader static_bush4_2 /  surface bush4_2 shader static_bush4_2 /  surface bush4_1 shader static_bush4_1 /  surface bush4_4 shader static_bush4_2 / }
[2023-12-07 21:18] <Deleted User> no idea what that shit means
[2023-12-07 21:18] <Deleted User> thats the .tik file
[2023-12-07 21:18] <.mjt> my guess: / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182431038388043827/image.png?ex=6a0247b8&is=6a00f638&hm=6a7c8c1d0101b0cc59c79698567755a411ef462c1006b3e1493722a63a660c52&]
[2023-12-07 21:18] <.mjt> they use model submesh names to map them to shaders
[2023-12-07 21:19] <.mjt> as in surfacenames
[2023-12-07 21:19] <Deleted User> nah i think it does preserve the surfacenames
[2023-12-07 21:19] <.mjt> so the .tik acts as .skin too
[2023-12-07 21:19] <Deleted User> ah
[2023-12-07 21:19] <Deleted User> mhm
[2023-12-07 21:19] <.mjt> if surfacenames are preserved, this will help you
[2023-12-07 21:19] <Deleted User> maybe i'll just have to do simple conversion to md3
[2023-12-07 21:19] <.mjt> oh yeah, no use to glmify them
[2023-12-07 21:19] <Deleted User> then modify the md3 to have proper texture names
[2023-12-07 21:19] <Deleted User> through some automated means
[2023-12-07 21:20] <.mjt> they'd all cost an entityslot each otherwise
[2023-12-07 21:20] <Deleted User> oh
[2023-12-07 21:20] <Deleted User> does jk2 even support glm models
[2023-12-07 21:20] <Deleted User> ingame
[2023-12-07 21:20] <.mjt> I wonder if the q3map.exe included in mohtools can read skc / skd and convert to trisurf lump like md3s
[2023-12-07 21:20] <Deleted User> mp
[2023-12-07 21:20] <.mjt> SP yes, MP only via serverside mod
[2023-12-07 21:20] <Deleted User> yeah then useless
[2023-12-07 21:20] <.mjt> no entity can just be placed in map and load glm
[2023-12-07 21:20] <.mjt> in jk2mp
[2023-12-07 21:21] <Deleted User> its an mp map
[2023-12-07 21:21] <Deleted User> well i dont really NEED this so its all kind of a .... curious if it can be done for the sake of doing it
[2023-12-07 21:21] <Deleted User> xd
[2023-12-07 21:21] <Deleted User> i suppose it could be fun to actually port the map properly to jk2
[2023-12-07 21:21] <Deleted User> to play
[2023-12-08 14:42] <.somaz> 🧠
[2023-12-08 16:13] <Deleted User> that program + some C# coding / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182716600231678112/2023-12-08_17_12_52-unnamed.map__.png?ex=6a02a8eb&is=6a01576b&hm=106156dcafa0c5952091f54cfdd9b47e7013b97cf1f3cdd0aa2a6ebc152ee545&]
[2023-12-08 17:13] <Deleted User> even applying the scaling from the .tik file now into the .md3 :) / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182731655895588874/test_16.png?ex=6a02b6f0&is=6a016570&hm=dfa6434de56a958ec8a96c6375fb159d8d712091b68ab7f7ee9bad41862c7810&]
[2023-12-08 17:14] <Deleted User> [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182731888419410010/test_17.png?ex=6a02b728&is=6a0165a8&hm=b0a70d17ad0e67e9b99a33dbd466cd4ec6481e3ac050adf1cded425fbf80df38&]
[2023-12-08 17:14] <jk_sunny> My old chimney campspot top right :D
[2023-12-08 17:17] <Deleted User> ROOFING IS NOT ALLOWED
[2023-12-08 17:17] <Deleted User> πŸ˜†
[2023-12-08 17:17] <jk_sunny> :D
[2023-12-08 20:49] <Deleted User> 😦
[2023-12-09 00:34] <Deleted User> [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182842714589503548/shot0086.jpg?ex=6a02759f&is=6a01241f&hm=4905afc37a7bfc4b2105eed3664f89c7c3383ff1b126922bafc2a75f25d809f6&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1182842714983772240/shot2087.jpg?ex=6a02759f&is=6a01241f&hm=964e9cfb1b5520b0305b9056a291c7845a56a2c8616330d531ae7016a9820a7d&]
[2023-12-09 00:42] <jk_sunny> Nice!
[2023-12-09 07:49] <mrwonko> reminds me of cs_italy
[2023-12-12 00:46] <Deleted User> got it looking nicer than the original now πŸ˜‚ / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1183932973163216936/shot2241.jpg?ex=6a027881&is=6a012701&hm=93dc5429c570381cb98ac6247f1d4fad809a18ddeb057bbbf8533001f01410af&]
[2023-12-12 00:51] <Deleted User> [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1183934194427117669/shot2247.jpg?ex=6a0279a4&is=6a012824&hm=07c9985d17cba6c1e6cd2697942b052d55e9cc9731cae6afa3aa077cd561854c&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1183934195026907166/shot2246.jpg?ex=6a0279a4&is=6a012824&hm=1fc4a0f10d009000817954ba7932fa7bf859d46a43b1ef3b69b831b5e87ec150&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1183934195454722088/shot2242.jpg?ex=6a0279a4&is=6a012824&hm=643eeaceb3890220b281e3e342e886ef6a39215094fec5fd922910d80b605cb5&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1183934195958042656/shot2250.jpg?ex=6a0279a4&is=6a012824&hm=5680903f356047dfce08355aa2f74bbcf0c6a9e5d46ab42d1756c7d7010f667f&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1183934196360687676/shot2249.jpg?ex=6a0279a4&is=6a012824&hm=47c29af974c8c12d657688279db54971422efdce5db4429329665097268ca4df&] / [attachment: https://cdn.discordapp.com/attachments/1103343199113711766/1183934196801093843/shot2248.jpg?ex=6a0279a4&is=6a012824&hm=f32ae8b90846bc5071db0012c328a420a75d314d576b84319225a1243a9f30c9&]
[2023-12-12 07:49] <jk_sunny> Woah! Id love to try that :D
[2023-12-12 10:40] <Deleted User> there shall be a time for that i hope πŸ€”
[2023-12-12 13:18] <gpchannel> Thr buildings and the color reminds me Ac II
[2023-12-12 16:10] <acrobatc> @Deleted Userwhat are u making a race pack?
[2023-12-12 16:10] <Deleted User> nah its just a port of a MOHAA map
Transmission Thread

Deleted User #135808

Finally got around to trying a port of a MOHAA map into JKO. Not bad tbh. Interestingly, not using the MOHAA shaders actually makes even more textures appear, though it's sad that all the nature and bushes are gone for now. It's a good start though.

Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182076204715614268/shot0003.jpg?ex=6a024ec1&is=6a00fd41&hm=ff0bfb48183b2264651ed6ad58c20fa841eaa4d72f4b68d822eb05db3a8ab25f&
Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182076205059555439/shot0004.jpg?ex=6a024ec1&is=6a00fd41&hm=a1f2d6fce3aea78ed02f1142ba87f9727b0ee464cedf27f9d7845622af47910c&
Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182076205374132324/shot0005.jpg?ex=6a024ec1&is=6a00fd41&hm=76f699ca96a835da100247e18a42a1f4c9bf3c151717c0fc39c6a5102446ca37&
Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182076205667721397/shot0006.jpg?ex=6a024ec1&is=6a00fd41&hm=4be93b2ab2f5b19e9ecdcacb1bb63747517841f02bf420867ff45eada0952dba&
Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182076205965524992/shot0007.jpg?ex=6a024ec1&is=6a00fd41&hm=efb024ed5cda0b39da703d082b1cfca0afc6d47bcd329d116ca4cdb22595e865&
Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182076903134330971/shot2061.jpg?ex=6a024f67&is=6a00fde7&hm=1321ade3dc7ec6bc5ee11d056da811ca2b8997731e90f208277c908f25cc7fad&

.mjt

The missing bushes are likely in the foliage lump. You could maybe convert it to trisurf, though it might screw your FPS. Sanitizing the shaders should be easyβ€”there's only a few things you need to strip to make the shaders compatible with the engine.

Are you still interested in converting .tan, .skc, or .skd? I found a thread on X-Null discussing MOHAA model imports for Blender, but it doesn't link a plugin. However, Lightray3D apparently can handle them: https://www.hdmachina.com/products/lightray3d/

Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182425507657158676/image.png?ex=6a024291&is=6a00f111&hm=abd5486c8190c1c57f1eed2358e8dbf695f021b58f69a3512107954b7aa76c44&

Deleted User #135808

Tbh all I wanted was to get the map into Jomme so I can make campaths for demo baking, so it's good enough for that. But if I could figure out how to convert .tik models to .md3 while preserving textures, I could get the bushes back. I tried Noesis but it doesn't seem to support .skd.

I saw that same thread. Lightray3D sounds like a $5000 per year subscription software based on the name, but it's a start: https://cdn.discordapp.com/attachments/1103343199113711766/1182429644213977140/test_15.png?ex=6a02466b&is=6a00f4eb&hm=e197cf614a96365fea600d5458e7ce31dd1a43fa20f24be800f85f8fff59c3a7&

.mjt

Did they make trees as .skc / .skd? As in bone animated swinging around, or just too lazy to convert to a static model format? It seems they even made their static props bone-based. The .tik files act like .skin files; they use model submesh names to map them to shaders. If surfacenames are preserved, that will help you.

Just keep in mind that if you convert them to .md3, they'll all cost an entity slot each. JK2 MP only supports .glm models via server-side mods; you can't just place a .glm in a map and have it load in vanilla MP.

Deleted User #135808

The MOHAA setup is a bit weird. The model has its own classname like static_natural_bush_buckthorn, which references a .tik file. The .tik is a text file that looks like this:

{
  scale 0.52
  path models/static/natural
  skelmodel bush_buckthorn.skd
  surface bush4_3 shader static_bush4_2
  surface bush4_2 shader static_bush4_2
  surface bush4_1 shader static_bush4_1
  surface bush4_4 shader static_bush4_2
}

It seems to do something akin to shader remaps. I'm not sure if I'm motivated enough to automate it all, but it's a curious challenge. I'll probably just do a simple conversion to .md3 and then modify the .md3 to have proper texture names through some automated means.

Deleted User #135808

I managed to get it working using Lightray3D plus some C# coding. It's even applying the scaling from the .tik file into the .md3 now.

Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182716600231678112/2023-12-08_17_12_52-unnamed.map__.png?ex=6a02a8eb&is=6a01576b&hm=106156dcafa0c5952091f54cfdd9b47e7013b97cf1f3cdd0aa2a6ebc152ee545&
Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182731655895588874/test_16.png?ex=6a02b6f0&is=6a016570&hm=dfa6434de56a958ec8a96c6375fb159d8d712091b68ab7f7ee9bad41862c7810&
Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1182731888419410010/test_17.png?ex=6a02b728&is=6a0165a8&hm=b0a70d17ad0e67e9b99a33dbd466cd4ec6481e3ac050adf1cded425fbf80df38&

Got it looking nicer than the original now!

Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1183932973163216936/shot2241.jpg?ex=6a027881&is=6a012701&hm=93dc5429c570381cb98ac6247f1d4fad809a18ddeb057bbbf8533001f01410af&
Attachment
https://cdn.discordapp.com/attachments/1103343199113711766/1183934194427117669/shot2247.jpg?ex=6a0279a4&is=6a012824&hm=07c9985d17cba6c1e6cd2697942b052d55e9cc9731cae6afa3aa077cd561854c&

jk_sunny

Woah, that looks amazing! Reminds me of my old chimney campspot in the top right. I'd love to try that out in JK2.

mrwonko

Reminds me of cs_italy.

Deleted User #135808

It's just a port of a MOHAA map for now, but hopefully there shall be a time where people can play it. Roofing is not allowed though! πŸ˜†