LarryG on 25/9/2013 at 23:25
Pumper is a problematic bin. You may have noticed that when you convert it to 3ds that the 2nd arms on each pump arm assembly are detached from where they belong, off to the side, and not in the correct assembled position? My guess is that bintoe does not position the primary arms correctly with respect to the base either. Did you look at the range of motion specified in the axes, @x03pu0001 and @x00pu0101? There is also the possibility that those primary arms are as the modeler positioned them originally and, given the very small range of motions specified, that bsp did not detect that intersection. I suppose that bsp might actually have made a mistake in our favor in this case. But would you want to count on it with a new model? There are enough problems getting bsp to pass on a jointed model, do you really want to press your luck by intentionally creating an intersection that can be so easily avoided? Hey, do what you want. If you find out after building 20 or so jointed models that you have a method to have the base and sub objects intersect which consistently works, post it. I would love to find out how. Meanwhile, I'll continue to try and build my models as clean as I can.
nemyax on 26/9/2013 at 00:30
Quote Posted by LarryG
when you convert it to 3ds
Sorry, I wouldn't know what happens in this case. I'm importing the bins directly into Blender, and the subobjects are arranged (correctly) automatically. Interestingly, if you unparent everything and reset the transforms on everything, there still are intersections, as in the Shock pump.
Quote Posted by LarryG
Did you look at the range of motion specified in the axes, @x03pu0001 and @x00pu0101?
The compiled bin file has no notion of axes (it specifies a 3x3 matrix and a position vector). Here's what can be gathered from it with regard to ranges (the units are radians, of course):
Quote:
name: pumper
motion: none
min: 0.0
max: 0.0
name: @s01oo
motion: rotation
min: -0.0
max: 0.0
name: @s00nn
motion: rotation
min: -0.0
max: 1.0471975803375244
name: @s04uu
motion: rotation
min: -0.0
max: 0.0
name: @s03qq
motion: rotation
min: -0.0
max: 1.0471975803375244
Quote Posted by LarryG
If you find out after building 20 or so jointed models that you have a method to have the base and sub objects intersect which consistently works, post it. I would love to find out how.
I'm trying to write directly to bin, bypassing bsp and whatnot. So far I've had no luck with multi-subobject models (only one of the dumped subobjects shows up in the editor currently). If I make any progress, I'll certainly post it.
I've been wondering about the purpose of bsp in the pipeline. Apparently it builds BSP trees from meshes, but it's not clear how the resulting trees are used. They are not stored anywhere in the bins. This needs more researching.
qolelis on 3/10/2013 at 18:36
Thanks LarryG, you gave me the motivation I needed to turn my custom lever into a jointed object instead of taking the easy way out. It wasn't that hard once I had figured out the basics (i.e. using a group of meshes as a subobject is a bad idea and thank the bearded one for "join solids" :sweat: ). Now I just need to tweak stuff.
Olfred on 16/11/2013 at 15:01
Quote Posted by nemyax
I've been wondering about the purpose of bsp in the pipeline. Apparently it builds BSP trees from meshes, but it's not clear how the resulting trees are used. They are not stored anywhere in the bins. This needs more researching.
I don't think it is stored inside the bin in any way.
I was working on a new turret model (tu_s.bin), and was having some problems converting it to a bin using bsp.exe. So to at least get the model ingame to check if it's modeled correctly I simply removed all vhots and renamed all the objects to don't feature any of the jointed object information.
So I just replaced the tu_s.bin and the model was still moving properly (only the muzzle was bugged since the vhot was missing).
My guess is that dromed/shocked does generate the map and all specific stuff which is needed for it to work when you import a new model into the editor. After that it just checks for object names discarding all jointed information.
As for your importer. The axle objects don't get imported (bintoe imports them, so it must be possible). Vhots get imported, but don't receive a name.
Using bintoe, it creates a small box at one position which is called @h00bottom, your bin importer creates a vhot at the same position, without a name.
I hope all this information will help you in your development, looking forward to it :D
gamophyte on 15/8/2022 at 16:26
Can you have more than one sub-object use the same joint?
Example: ("Aa" Orrery Sun) ➜ ("x01aa0000" axel) ➜ ("@s01bb" Moon)
➥ ("@s01cc" Earth)
I worry about the name of my Earth object. I know it should start with "@s01" as it, like the moon, uses the same joint, but I don't know what to name it but "@s01cc" but I am not trying to denote it's a sub-sub-object.
R Soul on 16/8/2022 at 19:30
Quote Posted by gamophyte
Can you have more than one sub-object use the same joint?
Technically yes but it would be no point, as they'd all be doing the same thing. The axle (joint) number is what's linked to the Tweq Joints property.
aa could be the sun, with @x00
aa0000 (your example didn't have an @, but that may just be a post typo) going through it (not sure if the names are case sensitive, but it's best to make sure everything matches).
The Earth could be called @s
00earth (
00 means it's linked to joint
00), and it would have another joint going through it called @x01
ea0000
The Moon would be called @s
01moon (
01 means it's linked to joint
01)
If you wanted a little Apollo command module going round the moon, it would need its own joint going through it called @x02
mo0000, and the command module mesh called @
s02kubricfilmedonlocation (sub object linked to joint
02)
Larry's tutorial says (at the end) that the first joint should be numbered 00 (which is Joint1 in the Tweq Joints).
gamophyte on 16/8/2022 at 22:26
Quote Posted by R Soul
Technically yes but it would be no point, as they'd all be doing the same thing. The axle (joint) number is what's linked to the Tweq Joints property.
aa could be the sun, with @x00
aa0000 (your example didn't have an @, but that may just be a post typo) going through it (not sure if the names are case sensitive, but it's best to make sure everything matches).
The Earth could be called @s
00earth (
00 means it's linked to joint
00), and it would have another joint going through it called @x01
ea0000
The Moon would be called @s
01moon (
01 means it's linked to joint
01)
If you wanted a little Apollo command module going round the moon, it would need its own joint going through it called @x02
mo0000, and the command module mesh called @
s02kubricfilmedonlocation (sub object linked to joint
02)
Larry's tutorial says (at the end) that the first joint should be numbered 00 (which is Joint1 in the Tweq Joints).
Thank you R Soul. Yes sorry my joint was a typo.
But, my example was a bad as how you describe is perfect, but I actually needed two things going around a central floating ball AI. Even so, this helped solidify Larry's work here in my mind, so thank you. And it's so well written I'm going to actually make it for a lab that's in the FM.
I have another thread where I am talking about this issue more, and I think I will do what I believe is done in Slip's rock elemental beast, which seems like there is simply two joints near each other on the BASE object. To a person's eye, the joints are so close they might as well be the same, not to mention the outer rocks irregular shape helps. I could never actually confirm how close the joints where as I could never see them when I convert bin to 3ds, then imported 3ds.
If I have difficulties setting up this AI I may instead go with a tail of trailing AI that clip into the first because they follow so close. That thread (
https://www.ttlg.com/forums/showthread.php?t=151842)
nicked on 21/10/2023 at 17:13
Important note: For some reason, if you're using Blender and the Blender exporter, your names must be in lower case (e.g. s00bb instead of S00Bb)
R Soul on 21/10/2023 at 18:12
Which exporter? I just tested with the NewDark Toolkit and the bsp warned about a captial letter but the conversion seemed to work anyway.
Root object name: aa
axle: @x00aa2500
sub object: @S00Bb