きっポグ

- kitposition's weblog -

【Unity】「ユニティちゃんでドラゴンボールっぽいやつ」をCinema Directorで作ってみた~その1~

 Cinema Directorは、Unityのエディタ上でカメラの動きその他をビジュアル的に制御し、コードを書くことなくカットシーンを作成できるアセットです。定価が60ドルとやや高いのと、Unity5.5以降でカットシーン作成機能が標準搭載されることが既にアナウンスされていたため、購入を迷っていました。
 が、ふと気づくと、サマーセールと銘打って半額の30ドルになっている(執筆現在継続中)!思わずポチってしまいました。

Cinema Director - Cinema Suite Inc

f:id:kitposition:20160828212633p:plain

 本当は先日のアセットストア花火大会の動画の時に使えていればよかったのですが、実はもう一つ、「何となくドラゴンボールっぽいバトルシーンをUnityで作ってみたい!」と前から思っていたので、試用を兼ねて挑戦してみることにしました。

 なお、このCinema Directorを含めた4つの動画系アセットをセットにしたThe Cinema Suiteという商品もあり、こちらも通常129ドルのところ執筆現在半額の65ドルです。資金に余裕のある方はこっちを買ってもいいかも。

Cinema Directorで何ができる?

 ゲーム制作においてカットシーンとは、「シーン内のカメラポジションを切り替えることによって作られる一区切りの場面」というような意味です。全てのゲームに必須、というものではありませんが、例えば格闘ゲームでの勝利シーンや必殺技発動などの際に挿入されると、ゲームをより印象深くする演出として効果を発揮します。

 この定義からして、カットシーン制作ツールを名乗るには最低限、

「複数のカメラのオン・オフや位置を自在に制御できる」

という機能が必須ですが、これだけならコードを書くのは多分難しくありません。私のようにコードカクノメンドクサイマンの方も、Animation機能やiTweenなどのアセットを使えば難しくないでしょう。

 しかし、より凝ったカットシーンを作ろうとするとカメラの位置を制御するだけではなく、カメラのプロパティやそれ以外のオブジェクト、例えばキャラクターのモーションやライトやパーティクルやUIなど、要するにシーン内のあらゆるものを制御したくなります。個々のことはやはりコードを書けば可能ですが、特に今回のような動画制作の場合はこれら全体が時間軸上でタイミングを合わせて動作し、かつ納得行くまで簡単に調整できる必要があり、そうなると私のようなヘボスキルではお手上げです。

 Cinema Directorは、そういった様々なオブジェクトをドカッとタイムライン上にぶちまけて、並べて動かして全部制御しちゃおう、というアセットです!

Cinema Directorのタイムラインを紹介!

 本アセットの詳細な操作方法等は、ネット上にテキストや動画が多数存在します。公式のマニュアルも、英語なのと説明がくどくて少しイライラしますがまあ丁寧です。
 詳細はそういったサイトをご覧いただくとして、本記事では今回の動画(まだ作りかけですが)と現時点でのタイムライン(TL)をご紹介します。

まず動画はこちら。

そしてこれが上の動画のCinema DirectorのTLです。

f:id:kitposition:20160828211913p:plain

 では簡単に説明です。(文中の1~3は図中の番号と対応)

1 Director Group

 シーン全体に関わること、主にカメラの切替を行います。上図ではShot Trackというカメラ専用のトラック(TLの1行)に5つのカメラが存在していて、時間経過とともに切り替わります。
 その下のGrobal Trackにはカメラ以外の制御オブジェクトを配置できます。図では前半部分で、フェードアウト・インを実現するオブジェクト(初めからついてる)をカメラの切れ目に配置しています。

2Character Track Group

 キャラクターを制御するトラックです。主にメカニムのパラメーターを任意の時点で書き換える(要するにSetBoolとかあれ)こと*1で、好きなタイミングでアニメーションさせることができます。いくらカメラが切り替わってもキャラクターがそれに合わせて演技してくれないことにはどうにもならないので、この機能は極めて重要です。パラメーター以外にレイヤーのウェイト変更とか結構小技も効くようです。
 今回は使っていませんが、その他キャラクターの会話の制御もできます。

3 Actor Track Group

 シーン内のほぼあらゆるオブジェクトを制御します。前述のカメラやキャラクターについても、シーン内の位置を動かしたりはこちらで行います。
 図では上から、

  • シーン全体を映すカメラの移動
  • ユニティちゃんを映すカメラの移動
  • 同カメラのField of View*2の制御
  • 同カメラのMotion Blur*3のオン・オフの制御
  • ミサキチを映すカメラの移動
  • 2人のバトルを映すカメラの移動
  • ユニティちゃんの位置移動
  • ミサキチの位置移動
  • バトル中の背景の流線効果を実現するパーティクルの再生

 といった具合です。このように、単純な位置移動のほか様々なオブジェクトのプロパティも、カーブとマーカーの打ち込みで制御できます。
 他にもuGUIなどももちろん扱えるほか、自作のコンポーネントなど標準で制御しようのないものも「任意の時点でSendMessage()を発行する」ことが可能なので大抵のものは何とかなります。

 今回用いたのは以上ですが、このほかBGMなどを制御するAudio Track Group、複数のゲームオブジェクトを一括制御できるMultiActor Track Groupがあります。

まとめ

 まだ使いはじめたばかりなので何とも言えませんが、現時点での感想です。

良かった点
  • とにかくシーン内の全てのものを1つのTL上で制御できるのは素晴らしいです。最初にも書きましたが個々のものはアセットなりコードなりで何とかなっても、協調動作させるのは難しいので。
  • 人気アセットの例にもれずネット上の情報が豊富です。
注意点・イマイチな点
  • 今回紹介した通り、15秒程度の動画でもかなりのオブジェクトをTL上に展開する必要があります。できればマルチディプレイにして1面はTLを全面に表示させたほうがいいでしょう。*4
  • 単に私の操作ミスの可能性も高いですが、肝心のTL上のカーブの操作がどうもやりにくいというか、カメラを操作したらいつのまにかキャラクターも動いている、といった割と致命的なことがちょくちょく起きました。
  • 個人の好みですが、オブジェクトの動きの制御はTLのカーブよりも、iTween Visual Editorのようにシーン内でベジエ曲線などで直接パスを描画する方が直感的でいいと感じました。他のカットシーン作成アセットではそういった機能を実装しているものもあるのですが…

 以上で今回は終わりです。記事のタイトルに「その1」とつけましたが、動画はまだ作成途中なので、もし今後の作業で新たな機能や知見が得られたら次のエントリで紹介するかもしれません。あるいは、Cinema Directorとは別に動画自体に使った小技や演出のこだわりポイントも書くかもしれませんが、完成してみて書くほどの価値がなければやめます。ということで期待しないでお待ちください!

*1:Cinema Directorはレガシーアニメーションには対応していないようで、キャラクターのアニメーションはメカニムで組む必要があります。

*2:FoV:カメラの視野の広さのことです。個人的にはカメラの移動と同じくらい重要です。

*3:Standard Assetに含まれ、カメラに様々な視覚効果を付加するImage Effectsの1つで、視界内に動く物体があった場合に“ブレ”を生み出します。動画ではユニティちゃんがカメラに向かって突進していくシーンで使用していますが、その他のシーンまでブレると困るのでその時だけオンにしています。

*4:私は物置に眠っていたWindows XP時代のアナログディスプレイがまだ稼働したのでサブに使っています。