Nameless_Voice on 4/8/2004 at 22:51
I've solved the problem with the Graphical .3ds -> .bin Conversion Utility and Windows 98!
The problem seems to arise from differences in the Windows Scripting Runtimes, 'scrrun.dll'. To solve them, simply open your Windows\System folder, hide your old 'scrrun.dll' (rename it to 'xscrrun.dll' or something similar), and then put a newer version of the file there instead.
You should probably be able to find it my running a search for 'scrrun.dll' on Google.
I'll put it up at (
http://www.geocities.com/nameless_voice/Downloads.htm) The Nameless Tower, too:
(
http://www.geocities.com/nameless_voice/Downloads/Tools/scrrundll.zip) http://www.geocities.com/nameless_voice/Downloads/Tools/scrrundll.zip (63k)
If that still doesn't work, I can send you a version of the program compiled in Windows 98, which seems to work fine in Win98.
I also fixed a nasty little bug that would crash the program if you tried to load a file using a texture filename longer than 16 characters, so you might want to grab the latest version of the program, too.
Quote Posted by Mortal Monkey
One unit in anim8or is indeed one unit in dromed. However, for the sake of smooth texturing and the 3d viewport, I tend to make my models at 10 times the size, then just group everything (Edit > Select All and Build > Group) and scale it down (Edit > Scale > Scale Custom...) before exporting.
Both 3ds2bin and bsp.exe have a function to automatically scale everything by a set amount; by 0.10, for example. It doesn't work for AI meshes, though.
Quote Posted by Sluggs
A new discovery! I have just learned that you must locate your model at 0/0/0 in Anim8or before you save the final .3ds file else you will run into problems when flooring the object!
Or, you can just use the centring option (use the -o switch with bsp or tick the box in 3ds2bin).
Quote Posted by R Soul
I think most people who make custom objects just make them as and when necessary for an FM they're working on and don't make a fuss
Sound about right. As a wise man once said: "Necessity drives invention."
I just wish more people would release their objects and textures after releasing their FM.
Quote Posted by The Watcher
- build a high poly version of the end (about 1000 polys IIRC), texture it using simple textures
- render it with the camera facing directly at the surface with the at least one lightsource off to the top left (I used two)
- scale the resulting render down to something a power of 2 square (8, 16, 32, 64, 128, 256), palettise the image and ensure that none of the pixels are in colour 0 unles they should be 100% transparent.
- build your low poly model, apply the texture to it.
Yes, I've used this method fairly often as well. It's extremely useful if, like me, you're not very good at 2D art.
Quote Posted by Avalon
Those [binoculars] could be an awesome bit of gameplay. Rig up some new motions for the AIs to hold them up to their eyes, complete with cranked-up Vision attributes while they're doing so. Then, put those AIs in watch towers and voila, the player must be Extra Sneaky or wait for the AI to put them down for a second in order to pass unnoticed.
They did that quite a bit in Hitman 2; you had to keep watching the snipers until they looked away for a moment so you could run past quickly.
Quote Posted by Ottoj55
A desk with drawers that work would be so cool.
I have some of those, actually. Never released them though.
(Well, more a table with drawers - based on the old T1 cabinet table)
I had the idea years ago, as it seems to me that it could be fun sneaking into somebody's office and rummaging through all the drawers.
Did you know that the large bookcase in the study of The Haunting had openable drawers, but they were made FrobInert as I never got around to implementing into the gameplay?
If you want to check them out, open the mission in DromEd, find the 'Drawer' archetype and set the 'World Action' of its FrobInfo to 'Script'.
Maybe I'll allow the player to open them as a scare tactic in a future version.
By the way, bear in mind that bsp really doesn't like it when a joint's path takes it though a solid portion of the object, and will probably crash.
I don't think it approves of the joints path taking into a hollow inside a group, either, such as a slot fot the joint part.
You can sometimes manage to trick it by decreasing the rotation angles used in the joint name; if rotating by 90° would cause the joint to pass through a solid space (and causes bsp.exe to crash), then you can try changing the name of the joint to something like @x00aa0100 instead of @x00aa2500. That seems to tell bsp to only calculate 3.6° instead of 90°. (For some reason, the rotation angles in the axis names are in 3.6 degrees, that is to say, 0 is 0, 50 is 180°, etc.)
Quote Posted by Sluggs
How do you make a two point line? My triangle axle doesn't work. The lines in the .e file don't match anything like the one's shown in Schwaa's updated tut.
Sounds like you've solved the problem, but this might be useful anyway:
If your 3D program does not support objects with only two vertexes, create a plane instead.
Place one edge where you want to your joint, and put the other two vertices at -99.000 on the Z axis.
If you're using 3ds2bin, there is an option to automatically remove the Z-99 vertices, and any other data that should be in the joint, but you can do it manually, too.
To do this, open the .e file, find the correct object group (@x00aa2500, or whatever), and remove all the lines that have vertices at -99.00. Here are some examples from a model made in trueSpace:
Original .e file:Code:
BEGIN "_X00AA2500"
POINTS{
-2.500000,0.000000,0.000000;
-2.500000,0.000000,-99.000000;
2.500000,0.000000,0.000000;
2.500000,0.000000,-99.000000;
}
PARTS{
0,N,0,ff03,(2,3,1);
0,N,1,ff03,(2,1,0);
0,N,2,ff03,(3,2,0);
0,N,3,ff03,(3,0,1);
}
PART_MAPPINGS{
0,(-1.000000,-1.000000),(-1.000000,-1.000000),(-1.000000,-1.000000);
1,(-1.000000,-1.000000),(-1.000000,-1.000000),(-1.000000,-1.000000);
2,(-1.000000,-1.000000),(-1.000000,-1.000000),(-1.000000,-1.000000);
3,(-1.000000,-1.000000),(-1.000000,-1.000000),(-1.000000,-1.000000);
}
BEGIN "_S00BB"
After deleting the -99.00 vertices:Code:
BEGIN "_X00AA2500"
POINTS{
-2.500000,0.000000,0.000000;
2.500000,0.000000,0.000000;
}
PARTS{
0,N,0,ff03,(2,3,1);
0,N,1,ff03,(2,1,0);
0,N,2,ff03,(3,2,0);
0,N,3,ff03,(3,0,1);
}
PART_MAPPINGS{
0,(-1.000000,-1.000000),(-1.000000,-1.000000),(-1.000000,-1.000000);
1,(-1.000000,-1.000000),(-1.000000,-1.000000),(-1.000000,-1.000000);
2,(-1.000000,-1.000000),(-1.000000,-1.000000),(-1.000000,-1.000000);
3,(-1.000000,-1.000000),(-1.000000,-1.000000),(-1.000000,-1.000000);
}
BEGIN "_S00BB"
Joints should have any parts or part mappings, either, so you should delete all those, too.
After deleting the part mappings:Code:
BEGIN "_X00AA2500"
POINTS{
-2.500000,0.000000,0.000000;
2.500000,0.000000,0.000000;
}
BEGIN "_S00BB"
Also, some programs (anything that requires you to run the object through AccuTrans 3D to get a proper .3ds file) don't allow @ symbols in their group name. AccuTrans replaces them wtih underscores, as you can see in the above examples.
If this happens to you, make sure to replace the underscores with @ symbols again.
Also, the special character after the @ symbol needs to be lowercase, or bsp will ignore it.
The final joint should look like this:Code:
BEGIN "@x00AA2500"
POINTS{
-2.500000,0.000000,0.000000;
2.500000,0.000000,0.000000;
}
BEGIN "@s00BB"
(Note that 3ds2bin automatically converts things like "_X" to "@x")
Sluggs, that's some great work you're doing there, BTW! :thumb: