Custom Ships and wireframes
-
Thx Sushi… expect questions when I get a chance to try and decode the readme… I suspect that it’s thinking you have the old ver of utf editor… The new drag/drop ver will prob make it a little easier to do it.
Fus
-
Sushi,
Last night I went thru Dev’s walk thru, and got as far as the inputing of the VMeshWire/VWireData node. I didn’t save, as I was trying to decipher the readme file. As of this point (provided by SS), was I on the right track?
From the Readme file, Step 6 said:6. In my_ship.cmp, there will be something else that looks like this:
- my_ship.3db
-Multilevel
-Hardpoints
Add two more nodes, like so: - my_ship.3db
-Multilevel
-Hardpoints
-VMeshWire
-VWireData <–- import vwiredata.dat into here
Import vwiredata.dat, created by make_wire in step 4, into the VWireData node.
Translating instructions by Readme w/o visual clues is difficult for me…Here’s hoping you can help me. If I have misunderstood the instructions, Please tell me where I went wrong and how to correct before I ruin my model.
Fus
- my_ship.3db
-
Nope, that’s not quite right. Here’s an image of what your .cmp should look like below:
Basically, you need to do this:
- Find a simple model of the ship you want a wireframe for; usually these can be the hitboxes of the model.
- Make a .cmp out of the model you want to use for the wireframe
- Export the .lod0.vms of the cmp model. In my case, it was a-wing_wire
- Using Dev’s program, type in the make_wire, the name of the file you exported, so, a-wing_wire, the name of the of the .vms it must attach to (this must be identical to the .cmp file you exported from), so a-wing_wire.lod0.vms and what you want to call the file. I called mine a-wing_wire_mesh. The program then will produce the a-wing_wire_mesh.
- What you need to do is then copy a-wing_wire.lod0.vms to the appropriate ship. Then in root .3db, in my case, a-wing_1_lod1.3db, make a node called VMeshWire then another one called VWireData. Import the file that the make_wire program made. That’s all there is to it.
-
BTW, watch for spelling errors as well, you had VWireData as VWwireData….
-
Ok Test run #2 in Hypothetics (meaning unsaved work)
Let’s see if I am Following you correctly. After saving a new ms3d file,(name not important) I export a new CMP w/ some details removed. New CMP is called FLMagnum_Wireframe.cmp
I export the lod.vms file located in the VMeshLibrary, saving it as a .dat file. We will call this Magwiredata.dat Using the provided program, I created a .bat file(cuz I hate using the Command Line in XP, my DOS is rusty) and I use the statementmake_wire Magwiredata.dat FLMagnum_Wire.lod0.vms Magwiremesh.dat
pauseThis gets me a new file called Magwiremesh.dat. In FLMag.cmp, I make 2 new nodes located at MagTopFront.3db, named VMeshWire and VWireData, where I import my Magwiremesh.dat file intoVWireData.
Am I close in understanding your info?
Edit: I am aware of the caps error in the SS, but since this is a test run w/o saving, no harm has been done.
Fus
-
Sushi? What’s the verdict?
Does any1 else know the answer to my question if I am on the right track?
Fus
-
Yep. This is correct. It should work in game.
-
Just something to keep in mind:
I just came across a limitation of the vwiredata.
E:\FL\Scratch\Source\Client\cmn\cached_wire.cpp(224) : TRACE_1:General:way too many indicies in the wireframe object
It seems like VWireData may not hold more than 16000 indices.
-
And just to add on this body of knowledge
Each equipment wireframe that you attach to the model counts to this overall amount.
Meaning that if you have a model that’s just under 16000 and you add a number of equipment pieces, the wireframe will not work.
So like:
ship model = 15000
equipment = 2000
Total count = 17000Wireframe will not work.
-
It seems so.
To be sure, just place the ship as a solar object into space or give it some NPCs and select them to see the wireframe… or not. -
Ugh. It seems that I must once again reiterate why I dislike Dev’s wireframe creator.
While Dev’s program does create a wireframe correctly, it’s ugly and far larger than it needs to be. It’s far better to build them by hand; while tedious and time consuming, it produces a cleaner wireframe that uses far fewer vertices. If you want to see the difference, compare the first and second pictures here.
-
Normally a good baseline is to use your SUR’s model as a wireframe. Using the actual model is asking for a jumbled mess of lines.
-
Then there are far more concerning problems than wireframes to address…
-
meshes are triangulated while wireframes are lines, that is a significant difference which makes using one type for the other complicated. at one point i thought about making a wireframe tool that would let you build the wireframe lines by clicking on the vertices connecting them in a kind of 3d editor.
-
I believe (not 100% sure) that if you use w0d’s exporter the wireframes use the actual polygons (of arbitrary number of edges) defined in 3ds Max as opposed to the triangulation of said polygons.
-
FriendlyFire wrote:
Then there are far more concerning problems than wireframes to address…If you’re implying that the SUR model was too complicated, it was 352 triangles and 212 vertices, and it still produced that mess.
That’s why I dislike Dev’s utility; it uses all the vertices in the model used and draws lines between all adjacent vertices, causing a mess of lines, instead of just doing an outline of the ship. Furthermore, if you use a simpler model for the wireframe, you have to load load that model into the CMP in addition to the model which is viable, which drives up the file sizes and is really aesthetically unpleasing IMO.
TBH, I can’t think of a way to build a nice wireframe except by hand, unless someone designs a program where you can load the meshes, connect the vertices you want to be in the wireframe, and export it as VWireData.
-
FriendlyFire wrote:
I believe (not 100% sure) that if you use w0d’s exporter the wireframes use the actual polygons (of arbitrary number of edges) defined in 3ds Max as opposed to the triangulation of said polygons.So then don’t use Dev’s util, use W0d’s. It’s what we use for FW:ToW, and it produces fantastic Wireframes for even my high-poly clusterfucks.