2013年5月8日水曜日

日記ちゃん

Blender.jp - Blender Japanese Website
 Blenderが2.67にバージョンアップしていたので導入したら、
Xファイルの出力仕様が変わって自前のプログラムで読めなくなった。おのれ!

blender.org - Older versions
 古いバージョンのBlenderはここからダウンロードできそう。回線がすごく細いが。

 起動時に最初からあるオブジェクトをXファイルに出力した際、
Mesh { // Cube mesh
      8;
       1.000000; 1.000000;-1.000000;,
       1.000000;-1.000000;-1.000000;,
      -1.000000;-1.000000;-1.000000;,
      -1.000000; 1.000000;-1.000000;,
       1.000000; 0.999999; 1.000000;,
       0.999999;-1.000001; 1.000000;,
      -1.000000;-1.000000; 1.000000;,
      -1.000000; 1.000000; 1.000000;;
      6;
      4;3,2,1,0,,
      4;5,6,7,4,,
      4;1,5,4,0,,
      4;2,6,5,1,,
      4;3,7,6,2,,
      4;7,3,0,4,;
      MeshNormals { // Cube normals
        6;
         0.000000; 0.000000;-1.000000;,
         0.000000;-0.000000; 1.000000;,
         1.000000;-0.000000; 0.000000;,
        -0.000000;-1.000000;-0.000000;,
        -1.000000; 0.000000;-0.000000;,
         0.000000; 1.000000; 0.000000;;
        6;
        4;0,0,0,0,,
        4;1,1,1,1,,
        4;2,2,2,2,,
        4;3,3,3,3,,
        4;4,4,4,4,,
        4;5,5,5,5,;
      } // End of Cube normals
 と出力されるのを以下のように直してみたら、自前のプログラムやDirectXViewerでも表示可能になった。
Mesh { // Cube mesh
      8;
       1.000000; 1.000000;-1.000000;,
       1.000000;-1.000000;-1.000000;,
      -1.000000;-1.000000;-1.000000;,
      -1.000000; 1.000000;-1.000000;,
       1.000000; 0.999999; 1.000000;,
       0.999999;-1.000001; 1.000000;,
      -1.000000;-1.000000; 1.000000;,
      -1.000000; 1.000000; 1.000000;;
      6;
      4;3,2,1,0;,
      4;5,6,7,4;,
      4;1,5,4,0;,
      4;2,6,5,1;,
      4;3,7,6,2;,
      4;7,3,0,4;;
      MeshNormals { // Cube normals
        6;
         0.000000; 0.000000;-1.000000;,
         0.000000;-0.000000; 1.000000;,
         1.000000;-0.000000; 0.000000;,
        -0.000000;-1.000000;-0.000000;,
        -1.000000; 0.000000;-0.000000;,
         0.000000; 1.000000; 0.000000;;
        6;
        4;0,0,0,0;,
        4;1,1,1,1;,
        4;2,2,2,2;,
        4;3,3,3,3;,
        4;4,4,4,4;,
        4;5,5,5,5;;
      } // End of Cube normals
 どう直せばいいのかわかればあとは出力いじればいいだけだけどPythonはさっぱりわからんという大問題が。
いじるファイルはたぶんこれだろう。
C:\Program Files\Blender Foundation\Blender\2.67\scripts\addons\io_scene_x\export_x.py



 出力したXファイルをテキストエディタで開いて、「,,」と「,;」を「;,」に置換したら表示できるようになった。
ひと手間だが開けないよりまし。
 いままで全オブジェクトとマテリアルが一つ出力されていたが、
今回は選択しているオブジェクトが出力される様子。
どのUVが出力されるのかよくわからないがうまく設定順序をコントロールすれば任意のUVが出力できそうな気がする。
 
 テクスチャのファイルパスは、マテリアルに設定された一番上のテクスチャ(チェックの有無にかかわらない)が出力される。
UVはUVMapsで選択中のやつのようだ。
マテリアルは設定している奴は全部出力っぽい。

0 件のコメント: