Pview different results from Panda3D.


#1

Hi.
I have a model in Blender 2.5 and export it with the latest yabee exporter.
The model consisted from two parts and if I view it with PView I get the whole object animated. but if I load it with panda I see only one of them.
I don’t know if it is a problem with the exporter or something else.
here is the egg model:

<CoordinateSystem> { Z-up } 
<Material> Material.001 {
  <Scalar> diffr { 0.640 }
  <Scalar> diffg { 0.640 }
  <Scalar> diffb { 0.640 }
  <Scalar> specr { 0.500 }
  <Scalar> specg { 0.500 }
  <Scalar> specb { 0.500 }
  <Scalar> shininess { 12.5 }
  <Scalar> emitr { 0.000 }
  <Scalar> emitg { 0.000 }
  <Scalar> emitb { 0.000 }
}

<Material> Material {
  <Scalar> diffr { 0.640 }
  <Scalar> diffg { 0.640 }
  <Scalar> diffb { 0.640 }
  <Scalar> specr { 0.500 }
  <Scalar> specg { 0.500 }
  <Scalar> specb { 0.500 }
  <Scalar> shininess { 12.5 }
  <Scalar> emitr { 0.000 }
  <Scalar> emitg { 0.000 }
  <Scalar> emitb { 0.000 }
}

  <Group> Cube.001 {
    <Dart> { 1 }
    <VertexPool> Cube.001 {
      <Vertex> 0 {
        -1.000 -1.000 2.719
        <UV>  {
          0.403 0.456
        }
      }
      <Vertex> 1 {
        1.000 -1.000 2.719
        <UV>  {
          0.515 0.434
        }
      }
      <Vertex> 2 {
        1.000 1.000 2.719
        <UV>  {
          0.549 0.544
        }
      }
      <Vertex> 3 {
        -1.000 1.000 2.719
        <UV>  {
          0.436 0.566
        }
      }
      <Vertex> 4 {
        1.000 1.000 2.719
        <UV>  {
          0.549 0.544
        }
      }
      <Vertex> 5 {
        1.000 -1.000 2.719
        <UV>  {
          0.515 0.434
        }
      }
      <Vertex> 6 {
        1.000 -1.000 1.000
        <UV>  {
          0.952 0.031
        }
      }
      <Vertex> 7 {
        1.000 1.000 1.000
        <UV>  {
          0.952 1.000
        }
      }
      <Vertex> 8 {
        1.000 -1.000 2.719
        <UV>  {
          0.515 0.434
        }
      }
      <Vertex> 9 {
        -1.000 -1.000 2.719
        <UV>  {
          0.403 0.456
        }
      }
      <Vertex> 10 {
        -1.000 -1.000 1.000
        <UV>  {
          0.000 0.000
        }
      }
      <Vertex> 11 {
        1.000 -1.000 1.000
        <UV>  {
          0.952 0.031
        }
      }
      <Vertex> 12 {
        -1.000 1.000 1.000
        <UV>  {
          0.000 0.969
        }
      }
      <Vertex> 13 {
        -1.000 -1.000 1.000
        <UV>  {
          0.000 0.000
        }
      }
      <Vertex> 14 {
        -1.000 -1.000 2.719
        <UV>  {
          0.403 0.456
        }
      }
      <Vertex> 15 {
        -1.000 1.000 2.719
        <UV>  {
          0.436 0.566
        }
      }
      <Vertex> 16 {
        1.000 1.000 1.000
        <UV>  {
          0.952 1.000
        }
      }
      <Vertex> 17 {
        -1.000 1.000 1.000
        <UV>  {
          0.000 0.969
        }
      }
      <Vertex> 18 {
        -1.000 1.000 2.719
        <UV>  {
          0.436 0.566
        }
      }
      <Vertex> 19 {
        1.000 1.000 2.719
        <UV>  {
          0.549 0.544
        }
      }
    }
    
    
    <Polygon> {
      <MRef> { Material }
      <Normal> {0.000 0.000 1.000}
      <VertexRef> { 0 1 2 3 <Ref> { Cube.001 }}
    }
    <Polygon> {
      <MRef> { Material }
      <Normal> {1.000 -0.000 0.000}
      <VertexRef> { 4 5 6 7 <Ref> { Cube.001 }}
    }
    <Polygon> {
      <MRef> { Material }
      <Normal> {-0.000 -1.000 0.000}
      <VertexRef> { 8 9 10 11 <Ref> { Cube.001 }}
    }
    <Polygon> {
      <MRef> { Material }
      <Normal> {-1.000 0.000 0.000}
      <VertexRef> { 12 13 14 15 <Ref> { Cube.001 }}
    }
    <Polygon> {
      <MRef> { Material }
      <Normal> {0.000 1.000 0.000}
      <VertexRef> { 16 17 18 19 <Ref> { Cube.001 }}
    }
    
    <Joint> Bone {
      <Transform> {
        <Matrix4> {
          1.000 0.000 0.016 0.000
          -0.016 -0.000 1.000 0.000
          0.000 -1.000 -0.000 0.000
          0.030 0.000 -0.928 1.000
        }
      }
      <VertexRef> {
        1 5 8
        <Scalar> membership { 0.099 }  <Ref> { Cube.001 }
      }
      <VertexRef> {
        6 7 10 11 12 13 16 17
        <Scalar> membership { 0.497 }  <Ref> { Cube.001 }
      }
      <VertexRef> {
        3 15 18
        <Scalar> membership { 0.100 }  <Ref> { Cube.001 }
      }
      <VertexRef> {
        0 2 4 9 14 19
        <Scalar> membership { 0.108 }  <Ref> { Cube.001 }
      }
      <Joint> Bone.001 {
        <Transform> {
          <Matrix4> {
            1.000 -0.018 0.002 0.000
            0.018 1.000 0.000 0.000
            -0.002 0.000 1.000 0.000
            0.000 1.928 -0.000 1.000
          }
        }
        <VertexRef> {
          6 7 10 11 12 13 16 17
          <Scalar> membership { 0.503 }  <Ref> { Cube.001 }
        }
        <VertexRef> {
          0 2 4 9 14 19
          <Scalar> membership { 0.892 }  <Ref> { Cube.001 }
        }
        <VertexRef> {
          3 15 18
          <Scalar> membership { 0.900 }  <Ref> { Cube.001 }
        }
        <VertexRef> {
          1 5 8
          <Scalar> membership { 0.901 }  <Ref> { Cube.001 }
        }
      }
    }
    
  }
  <Group> Cube {
    <Dart> { 1 }
    <VertexPool> Cube {
      <Vertex> 0 {
        1.000 1.000 -1.000
        <UV>  {
          0.497 0.370
        }
      }
      <Vertex> 1 {
        1.000 -1.000 -1.000
        <UV>  {
          0.493 0.370
        }
      }
      <Vertex> 2 {
        -1.000 -1.000 -1.000
        <UV>  {
          0.493 0.365
        }
      }
      <Vertex> 3 {
        -1.000 1.000 -1.000
        <UV>  {
          0.498 0.366
        }
      }
      <Vertex> 4 {
        1.000 1.000 -1.000
        <UV>  {
          0.497 0.370
        }
      }
      <Vertex> 5 {
        1.000 1.000 1.000
        <UV>  {
          0.944 1.000
        }
      }
      <Vertex> 6 {
        1.000 -1.000 1.000
        <UV>  {
          0.000 0.670
        }
      }
      <Vertex> 7 {
        1.000 -1.000 -1.000
        <UV>  {
          0.493 0.370
        }
      }
      <Vertex> 8 {
        1.000 -1.000 -1.000
        <UV>  {
          0.493 0.370
        }
      }
      <Vertex> 9 {
        1.000 -1.000 1.000
        <UV>  {
          0.000 0.670
        }
      }
      <Vertex> 10 {
        -1.000 -1.000 1.000
        <UV>  {
          0.254 0.027
        }
      }
      <Vertex> 11 {
        -1.000 -1.000 -1.000
        <UV>  {
          0.493 0.365
        }
      }
      <Vertex> 12 {
        -1.000 -1.000 -1.000
        <UV>  {
          0.493 0.365
        }
      }
      <Vertex> 13 {
        -1.000 -1.000 1.000
        <UV>  {
          0.254 0.027
        }
      }
      <Vertex> 14 {
        -1.000 1.000 1.000
        <UV>  {
          0.944 0.000
        }
      }
      <Vertex> 15 {
        -1.000 1.000 -1.000
        <UV>  {
          0.498 0.366
        }
      }
      <Vertex> 16 {
        1.000 1.000 1.000
        <UV>  {
          0.944 1.000
        }
      }
      <Vertex> 17 {
        1.000 1.000 -1.000
        <UV>  {
          0.497 0.370
        }
      }
      <Vertex> 18 {
        -1.000 1.000 -1.000
        <UV>  {
          0.498 0.366
        }
      }
      <Vertex> 19 {
        -1.000 1.000 1.000
        <UV>  {
          0.944 0.000
        }
      }
    }
    
    
    <Polygon> {
      <MRef> { Material.001 }
      <Normal> {0.000 0.000 -1.000}
      <VertexRef> { 0 1 2 3 <Ref> { Cube }}
    }
    <Polygon> {
      <MRef> { Material.001 }
      <Normal> {1.000 -0.000 0.000}
      <VertexRef> { 4 5 6 7 <Ref> { Cube }}
    }
    <Polygon> {
      <MRef> { Material.001 }
      <Normal> {-0.000 -1.000 -0.000}
      <VertexRef> { 8 9 10 11 <Ref> { Cube }}
    }
    <Polygon> {
      <MRef> { Material.001 }
      <Normal> {-1.000 0.000 -0.000}
      <VertexRef> { 12 13 14 15 <Ref> { Cube }}
    }
    <Polygon> {
      <MRef> { Material.001 }
      <Normal> {0.000 1.000 0.000}
      <VertexRef> { 16 17 18 19 <Ref> { Cube }}
    }
    
    <Joint> Bone {
      <Transform> {
        <Matrix4> {
          1.000 0.000 0.016 0.000
          -0.016 -0.000 1.000 0.000
          0.000 -1.000 -0.000 0.000
          0.030 0.000 -0.928 1.000
        }
      }
      <VertexRef> {
        5 6 9 10 13 14 16 19
        <Scalar> membership { 0.497 }  <Ref> { Cube }
      }
      <VertexRef> {
        3 15 18
        <Scalar> membership { 0.916 }  <Ref> { Cube }
      }
      <VertexRef> {
        1 7 8
        <Scalar> membership { 0.920 }  <Ref> { Cube }
      }
      <VertexRef> {
        2 11 12
        <Scalar> membership { 0.910 }  <Ref> { Cube }
      }
      <VertexRef> {
        0 4 17
        <Scalar> membership { 0.913 }  <Ref> { Cube }
      }
      <Joint> Bone.001 {
        <Transform> {
          <Matrix4> {
            1.000 -0.018 0.002 0.000
            0.018 1.000 0.000 0.000
            -0.002 0.000 1.000 0.000
            0.000 1.928 -0.000 1.000
          }
        }
        <VertexRef> {
          0 4 17
          <Scalar> membership { 0.087 }  <Ref> { Cube }
        }
        <VertexRef> {
          2 11 12
          <Scalar> membership { 0.090 }  <Ref> { Cube }
        }
        <VertexRef> {
          5 6 9 10 13 14 16 19
          <Scalar> membership { 0.503 }  <Ref> { Cube }
        }
        <VertexRef> {
          3 15 18
          <Scalar> membership { 0.084 }  <Ref> { Cube }
        }
        <VertexRef> {
          1 7 8
          <Scalar> membership { 0.080 }  <Ref> { Cube }
        }
      }
    }
    
  }

and the anim egg:

<CoordinateSystem> { Z-up } 
<Table> {
  <Bundle> Cube.001 {
    <Table> "<skeleton>" {
      <Table> Bone {
        <Xfm$Anim> xform {
          <Scalar> order { sprht }
          <Scalar> fps { 24 }
          <Scalar> contents { ijkprhxyz }
          <V> {
            1.000 1.000 1.000 90.000 0.219 0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -0.064 0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -0.924 0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -2.365 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -4.385 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -6.963 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -10.055 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -13.591 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -17.473 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -21.576 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -25.754 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -29.856 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -33.739 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -37.275 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -40.367 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -42.945 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -44.965 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -46.406 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -47.266 -0.000 0.030 0.000 -0.928
          }
        }
        <Table> Bone.001 {
          <Xfm$Anim> xform {
            <Scalar> order { sprht }
            <Scalar> fps { 24 }
            <Scalar> contents { ijkprhxyz }
            <V> {
              1.000 1.000 1.000 0.000 -0.130 -1.034 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -1.540 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -3.082 0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -5.696 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -9.413 -0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -14.243 0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -20.155 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -27.052 -0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -34.749 -0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -42.974 0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -51.383 -0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -59.609 -0.000 1.928 -0.000
              1.000 1.000 1.000 -0.000 -0.130 -67.306 -0.000 1.928 -0.000
              1.000 1.000 1.000 -0.000 -0.130 -74.203 -0.000 1.928 -0.000
              1.000 1.000 1.000 -0.000 -0.130 -80.115 -0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -84.946 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -88.662 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -91.276 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -92.817 -0.000 1.928 0.000
            }
          }
        }
      }
    }
  }
  <Bundle> Cube {
    <Table> "<skeleton>" {
      <Table> Bone {
        <Xfm$Anim> xform {
          <Scalar> order { sprht }
          <Scalar> fps { 24 }
          <Scalar> contents { ijkprhxyz }
          <V> {
            1.000 1.000 1.000 90.000 0.219 0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -0.064 0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -0.924 0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -2.365 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -4.385 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -6.963 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -10.055 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -13.591 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -17.473 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -21.576 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -25.754 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -29.856 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -33.739 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -37.275 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -40.367 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -42.945 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -44.965 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -46.406 -0.000 0.030 0.000 -0.928
            1.000 1.000 1.000 90.000 -47.266 -0.000 0.030 0.000 -0.928
          }
        }
        <Table> Bone.001 {
          <Xfm$Anim> xform {
            <Scalar> order { sprht }
            <Scalar> fps { 24 }
            <Scalar> contents { ijkprhxyz }
            <V> {
              1.000 1.000 1.000 0.000 -0.130 -1.034 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -1.540 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -3.082 0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -5.696 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -9.413 -0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -14.243 0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -20.155 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -27.052 -0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -34.749 -0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -42.974 0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -51.383 -0.000 1.928 -0.000
              1.000 1.000 1.000 0.000 -0.130 -59.609 -0.000 1.928 -0.000
              1.000 1.000 1.000 -0.000 -0.130 -67.306 -0.000 1.928 -0.000
              1.000 1.000 1.000 -0.000 -0.130 -74.203 -0.000 1.928 -0.000
              1.000 1.000 1.000 -0.000 -0.130 -80.115 -0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -84.946 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -88.662 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -91.276 0.000 1.928 0.000
              1.000 1.000 1.000 0.000 -0.130 -92.817 -0.000 1.928 0.000
            }
          }
        }
      }
    }
  }
}

