Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Bug Reports / perform checklist for limbs

Author
Message
Foe7
17
Years of Service
User Offline
Joined: 26th Mar 2007
Location:
Posted: 20th May 2007 02:43 Edited at: 20th May 2007 06:00
I cannot get this function to display the name of the first limb. Maybe I'm doing something wrong, but I don't see how. Here's the code:



[You need to compile it then drag a file onto it.]

Here's the file I'm using (it's a .x):



I've tried other versions of this file, such as changing the number of objects or the name, but none of them show the name "Floor".

After more testing, I have concluded that it reads the name of limb 0 as "", and a possible reason would be because it is the base of the object? I am using DeleD, and I cannot seem to find a way to say which object is which limb...Is there one? Because in that case, you could just use a dummy limb 0.

And a question on the side: How does the program determine which object becomes limb 0 and so on?

-F7
Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 20th May 2007 14:45
I agree.

I've just experimented with some simple DBP plains and saved them to an X file then edited the X file to have extra limbs, then named the limbs in the X file. Whatever I try I can't get the limb 0 name to show - the other limbs are fine.

Looks like an annoying bug to me - and it should be easy to fix.

Quote: "And a question on the side: How does the program determine which object becomes limb 0 and so on?"


Some simple experiments suggest that DBP numbers them in sequence as it encounters the meshes in the X file. Just swap your two meshes round in your X file to see what I mean.

(Why don't people try these simple experiments themselves???)
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 20th May 2007 14:57
You mean that the first limb should be called 'TriTri', not 'Floor'.

DBPro doesn't seem to retain the name of the first limb, but it does for others. As there isn't anything wrong that I can see with the .X file, I'll confirm this.

In answer to your other question, the first mesh encountered is always used as limb 0. Meshes/limbs are numbered as they are encountered in the file, even when embedded within other meshes.

Foe7
17
Years of Service
User Offline
Joined: 26th Mar 2007
Location:
Posted: 21st May 2007 02:38
I would just like too say in my defense that I tried to figure out a way to see which limb was number one (in DeleD, which is what I guess the question was meant for), and couldn't figure out how to change it in there. And I did think about changing the location of the limbs in the .x file...just never tried it.
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 22nd Dec 2008 09:21 Edited at: 22nd Dec 2008 09:22
This seems to be a DeleD .x export problem. DBP enumerates limbs just fine. I created an object hierarchy of Box_1 -> Sphere_2 -> Box_3 -> Sphere_4 -> Box_5 in 3dsmax and exported with the pandasoft exporter. Everything looks fine.

http://puregdk.com/files/upload/obj_hierarchy.zip

Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 22nd Dec 2008 14:33
Quote: "This seems to be a DeleD .x export problem. "


No it isn't.

Quote: "DBP enumerates limbs just fine."


No it doesn't.

Try the following simple X file:



Of course this is only one way of setting up limbs for use with DBPro - perhaps the frame heirarchy approach is OK?
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 23rd Dec 2008 11:41 Edited at: 23rd Dec 2008 12:17
If you want to use the "frame hierarchy" approach then you should probably use frames to do it. Try this modification to your simple x file:



Correct me if I'm wrong but I don't think the example you provided is a legal .x file. It's completely linear. How can you setup an object with multiple non-linear child limbs without nesting your frames?

You also don't need to provide your own root node with a frame hierarchy. This is created automatically by DBP. Otherwise, with the mesh block format, the first block becomes the root node.

The un-nested mesh blocks would make sense if you wanted to export a scene with multiple objects in it. But each object would either need its own object ID or they would need to be grouped together into a single object. Without a hierarchy it's up to the .x parser to build the relationships between the meshes. Lee may have bent over backwards to support variants like these in DBP even when it goes against the object format.

A solution could be for DBP to automatically create a root node for these linear mesh block formats to be consistent with a framed hierarchy import. It does not make sense that the first mesh should be the root node (limb 0) because, I think, this limb can't be deleted in DBP.

Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 24th Dec 2008 00:38
Quote: "If you want to use the "frame hierarchy" approach then you should probably use frames to do it. Try this modification to your simple x file:"


And if you don't?

Quote: "Correct me if I'm wrong but I don't think the example you provided is a legal .x file."


You're wrong.

Both DBPro and the MS DX9 SDK x file viewer open it without trouble. DBPro gets the limb numbering/naming wrong.
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 24th Dec 2008 08:54 Edited at: 24th Dec 2008 08:56
If there is no frame hierarchy and DBP is not importing each mesh as an independent object ID then all meshes should be collapsed into a single object without any limbs.

If no hierarchy is specified it should be assumed that none is required. DBP may as well save on cpu cycles by eliminating limbs that have no purpose.

Quote: "DBPro gets the limb numbering/naming wrong."


How can you say that the order is wrong when no order is specified? I see no frame hierarchy with a collection of mesh blocks. They just-so-happen to be linear like text on a roll of paper tape.

Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 24th Dec 2008 11:07
Quote: "If no hierarchy is specified it should be assumed that none is required. DBP may as well save on cpu cycles by eliminating limbs that have no purpose."


Why don't you just load that X file into DBPro yourself and see what happens?

Quote: "If no hierarchy is specified it should be assumed that none is required. DBP may as well save on cpu cycles by eliminating limbs that have no purpose."


What do you mean? The object has three limbs - the root limb and two separate meshes which can be manipulated independently as separate limbs as well as together using the root limb. I suggest you try it.

I agree the frame heirarchy structure is a better way of doing it since it allows greater flexibility including vertex weights which is useful for smooth movement of limbs near joints, i.e. elbows, knees, hips, etc. But that isn't the point.

I'll come back to this thread later after I've had a chance to check a model with the frame structure - I thought those had problems as well but your comments suggest they don't.
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 24th Dec 2008 14:03
You don't need a hierarchy for meshes within X objects - the DX Mesh viewer doesn't care, and once an object is loaded/created within DBPro, it doesn't care too much either (create an object, add a limb but don't link it. See?) In fact, it's only the X loader that has the issue with the name of the first limb as DBO files load cleanly and correctly every time.

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 25th Dec 2008 03:18 Edited at: 25th Dec 2008 12:35
Quote: "What do you mean? The object has three limbs - the root limb and two separate meshes which can be manipulated independently as separate limbs as well as together using the root limb."


I forgot that in DBP a limb can be part of an object but have no parent. In that case it does make sense to import each mesh block as an independent limb.

While looking into this I noticed something else. The PERFORM CHECKLIST FOR OBJECT LIMBS function transverses an object's limbs like a list with a previous/next limb while also providing a value for each limb's parent/child limb to identify hierarchy. The hierarchy limbs (previous/next limb) are listed as -1 even if I specify frames. I think this is a bug.

Try this with the .x I posted earlier and you'll see that previous limb/next child are -1 even though they should be linked.



To clarify this bug, it would seem that when importing an X file with mesh blocks that do not use frames DBP uses the first mesh as the root node instead of creating a new one and drops its name. This is inconsistent with how DBP imports frame hierarchies where it creates a new limb for limb 0 and does not drop the name of the first mesh (limb 1).

DBP is also failing to list the parent/child ID of each limb while enumerating.

You can confirm that when using a frame hierarchy the limbs are being parented properly. This can be demonstrated by using the X file in the obj_hierarchy.zip I linked using this code:



DBP does not link limbs for X files imported with mesh blocks, as expected.

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 29th Jun 2010 14:00
Fixed for 7.5

If a frame/limb has no name, but it's associated mesh does, then the mesh name is used.

Login to post a reply

Server time is: 2024-04-23 23:48:21
Your offset time is: 2024-04-23 23:48:21