Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

Model viewer for KotOR?

Page: 1 of 2
 Adinos
02-06-2009, 2:28 PM
#1
I was wondering if anyone has ever written a model viewer for KotOR, or if not, whether information on the model file format is available, so I could more easily write it myself.

I'd rather not spend my time reverse-engineering the format if someone else has done it already.
_________________
 TriggerGod
02-06-2009, 5:53 PM
#2
I was wondering if anyone has ever written a model viewer for KotOR, or if not, whether information on the model file format is available, so I could more easily write it myself.

I'd rather not spend my time reverse-engineering the format if someone else has done it already.
_________________

GMax(Free) and 3dsMax($$$) can open the files if you convert the model files (.mdl and .mdx) you get from KTool (http://kotortool.starwarsknights.com/) into an -ascii.mdl file using MdlOps (http://www.starwarsknights.com/tools.php#skmo), and using the NWMax plugin for GMax or 3dsMax, you can bring the models into GMax/3ds. Then you have to select the parts of the body/head/whatever (usually clearly marked as head, hair, body, larm, rarm, etc. In GMax, to select them, the hot key is H and use control to select more then one.) then apply the skin to the body/head/whatever (in gmax, hotkey is M. Select Metal as the Shader, press the gray box next to Ambient/Difuse, and select the texture file) And there you go, you have your texture. Its probably not going to be the best quality or the quality it will have in game, so don't worry. In 3ds, I've heard that to get the best idea of your texture, you can use the rendering feature. But GMax doesn't have that feature standard, so you'll have to surf the net for the rendering plugin download.
 Adinos
02-07-2009, 9:06 AM
#3
A bit too complicated - I was more wondering if something like this http://nwn.bioware.com/downloads/viewer.html) existed - just a simple viewer, nothing more.

Thanks for the info, anyhow.
 Adinos
03-09-2009, 7:43 PM
#4
Well, as it seems there is no stand-alone model viewer, I just wrote one myself.

Here are a few sample images - just picked some random models from KotOR and KotOR2.

http://i86.photobucket.com/albums/k109/Adinos/kotor_samples.jpg)

The viewer is not 100% ready - there is a handful of models that do not look right, and there are some things I would like to add, but I need information from BioWare for that.
 RedHawke
03-10-2009, 12:40 AM
#5
Wow! Adinos, just wow!

That could come in mighty handy. :thumbsup:
 Ferc Kast
03-10-2009, 10:15 AM
#6
It looks very cool!! :D
 Marius Fett
03-12-2009, 4:31 PM
#7
Uh.. Wow..

People have been wanting something like this for quite a while!

Kudos! :D
 Quanon
03-12-2009, 4:37 PM
#8
Wow, nice, very nice O_O

This will come handy to find things quickly without to start Gmax or Max up.
 Canderis
03-12-2009, 7:56 PM
#9
Wow cool! Will this support custom skins and models?
 tk102
03-13-2009, 12:39 AM
#10
Those screenshots are pretty inspiring Adinos, nice job so far! It's been a long time since since we've seen new mod tools around here. Make me nostalgic. :)
 glovemaster
03-13-2009, 10:48 AM
#11
The release of all tools "model related" are always exciting :)

I look forward to seeing this complete.
 Darth InSidious
03-13-2009, 12:49 PM
#12
Wow, that's great! :)
 Adinos
03-13-2009, 7:40 PM
#13
Well, I have to fix a couple of things before I am comfortable with releasing this. There are three models that don't look right - something wrong with the textures, and a few more models where the lighing doesn't look right, as if the normals are reversed or something. I should get this finished next week, though.
 Quanon
03-16-2009, 5:37 PM
#14
Well, I have to fix a couple of things before I am comfortable with releasing this. There are three models that don't look right - something wrong with the textures, and a few more models where the lighing doesn't look right, as if the normals are reversed or something. I should get this finished next week, though.

Just out of interest: Do you need to compile the models with MDLops first or do you use something you wrote for yourself to read the Binary models.

