2017-10-09 10 views
1

X3Dに変換したいVRMLコードがあります。コードは、座標を引数として与えることで、後でインスタンス化するために半径と色が異なる球を定義する必要があります。X3D:VRMLから変換されたPROTOが動作しない

まず、another questionで提案されているonline converterを使用してから、それをブレンダーで開いて確認しましたが、4つの球の代わりに1つの球しか表示されません。私はグーグルで見つかった他の同様の例と比較しましたが、なぜこれを行うのかについての違いや手掛かりはありません。いくつかのフィールドを変更して、例のように見えるようにしました。field accessTypeinitializeOnly<X3D ...>profile="Interchange" version="3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifications/x3d-3.2.xsd"の情報です。私も<Shape>をVRMLのように<children>の中に置こうとしましたが、いずれの場合もただ1つの球しか表示されませんでした。

これは私がX3Dに変換するVRMLコードの簡易版である:

#VRML 2.0 utf8 
PROTO Copper [ exposedField SFVec3f xyz 0 0 0 ] { 
    Transform { 
    translation IS xyz 
    children [ 
     Shape { 
     appearance Appearance { 
      material Material { diffuseColor 0.78 0.5 0.2 } 
     } 
     geometry Sphere { radius 1.32 } 
     } 
    ] 
    } 
} 
Copper { xyz 0.0 0.0 0.0 } # 0 
Copper { xyz 0.0 1.8 1.8 } # 1 
Copper { xyz 1.8 0.0 1.8 } # 2 
Copper { xyz 1.8 1.8 0.0 } # 3 

これは私がコンバータから得るものです:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd"> 
<X3D xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' profile='Full' version='3.0' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.0.xsd'> 
    <Scene DEF='scene'> 
    <ProtoDeclare name='Copper'> 
     <ProtoInterface> 
     <field accessType='inputOutput' name='xyz' type='SFVec3f' value='0 0 0'/> 
      </ProtoInterface> 
      <ProtoBody> 
     <Transform> 
      <Shape> 
      <Appearance> 
       <Material diffuseColor='0.78 0.5 0.2'/> 
      </Appearance> 
      <Sphere radius='1.32'/> 
      </Shape> 
      <IS> 
      <connect nodeField='translation' protoField='xyz'/> 
      </IS> 
     </Transform> 
     </ProtoBody> 
    </ProtoDeclare> 
    <Copper/> 
    <Copper xyz='0 1.8 1.8'/> 
    <Copper xyz='1.8 0 1.8'/> 
    <Copper xyz='1.8 1.8 0'/> 
    </Scene> 
</X3D> 

答えて

0

は残念ながら、それはバグのように見えますBlender X3Dインポータでは、次のように、BS Contactビューアで4つの球(期待通り)が表示されますが、Blenderの球は1つのみであるためです。

<?xml version="1.0" encoding="UTF-8"?> 
<X3D profile="Immersive" version="3.0"> 
    <Scene> 
     <ProtoDeclare name="Copper"> 
      <ProtoInterface> 
       <field accessType="inputOutput" name="xyz" type="SFVec3f"/> 
      </ProtoInterface> 
      <ProtoBody> 
       <Transform translation='0 0 0'> 
        <Shape> 
         <Appearance> 
          <Material diffuseColor='0.78 0.5 0.2'/> 
         </Appearance> 
         <Sphere radius='1.32' /> 
        </Shape> 
        <IS> 
         <connect nodeField="translation" protoField="xyz"/> 
        </IS> 
       </Transform> 
      </ProtoBody> 
     </ProtoDeclare> 
     <Copper /> 
     <Copper xyz='0 1.8 1.8' /> 
     <Copper xyz='1.8 0 1.8' /> 
     <Copper xyz='1.8 1.8 0' /> 
    </Scene> 
</X3D> 
関連する問題