asam-ev / OpenMATERIAL

3D model exchange format with physical material properties for virtual development, test and validation of automated driving.
https://asam-ev.github.io/OpenMATERIAL/
Mozilla Public License 2.0
13 stars 7 forks source link

157 provide example for a human asset analog to vehicle example #158

Open ClemensLinnhoff opened 1 month ago

ClemensLinnhoff commented 1 month ago

Describe your changes

Add human model (without helper bones and with full hands (no fingers as bones))

Issue ticket number and link

Fixes #157

Mention a member

@ipg-sig

Checklist before requesting a review

ipg-sig commented 2 weeks ago

@ClemensLinnhoff

Should the included animation look like this or wasn´t it intended? Anim

ClemensLinnhoff commented 2 weeks ago

Should the included animation look like this or wasn´t it intended?

I think we had some animations in there (running, jumping or similar). But they were not intended to be exported as part of this example. Feel free to remove them.

LudwigFriedmann commented 1 week ago

@ClemensLinnhoff Is this PR ready for review?

ClemensLinnhoff commented 1 week ago

No, this is still a draft. This was just my initial upload and @ipg-sig might need to adapt the model to the new definitions.

ClemensLinnhoff commented 6 days ago

I think there is something wrong with the node hierarchy. I imported the glTF into Blender and the hierarchy looks like this:

image

Looks like the hierarchy was flattened. Was that done during export maybe?

ClemensLinnhoff commented 6 days ago

Otherwise it looks great. I like the example of the wrist band as an accessory.

LudwigFriedmann commented 6 days ago

It may be the case that blender and/or the gltf exporter considers nodes which are linked to the armature as children. I can export my previous human model and see if I experience similar results

ClemensLinnhoff commented 4 days ago

I checked the updated human example and the hierarchy is still flattened in Blender. But maybe this is a Blender bug? Because this is an excerpt of the current glTF file and here the group nodes do have children.

{
    "mesh":0,
    "name":"Accessorie",
    "skin":0
},
{
    "children":[
        31
    ],
    "name":"Grp_Accessories"
},
{
    "mesh":1,
    "name":"Human",
    "skin":0
},
{
    "children":[
        33
    ],
    "name":"Grp_Body"
},
{
    "mesh":2,
    "name":"Vest",
    "skin":0
},
{
    "children":[
        35
    ],
    "name":"Grp_Clothing"
},
ClemensLinnhoff commented 4 days ago

And I get the following report from a glTF validator:

image

ClemensLinnhoff commented 4 days ago

On the other hand, I imported it to this editor: https://www.gltfeditor.com/

Here the structure looks correct:

image

ClemensLinnhoff commented 4 days ago

I also asked our 3D artist and he says it should not be possible to have empty nodes with children in an armature. The meshes should directly be part of it, at least in Blender.

ClemensLinnhoff commented 4 days ago

I also asked our 3D artist and he says it should not be possible to have empty nodes with children in an armature. The meshes should directly be part of it, at least in Blender.

Okay we tried around a bit. So it does seem to work. But it is an import bug in Blender that flattens the hierarchy. Anyways this seems to be quite an exotic solution having empty nodes as part of an armature.

ipg-sig commented 4 days ago

@ClemensLinnhoff Thank you very much! I have tried different combinations in Blender, but it always ended in the flattened hierarchy after reimporting the exported files (all 3 file formats).

To avoid it, we could also use the group names as an Prefix for the meshes, so we can get rid of the additional group nodes. Example:

But I think this should be discussed in the group next week? I can fix it in advance for next week, but I will not be able to be present at the next meeting.

ClemensLinnhoff commented 4 days ago

@ClemensLinnhoff Thank you very much! I have tried different combinations in Blender, but it always ended in the flattened hierarchy after reimporting the exported files (all 3 file formats).

To avoid it, we could also use the group names as an Prefix for the meshes, so we can get rid of the additional group nodes. Example:

  • Accessories_Wristband
  • Body_Human
  • Clothing_Vest
  • Hair_Short

But I think this should be discussed in the group next week? I can fix it in advance for next week, but I will not be able to be present at the next meeting.

Yes, this came also to my mind. Just have a prefix for the meshes instead of the empty nodes.

LudwigFriedmann commented 4 days ago

I can confirm flattening of the hierachy happens for my example, as well (even though I've made sure this option is disabled within the export dialog).

Blend: pedestrian_blend

glTF: pedestrian_gltf

ClemensLinnhoff commented 4 days ago

We created an issue in the Blender project and already got an answer from another user and from a blender organization member who do not think this is a bug since the behavior of the mesh is still correct even if the hierarchy is flattened. The issue was already closed: https://projects.blender.org/blender/blender/issues/130677

So if Blender is not supporting this and will not support this, I think we should flatten the hierarchy in the definitions as well, as @ipg-sig proposed.

ipg-sig commented 3 days ago

Model and exported files re updated @ClemensLinnhoff .

With OpenUSD the "Grp_Root" was always renamed to "root" after import, but I am not sure if this is another Blender OpenUSD Bug. FBX and GLTF work fine now. maybe someone can check it again with OpenUSD? The .blend file is also updated.

ClemensLinnhoff commented 3 days ago

@ipg-sig feel free to add yourself as co-author the the metadata of the asset file :)

LudwigFriedmann commented 23 hours ago

Model and exported files re updated @ClemensLinnhoff .

With OpenUSD the "Grp_Root" was always renamed to "root" after import, but I am not sure if this is another Blender OpenUSD Bug. FBX and GLTF work fine now. maybe someone can check it again with OpenUSD? The .blend file is also updated.

I wasn't able to reproduce this behavior in Blender 4.1.1. "Grp_Root" kept its name over an export and re-import as USD. image

ClemensLinnhoff commented 22 hours ago

Model and exported files re updated @ClemensLinnhoff . With OpenUSD the "Grp_Root" was always renamed to "root" after import, but I am not sure if this is another Blender OpenUSD Bug. FBX and GLTF work fine now. maybe someone can check it again with OpenUSD? The .blend file is also updated.

I wasn't able to reproduce this behavior in Blender 4.1.1. "Grp_Node" kept its name over an export and re-import as USD.

I can somewhat reproduce it. After reimporting the pedestrian USD file, I get the following structure:

image

ClemensLinnhoff commented 22 hours ago

But that seems to be a pedestrian issue, as it works for the example vehicle. This also explains, why it works in @LudwigFriedmann s example:

image

ClemensLinnhoff commented 22 hours ago

During usd export in Blender you can set the name of the root prim. The default values is /root.

image

But you can simply remove that and then the root node it Grp_Root, as specified. I tried an online usd viewer and this is the hierarchy there:

image