If you use MDLops, well you're bound to run into some troublesome models.
Its a good program, but it looks like it can't do certain models without faults in them.
 Adinos
03-21-2009, 9:05 AM
#15
I read the binary MDL/MDX files. Easy enough for KotOR and KotOR2, but I wanted to handle Jade Empire too, as that file format is quite similar, but I am having some trouble there. If I cannot solve it, I'll just release the viewer as it is.
 Quanon
03-21-2009, 4:01 PM
#16
I read the binary MDL/MDX files. Easy enough for KotOR and KotOR2, but I wanted to handle Jade Empire too, as that file format is quite similar, but I am having some trouble there. If I cannot solve it, I'll just release the viewer as it is.

Wow, so you know whats in there and what all the fields thingies, etc of the meshes ?

See my friend GloveMaster is trying his best to figure it all out and he has plans to spend his summer on getting MDLops finished.

The little program can do a lot already, but certain fields in the mdl and mdx are unknown what they do, what they are and so on...

Where thinking about lightmaps, we need find a way to get things in the second channel of a 3D mesh for that... well and theres the animation bit aswell :p

Anyway, to cut my jibberish short, perhaps you could help GloveMaster out on develloping a good little tool that can handle everything 3D modelwize for the kotor games... that would be such blast !
 Sithspecter
03-21-2009, 6:45 PM
#17
This looks great Adinos! Thanks for working on this.
 Drewton
03-22-2009, 10:01 PM
#18
Excellent! This will be a great help with skinning when released.
 TriggerGod
03-23-2009, 4:55 PM
#19
A question Adinos; since this viewer can read binary models, will it be able to show edited models? (you add a set of horns to a head, you make the model files, and your viewer will be able to view your edited model just like other models?)
 Adinos
04-08-2009, 6:56 PM
#20
OK, I made a small addition that might be useful - the ability to see how a different texture would look on the model.

http://i86.photobucket.com/albums/k109/Adinos/yoda.jpg)

This screenshot shows three instances of the viewer running - the first is the original, the second shows the texture replaced with a different one, where the blue has been changed to red, and the third is mostly for fun .. shows the model in wireframe mode.

Now, I'm not quite ready to release this officially yet - there are still a few bugs that remain, but if anyone wants to be a beta tester, drop me a note - PM Me Your Email Please, and I'll send you the current version.

Snipped email address as per our posted rules. It keeps away the spam bots. Please use Private Messages (PM) to exchange this info instead. Thanks. -RH
 Ghost Down
04-11-2009, 8:15 AM
#21
Really looking forward to this!

BTW. Will it also support KotOR 2 models?
 Ferc Kast
04-11-2009, 11:05 AM
#22
Sounds like a neat little feature. :)

Really looking forward to this!

BTW. Will it also support KotOR 2 models?

I'm just taking a wild guess that it does, per the following:

Here are a few sample images - just picked some random models from KotOR and KotOR2.
 Quanon
04-14-2009, 12:24 PM
#23
Hello, thanks to Marius, who handed over a copy of your little program, I gave it try and its pretty neat.

I've peeked at some creatures and character model, but also tried some of my own area models.

It all seems to work :p
EDIT: Sometimes though I need to alter the background color, or the rotation speed to get the rendering back.
Often I just get an empty window, showing my desktop.

And now and then I encounter the black models, most of my weapon models are so... though they appear ok in the game.
Its weird :p

Makes me happy I can check my area models without starting the game all the time.

Though perhaps on that specific topic, area models.

Would it be possible to implement a zoom function, so I can get closer :p
Or better, a full moveable camera; though that might be to much to ask.

Its seems to run smoothly on my PC, though a bit quircky, if another window or program passes over it, the rendering seems to go faulty a bit.

Anyway great job, I hope you continue to work on this :)
 Adinos
04-15-2009, 8:05 PM
#24
Well, this is a beta, so there are still some bugs - and this is the very first DirectX or C# application I have ever written so I am still learning..... I will be trying to fix whatever is broken and to add features. Simple zoom (mouse wheel, maybe) should be relatively simple, for example. I should have an updated version in a week or two. Let me know about any issues you find.
 Queen of Night
