こんにちは。オインクゲームズのデザイナーの新藤です。MUJO では UI やエフェクトの実装、モーションデザインを担当しました。
MUJO のようなタイトルを作る際には、プログラマティックにアニメーションを制御する技術が必要不可欠です。なぜかといえば、ゲームの状況に応じて変化する部分が大きいからですね。例えば現在のスタック数によって、スタック時に飛び散るタイルの数が変わったり、大きさによって速度やスケールが変わったり、あるいはモーションが単調にならないように揺らぎやディレイを入れてみたり…。
このようなことを実現するために、MUJO では「トゥイーン」を使用して、全てスクリプト制御でモーションを作成していました。トゥィーンとは、簡単に言えば「何秒であそこまで移動する」と命令しておけばあとはよしなにやってくれる技術のことです。個人的には、それに加えてイージングが重要です。イージングとは、その動きの緩急の度合いを指定するものです。加速するような動きなのか、減速するような動きなのか…とかそういったことです。
MUJO では NGUI のトゥイーンを改造して使ってましたが、かの有名なペナーイージングすら無い状態なので使い勝手はイマイチでした。そこで今回、満を持してオインクゲームズ製のトゥイーンライブラリ Uween を公開します!
Uween のコンセプトは、とにかくシンプルであることです。機能性重視のライブラリに比べたらもちろん見劣りしますが、骨格の強さと小回りの良さを重視しています。使い方は超簡単で、
TweenX.Add(gameObject, 0.5f, 100f);
これだけで gameObject
が 0.5 秒で X 座標 100 の位置まで移動します。
また、Fluent Syntax でいい感じにパラメータが設定できます。
TweenX.Add(gameObject, 0.5f, 100f).From(50f).Delay(0.25f).Then(next_motion);
上の例だと、gameObject
が 0.5 秒で X 座標 100 の位置まで移動するのに加えて、初期値を X 座標 50 に設定し、0.25 秒のディレイを挟み、終わったら next_motion
関数を呼び出します。
ね?簡単でしょう?
通常の 3D シーンだけでなく、Unity 4.6 の uGUI でも問題なく使える設計になっています。詳しい使い方はこちらから。ぜひ使ってみてください!