mieki256's diary



2007/09/26(水) [n年前の日記]

#3 [iappli][cg_tools] pac2.0に読み込ませるところでちとハマる

blenderでUV展開?の仕方がようやく判ったのでテクスチャを作成してblender上で読み込み表示して「おおー」と思いつつ、file → exportから、.bac、.tra というiアプリで3D表示するためのデータ形式(の前段階)を出力したのだけど。ポリゴン編集ツールという触れ込み(?)の pac 2.0 で、出力した .bac を読み込んだら、ウインドウに何も出てこない。むぅ。

まず、UV展開らしき図が出てこなくてハマる。 :

出力された .bac と、.bac 内のフォーマットを解説してるPDF内のサンプルを比べたところ、どうやら blender から出力されたソレは、
    ( Textures
        ( i2 256 256 )
    )
なる部分が存在しない。「テクスチャサイズはこのくらいですよ」という指定がないから、UV展開しようにもサイズが判らなくて表示されない、のかな。

blender上でテクスチャサイズを伝えられるところと言えば…。テクスチャイメージを読み込ませるところしか思いつかない。とりあえず、material でテクスチャを指定するときと同様に、256 x 256 dot の bmp を、テクスチャイメージとして指定してみたり。…この場合のテクスチャイメージは、UV/image editor ウインドウ中でbmpを読み込んだ場合のソレとは別管理なんだろうか。よくわからん。

この状態で出力したら、.bac のほうにも該当部分が出てきた。pac 2.0 で読み込んでも、UV展開図らしきものが表示された。

形状がめちゃくちゃ小さい。 :

pac 2.0 で読み込んだ際に、一応形状はポリゴン表示されるのだけど。めちゃくちゃ小さい。blender のデフォルト起動時のズーム指定そのままで作ると、異様に小さい値で出てくるっぽい。これは正解なんだろうか? pac 2.0 の解説PDF上のスクリーンショットを見る限りでは、ちょっとおかしい大きさなんだけど…。

blender 上で大きくすればいいか。と思って拡大縮小(Sキー)→10[Enter]をして10倍にしてみたが、まだ小さい。なら100倍はどうだ。…って、blender上で100倍にしたら、そもそもblender上で透視変換プレビューすらされなくなった。こりゃマズイ。

出力された .bac や、export plugin である ~/.blender/scripts/BacTraExp.py を眺める。大きさに関しては、おそらくは頂点情報である、
    ( Vertices
        ( coords
            ( pnt -1.500 0.000 0.000 )
            中略
            ( pnt 1.500 3.000 0.000 )
        )
のあたりを変更すればどうにかなりそうな。

~/.blender/scripts/BacTraExp.py を開いて、pnt で検索。試しに修正。
--- BacTraExp.py.old    Tue Sep 12 15:12:02 2006
+++ BacTraExp.py    Wed Sep 26 11:02:12 2007
@@ -1323,7 +1323,9 @@
    #write bac
    # MTHD : V3Vert.writeVertex
    def writeVertex(self, file):
-       str = ("            ( pnt %s %s %s )\n"% (self.vert.co[0], self.vert.co[1], self.vert.co[2]) )
+       # str = ("            ( pnt %s %s %s )\n"% (self.vert.co[0], self.vert.co[1], self.vert.co[2]) )
+       scale = 50
+       str = ("            ( pnt %s %s %s )\n"% (float(self.vert.co[0]) * scale, float(self.vert.co[1]) * scale, float(self.vert.co[2]) * scale) )
        file.write(str)
 
    # MTHD : V3Vert.writeNormal
頂点座標だけ 50倍して出力してる。たぶん、コレはコレでマズイ。形状データもそうだし、アニメーションをつけたときもそうだろうけど、translate 関係の数値が不整合になる予感。…でもまあ試しということで。

実行したら「インデントが変だぞ」と怒られた。python のインデントは TAB じゃないといかんのか。あるいは他の行がTABだからソレに合わせなきゃいかんのか。ていうか、xyzzy の py-mode で編集するとスペースでインデントされちゃうんですけど…。まあ、M-x tabify してTABに変換すりゃいいけど…。と思ったら文字列指定字の空白まで TAB にされてしまった。これではいかんがな…。

ひとまず、上記の修正をした plugin で出力。pac 2.0 で読んだら、それっぽいサイズで表示された。…前述のとおり、ココだけ修正したのではマズイんだけど。

弄った後で気がついた。M3Dconverter (.bac → .mbac 変換ツール)に scale 指定があった。そっちで弄ったほうがヨサゲ。前述の修正はナシで。

アニメーションをつけてみたが :

pac 2.0 で .bac、.bmp、.tra を読み込んだ状態で PVMicro3.5.2J を起動して表示確認してみると、向きが違ったり、アニメーションの回転軸があさってのほうに向いてたりでハマった。うーん。

blender の場合、上方向がz軸で、奥方向がy軸なのだけど、そのせいで向きが違ってしまう模様。MascotCapsule は奥方向がz軸っぽい。ということで、blender上でモデルを作成する際に、寝そべった状態で作らないといけない予感。いや、フツーに作って最後に頂点を回転させる感じでいいのかなとも思うけど。

アニメーションは、pac2.0で読み込んだ状態で確認するのではなく、M3Dconverter で .mbac、.mtra に変換した後に、.mbac、.mtra、.bmp を PVMicro にD&Dして表示確認しないと正確に表示されないのかもしれず…。

以上です。

過去ログ表示

Prev - 2007/09 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project