And here is the panda code.

from direct.showbase.ShowBase import ShowBase
from direct.actor.Actor import Actor

class MyApp(ShowBase):

    def __init__(self): 
        ShowBase.__init__(self)

        self.male = Actor('models/test.egg',{'walk':'models/test-Anim0.egg'})
        self.male.reparentTo(self.render)
        self.male.loop('walk')

app = MyApp()
app.run()

I am really new with Panda3D so I may haven’t seen the obvious. But I searched the manual and the forum for an answer.

Also I managed to get the wanted results with multipart actor but my actor gets to heavy ( I loose frame rate) even if I use the egg-optchar.

Thanks in advanced and please forgive my English.


#2

panda3d.org/forums/viewtopic … 5922#75922


#3

I’m not sure if having something like this done in Pview is a good idea. It just causes confusion because your models seem right in the preview, but wrong in the actual game.


#4

Thanks ninth.( I read the whole topic yesterday. I must overlooked this post… sorry about that.)
This works.
But it is as heavy in frame rate as a multipart actor.
This is not suitable for me cause I just wand to replace the texture of the parts.


#5

For me this is an exporter error.

The structure for this file is:

<Group> Cube.001 {
    <Dart> { 1 }
    .
    .
    .
}
<Group> Cube {
    <Dart> { 1 } 
    .
    .
    .
}

and it should be:

<Group> character {
    <Dart> { 1 }
    <Group> Cube.001 {
        .
        . 
        .
    }
    <Group> Cube {
        .
        .
        .
    }
}

So, there should be a common group for all the objects for the animations to work well.


#6

It’s not an error - it’s a feature =)
You have two mesh with two Armature modifier in the Blender => you should have respectively two animated Character in the results EGG file.
If you are not satisfied with this outcome, then you need to merge whole needed meshes into one mesh…
May be I’ll add an option to join meshes with the same armature into the one actor later.


#7

But this way you cannot get access to the parts of the model as you get only one geomNode. And the solution to have (access) is to do it multipart.

For example.
With a single mesh I can get 100 animated actors and get 35-37 frames per second. And with a multipart I get 10-15 frames per second.
It’s a huge gap for just change a texture of the parts.

Ninth I have no intention to criticize you or yabee, you are all ready very generous. I just wanted to find out where I stand.

Thanks.