SIO2とBlenderの勉強 その1
なんでSIO2とBlenderかっていうと、
iPhoneで3Dやるのによさげだから。
OpenGL ESでやるのとどっちがいいのか、
どう違うのかとか今のところはさっぱり不明。
(やっていくうちに見えて来るはず)
まず簡単な3Dモデリングデータを
こちらのチュートリアルを参考に作ろうとしてみた。
本当に初めての方のために作成したBlenderチュートリアル
→「12. メッシュの編集2」あたりで眠くなってしまった・・・
まあ実際に3Dやるとしたら自分はモデリングデータの作成よりは
3Dエンジンでの描画側をやると思うので、
SIO2の方をやるか、と思ってみつけたページがこちら。
SIO2とシティエンジンでiPhoneの中に街を作るテスト中
なんかここに載ってるシティエンジンってのがすごい。
よくわかんないけどBlender用のデータらしい。
これをiPhone上で動かせるようになるだけでも、
3Dできますアピール効果は高そう。
同ページにこんなやり方が書いてある。
SIO2でブレンダーからiPhoneに持ってくるテスト中
手順は簡単です。
ブレンダーで作ったシーン上のオブジェクトを全て選択して、SIO2ファイルを作成。
あとは、チュートリアル04のプロジェクトを開発環境XCodeでコンパイルするだけで、iPhoneアプリが
完成します。
「チュートリアル04のプロジェクト」とやらはここからSIO2をダウンロードしたら中に入っていた。
それをビルドするだけでびっくり、3Dでグリグリ動くこんなデモが!
Blenderも3Dのなんたるかも理解せずうまくいったのはここまで。
「ブレンダーで作ったシーン上のオブジェクトを全て選択して、SIO2ファイルを作成」
っていうところがわからない(BlenderのExportメニューにSIO2の文字はなかった)。
で、諦めかけて「.sio2 blender」でググったら意外にも日本語の記事出てきた!
SIO2 - Blender で作ったシーンファイルを表示させる
Blender シーンを独自形式に変換するため、SIO2 SDK 付属のエクスポータ SIO2_SDK_v1/exporter/sio2_exporter.py を使います。
・エクスポート先ディレクトリ SIO2_SDK_v1/foo04/export/ を作る
・シーンを全選択
・sio2_exporter.py を Blender から実行して、エクスポート先ディレクトリを指定してエクスポート
この「sio2_exporter.py を Blender から実行」がわからずさらにググってみたところ、
http://www.electrodream.jp/iphonedev/index.php/2009/11/opengl-es1-1への道のり・・4/
ここに下記のように書いてあった。
「/Applications/blender/blender.app/Contents/MacOS/.blender/scripts/」に直接、sio2のエクスポーター
(sio2_exporter.py)を入れ、メニューの「File」「Export」から直接出すことで、モデルの書き出しが行えました。
自分の環境ではパスがちょっと違った。
/Applications/blender.app/Contents/MacOS/.blender/scripts
で、これでなんとかScene.sio2というファイルの書き出しに成功!
これをtutorial04プロジェクトに追加して、template.mmというファイルを
void templateLoading( void ) { unsigned int i = 0; sio2ResourceCreateDictionary( sio2->_SIO2resource ); sio2ResourceOpen( sio2->_SIO2resource, // "tutorial04.sio2", 1 ); "Scene.sio2", 1 );
こう書き直せばOK!
・・・と思ってはりきってビルドして動かしてみたら画面真っ白。
シティエンジンの書き出しがうまくいってないらしい。
やっぱりちゃんとBlenderの操作を学ぶ必要がある。