Blenderが2.67にバージョンアップしていたので導入したら、
Xファイルの出力仕様が変わって自前のプログラムで読めなくなった。おのれ!
blender.org - Older versions
古いバージョンのBlenderはここからダウンロードできそう。回線がすごく細いが。
起動時に最初からあるオブジェクトをXファイルに出力した際、
と出力されるのを以下のように直してみたら、自前のプログラムや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はさっぱりわからんという大問題が。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
いじるファイルはたぶんこれだろう。
C:\Program Files\Blender Foundation\Blender\2.67\scripts\addons\io_scene_x\export_x.py
出力したXファイルをテキストエディタで開いて、「,,」と「,;」を「;,」に置換したら表示できるようになった。
ひと手間だが開けないよりまし。
いままで全オブジェクトとマテリアルが一つ出力されていたが、
今回は選択しているオブジェクトが出力される様子。
どのUVが出力されるのかよくわからないがうまく設定順序をコントロールすれば任意のUVが出力できそうな気がする。
テクスチャのファイルパスは、マテリアルに設定された一番上のテクスチャ(チェックの有無にかかわらない)が出力される。
UVはUVMapsで選択中のやつのようだ。
マテリアルは設定している奴は全部出力っぽい。
0 件のコメント:
コメントを投稿