04-15-2009, 8:14 PM
#25
Oh this is very good and a alternativ to Gmax.
 Blix
04-16-2009, 3:30 PM
#26
Well, as it seems there is no stand-alone model viewer, I just wrote one myself.

Here are a few sample images - just picked some random models from KotOR and KotOR2.

http://i86.photobucket.com/albums/k109/Adinos/kotor_samples.jpg)

The viewer is not 100% ready - there is a handful of models that do not look right, and there are some things I would like to add, but I need information from BioWare for that.

I really wish I had a PC Now :( Also I couldn't help but notice the two droids in the first row, are they by any chance the concept droids for the Peragus Mining Facility or M4-78?
 Quanon
04-16-2009, 4:34 PM
#27
Let me know about any issues you find.

Well, it seems 90% my placeables and items I made and then compiled to the Binary code (mdl&mdx) with MDLops turn out black.

Just a few of them turn out ok.

It might be MDLops though, no idea really.
 Adinos
04-30-2009, 7:01 AM
#28
It seems that a few of the people who requested the beta did not receive it - in some cases because they were blocked from receiving zipped executable files.

Anyhow, I got some useful feedback, and am working on a version with three updated features.

1) The mouse scroll button now allows you to zoom.

2) The "black" model issue was, as suspected, caused by inverted normals (where the normal points "in" instead of "out". It seems the game does not care about those, but my DirectX code does. This problem has now been solved.

3) I am adding a "Save As..." feature to allow saving of retextured models.

I am also improving the documentation, so I should have the full (non-beta) version ready soon. but I am leaving on a small business trip tomorrow, so I will not be able to finish this until after I return next week.
 Quanon
05-04-2009, 10:07 AM
#29
Ooh, sorry for not replying earlier !

Looking forward to these extra toys added to your program :)

And thank you for doing this, made a modellers live a bit easier.
 Nulusi
05-04-2009, 11:17 AM
#30
I have a question: Is one able to show the animations of the models in the viewer also? In other words the animation for speech, for walking, and such?

Edit: Also! Is one able to add weapons to the models? Lightsabers and such?
 shak-otay
05-16-2009, 2:07 AM
#31
I was wondering if anyone has ever written a model viewer for KotOR, or if not, whether information on the model file format is available, so I could more easily write it myself.

I'd rather not spend my time reverse-engineering the format if someone else has done it already.
_________________
Hi Adinos,

as it seems that you got the information you were looking for would you be willing to share your knowledge about the mdl file format with us?:)

greets,
shak-otay

edit: what I found is this (http://www.wnwn.net/mdl/index2.html) but the pages are not easy to survey. Is this is the Kotor binary MDL format?
(The MDL/MDX seeem not to be the same as this (http://nwn2.wikia.com/wiki/MDB_Format)!)
 Adinos
05-19-2009, 9:37 AM
#32
I have now uploaded a new version of the model viewer to NWVault (as I mentioned, it supports NWN2 as well as KotOR and KotOR2) http://nwvault.ign.com/View.php?view=NWN2Tools.Detail&id=6422&id=79)

The issues found during the beta test should have been fixed (thanks for the help and suggestions, guys) and I added the "zoom" feature, using the mouse wheel, as suggested.
 Miltiades
05-19-2009, 12:22 PM
#33
Whoah, this'll be very useful. Amazing job, Adinos.
 Trench
05-19-2009, 12:40 PM
#34
I noticed on the site you stated that you could switch skins. Can you also save these changes? It would be a lot easier than replacing the parts of the .TGA one by one. This is a definite download for me.
 DarthParametric
05-19-2009, 2:06 PM
#35
Interesting. Just tried it out with some weapon models of mine that have been compiled as game meshes. The blasters displayed fine, but I got an error when trying a lightsaber. It asked for the blade texture, so I browsed to a different directory than the mesh for it and got the following:


See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: startIndex
at System.ThrowHelper.ThrowArgumentOutOfRangeExceptio n(ExceptionArgument argument, ExceptionResource resource)
at System.BitConverter.ToInt32(Byte[] value, Int32 startIndex)
at Model_Viewer.Model3D.readXYZ(Byte[] Data, Int32 pos, String s, Single& x, Single& y, Single& z)
at Model_Viewer.ModelKotOR.KOprocess_node_and_child_n odes(UInt32 nodestart, Byte[] Data, Byte[] MDX, Boolean process, String modeldir, UInt16 parent, Boolean KotOR2)
at Model_Viewer.ModelKotOR.KOprocess_node_and_child_n odes(UInt32 nodestart, Byte[] Data, Byte[] MDX, Boolean process, String modeldir, UInt16 parent, Boolean KotOR2)
at Model_Viewer.ModelKotOR.KOprocess_node_and_child_n odes(UInt32 nodestart, Byte[] Data, Byte[] MDX, Boolean process, String modeldir, UInt16 parent, Boolean KotOR2)
at Model_Viewer.ModelKotOR.KOprocess_node_and_child_n odes(UInt32 nodestart, Byte[] Data, Byte[] MDX, Boolean process, String modeldir, UInt16 parent, Boolean KotOR2)
at Model_Viewer.ModelKotOR..ctor(Byte[] Data, Byte[] MDX, String modeldir, String tex1, String tex2, Boolean KotOR2, String filter)
at Model_Viewer.frmMain.openToolStripMenuItem_Click(O bject sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Obje ct key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(Eve ntArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(Eve ntArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(M ouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventIntera ctive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(Event Args e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEven tArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(M ouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Mes sage& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3082 (QFE.050727-3000)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Model Viewer
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///E:/Star%20Wars%20Knights%20of%20the%20Old%20Republic/-=TOOLS=-/Model%20Viewer/Model%20Viewer.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Microsoft.DirectX.Direct3D
Assembly Version: 1.0.2902.0
Win32 Version: 9.05.132.0000
CodeBase: file:///C:/WINDOWS/assembly/GAC/Microsoft.DirectX.Direct3D/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.Direct3D.dll
----------------------------------------
Microsoft.DirectX
Assembly Version: 1.0.2902.0
Win32 Version: 5.04.00.2904
CodeBase: file:///C:/WINDOWS/assembly/GAC/Microsoft.DirectX/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.dll
----------------------------------------
Microsoft.DirectX.Direct3DX
Assembly Version: 1.0.2911.0
Win32 Version: 9.12.589.0000
CodeBase: file:///C:/WINDOWS/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2911.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3082 (QFE.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

I gather that the error is related to the mesh itself rather than the act of loading an external texture. It wouldn't surprise me, as MDLOps seems to do some screwy things to sabers.

As far as suggestions go, manual control of rotation/manipulation would be the most logical thing to request in a model viewer.
 Queen of Night
05-19-2009, 3:14 PM
#36
I have a Problem with this, it give´s an error by me before he unpacked.
 Quanon
05-19-2009, 4:00 PM
#37
I have a Problem with this, it giveґs an error by me before he unpacked.

Hmm, perhaps something went wrong while it downloaded?

The program works great on my PC, though what DP suggested would be handy :p

To be able to "fly" around with the camera, perhaps assign a key to move forward and then use the mouse to direct the heading... euh course.
 shak-otay
05-19-2009, 5:06 PM
#38
Nice program!:thmbup1:

The ASCII dump feature even nicer.:)

Two questions do I have: when dumping the C_Goblin_CL_BODY01.MDB
the ASCII dump ends like this: 1209: 974 975 969
Unable to handle block..

Can this be ignored when using your ASCII dump for ex-/importing?

2nd q.: Is there any 3D program that can import this ASCII format directly?

It seems to be very similar to the Wavefront obj format; exp.:

# Max2Obj Version 4.0 Mar 10th, 2001
#
# object wozek01 to come ...
#
v 32.118301 15.749300 28.802399
v 27.051800 8.244300 28.774601
...
v -28.960499 30.216301 37.189499
# 1929 vertices

vt 0.545261 -0.991171 0.000000
...
vt 0.702664 -0.403379 0.000000
# 1929 texture vertices

vn 0.828917 -0.559355 0.004320
...
vn 0.634597 0.009950 0.772779
# 1929 vertex normals

g wozek01
s 1
f 1/1/1 2/2/2 3/3/3
...
f 1919/1919/1919 1918/1918/1918 1929/1929/1929
# 1652 faces

g
# object shadowbone01 to come ...
#
v -54.162701 56.407200 -28.854797
...
v -74.113899 31.602299 35.161900
# 602 vertices

vt 0.626660 -0.491801 0.000000
...
vt 0.019469 -0.408086 0.000000
# 602 texture vertices

vn -0.015553 -0.007923 0.999848
...
vn -0.658603 -0.337494 0.672563
# 602 vertex normals

g shadowbone01
s 1
f 1930/1930/1930 1931/1931/1931 1932/1932/1932
...
f 2171/2171/2171 2174/2174/2174 2172/2172/2172
# 1152 faces

g
 Queen of Night
05-19-2009, 5:10 PM
#39
My Problem is it give not a Icon and an Error when I unpacked the ModelViewer.
 Adinos
05-20-2009, 4:44 AM
#40
Hi Adinos,

as it seems that you got the information you were looking for would you be willing to share your knowledge about the mdl file format with us?:)


The format is actually documented pretty well already. See:

http://home.comcast.net/~cchargin/kotor/mdl_info.html)

The KotOR and KotOR2 formats are not identical, but very similar.
 DarthParametric
05-20-2009, 8:59 AM
#41
Queen of Night what program are you using to extract the archive?
 Queen of Night
05-20-2009, 9:05 AM
#42
The Programm to extract with the Name 7-zip.
 DarthParametric
05-20-2009, 10:26 AM
#43
The archive extracts fine for me using Z-Zip on XP. What error message do you get?
 Queen of Night
05-20-2009, 1:07 PM
#44
My Problem is it give not a Icon and an Error when I unpacked the ModelViewer.

That is my Problem. The Error is that nothing to see.
 shak-otay
05-20-2009, 1:40 PM
#45
The format is actually documented pretty well already. See:

http://home.comcast.net/~cchargin/kotor/mdl_info.html)

The KotOR and KotOR2 formats are not identical, but very similar.

Yep; thank U for the link!:)
 Canderis
05-23-2009, 7:35 PM
#46
The viewer is amazing! Thanks for making this. Only a few suggestions.
1] Be able to stop the automatic spinning and rotate it yourself
2] Be able to select a background image
 Queen of Night
03-03-2010, 5:53 AM
#47
The aforementioned model viewer from Adinos not work for me. I do not know why, you have a tip for me?

Here is the picture of the errors. The viewer can not be opened even though the thing is installed.

http://img710.imageshack.us/i/unbenanntwgp.jpg/)

Translate in English:

Model Viewer has encountered a problem and must be ended.
If you have not saved their work on might be lost.


This error occurs immediately after I want to start it. Then, I wonder where this is the problem. Odd
 -Brom-
04-06-2010, 6:13 AM
#48
I`ve the same problem as Queen of Night :confused:.

Is the Modelviewer compatible with Win7-64bit?
Or is there another reason for my problem?
 Queen of Night
04-06-2010, 8:30 AM
#49
My problem has installed to themselves meanwhile finishedly as me a demo version of 3ds Max and had uninstalled a little later, then suddenly functioned of the ModelViewer or he still functions.

@Brom: Unfortunately, I cannot help in your problem you. I am sorry.
 -Brom-
04-06-2010, 12:20 PM
#50
I´ve installed 3ds max, but it doesn`t solve my problem.
Is there anyone else with a 64-version of Windows, who tried to use this program? Is it working?
I tried to run the program on the Windows XP Mode (Virtual PC...), but the same error has occured. Can it be true that the model viewer.exe only work with a geforce graphiccard, or something like that?
(I apologize for my bad english.)
Page: 1 of 2