次のアプリ、3Dでやりたいね、という話になって、しかし、3Dに関する知識はゼロだった。どのソフトを使えばいいのかすらわからなかった。
それは夏の始まりの頃の話。
ぐぐると、3Dモデリングができるソフトって何十万もするものもあれば、無料のものもある。そしてどうやら無料のほうもかなりできる子らしい。Blender という。
私の心を決めさせたのは、Blender が Monument Valley の開発でも使われてるという記事だった。
なぜ Blender を選んだのかという質問に彼らはこう答えている。
It’s free, and as powerful as any other professional 3D software.
すてきだ。
ツールが決まっても、まだわからないことだらけだった。どこまでをBlenderで作業するべきなのか、その先どうすればいいのか。
これは作りたいアプリの内容によっても違うだろう。
我々の作ろうとしているアプリはiOSのものでAndroid版の予定はない。ゲーム的な要素はあるがゲームではない。3D要素的には何かキャラクターがいて、世界があって、ちょっと動くみたいな。
結果、基盤としては、SceneKitというフレームワークを使うことにした。iOS 8, 9でパワーアップしてて面白そうだったし。
もしかして、SceneKitではなくUnityを採用していたら、ドキュメントやサンプルコードが充実してて楽だったのかもしれないと思うこともあるが、SceneKitもすばらしい子です。罠をいっぱいしかけてくれて小悪魔っぽくもあります。
ぐぐっただけではまるで情報が足りないので、実際に3Dオブジェクトを作ったり、iOS上で動かせるプロトタイプを作ってもらってテストしながら、少しずつやり方が定まってきた。我々のアプリでは3Dに関する部分は、おおまかにこんな感じで作ることになった。
- Blenderで、各オブジェクトのモデリングから、個別のアニメーションの作成まで行う
- それらをCOLLADAフォーマットで書き出す
- XcodeにCOLLADAファイルを読み込み、Sceneファイルに変換
- マテリアルなどを正しく設定しなおす
- オブジェクトの配置などはだいたいSceneファイル上でやる
- 光やカメラ、アニメーションの制御など動的なものはコードでやる
- その場でぐるぐるまわり続けるとかの機械的なアニメーションはSceneファイル上で作る
次回はBlenderについて書こう。