BLOG

« 立体投影方式の選択 | Univiewネットワーク実験 »

Mitaka Plusの視点アニメーション制御

昨日リリースしたMitaka Plus ver.1.2.0 betaは、様々な環境での動作状況を確認したいという意味もあってβ版です。各シーンについてOpenGLの基本に忠実に最適化を施していったところ、かなりの速度向上を実現。開発やテストに使っているGeForce7x00系でもそこそこの違いがありますが、IntelチップなどオンボードGPU等の環境ではほとんどフリーズするような重さだったシーンがスムーズに動くようになったのではないでしょうか。これくらいスムーズに動くようになれば、ターゲット選択やスケールのアニメーションにも対応する気になるというものです。この最適化に際してそれほど特殊なことはしていませんが、もし何か新バージョンになって不具合などありましたら、お知らせいただけると幸いです。

さて、ここしばらくは開発に専念するあまりブログの更新も滞っていましたが、主にやっていたのは新プロジェクトのシステム設計と、MitakaやUniviewのスクリプトによる視点アニメーションの検討です。(その他、某所で大平さんとイベントやってたり)

Mitaka Plusでは、すでにスクリプトから視点を下記のように設定できます。

Camera:setEuler(30, 20,0);
Camera:setZoom(0.01 * mtk.UNIT_AU);

これで、宇宙空間での視点位置が、基準点から右向きに30度、上方向に30度見上げ、ターゲット天体から0.01天文単位の距離に移動します。ちなみに距離は

Camera.zoom = 0.01 * mtk.UNIT_AU;

と記述することもできます。これを、スクリプト実行時に一瞬で移動するのではなく、時間をかけて移動したい場合にどうするか。現在考えている方式では、

Camera:setZoom(Linear1(0.05 * mtk.UNIT_AU, 3));

とスクリプトを実行することで、Linear(線形:一定速度)で現在位置から0.05天文単位の距離まで3秒かけて移動します。Linear1の1は、1つの要素を変化させるという意味です。Lua言語上で、実装上の色々な理由によってこのような文法になりました。ちなみに一定速度での移動(Linear)のほか、滑らかに加減速して移動(Smooth)、指定時間後にジャンプ(OneShot)などのアニメーション方法を用意しています。また、アニメーションを1回で終わらせる(ONCE)、繰り返す(LOOP)、振動させる(SWING)なども可能です。

こうしたスクリプトで視点位置や視野角、時刻などをアニメーションさせることができるようになります。これは次の、Mitaka Plus ver.1.2.0にてリリースする予定です。

さて、これ以上に複雑なアニメーションをどのように実現するか?たとえば値を複雑に変化させたり、タイミングを微調整したり、状態によってアニメーションの内容を変えたりといったケースです。これらを可能にするために、全く別のアプローチでのアニメーション定義方法を用意してみました。これが下図のタイムラインエディタです。

要するに時間軸に沿った値の変化を自由にエディットできるグラフで、これによりスプライン補間など、より細かなアニメーション定義が可能になります。また、グラフ上部にはそのタイミングで実行するスクリプト(フレームスクリプト)と、他のエリアからその時刻へとジャンプする目印となるフレームラベルも定義できるようになっています。勘の良い方はおわかりだと思いますが、これはAdobeのFlash/ActionActiptやDirector/LINGOと同じオーサリングスタイルです。タイムラインエディタをベースに、スクリプトを併用したインタラクティブコンテンツの制作が可能になります。

このタイムラインエディタは、もう少し練った上でMitaka PlusおよびUniviewに共通のアニメーション作成ツールとして実装する予定です。

 

(初めてコメントする場合、承認されるまではコメントが表示されない場合があります。)
 
 freyja  2007年10月13日 22:05

Macintosh版は更新されないのですか?

あと、タイムラインエディタですが、AfterEffectsよりの方がドームマスター制作側から考えると取り付きやすい気がするのですが。

 takahei Author Profile Page 2007年10月14日 11:20

>freyhaさん
高速化の影響はMac版にもあると思うので近日中に更新します。時間がかかっているのはフォント周りの修正と、GUIの開発環境を揃える準備(30万くらいかかる...)です。とりあえずGUIはver.1.0.0のままでリリースするかな?
映像制作の場合は、連番画像などで出力して改めてAfterEffects等に読み込むことになるので、必ずしも無理に合わせる必要はないかなと考えています。もちろんできるかぎり用語などは揃えますし、今後より練り込んで最適なインターフェースとなるよう検討したいと思います。
ご意見ありがとうございました。

« 立体投影方式の選択 | Univiewネットワーク実験 »

ページの先頭へ

開発中のつぶやきや裏話など、筆に任せて綴っています。