はじめに
こんにちは、株式会社 Live2Dにて Cubism SDKの開発に携わっている田中です。
今回は、Unity 2021.2から利用できる「Sequences」という機能を使った映像制作の方法について解説していきます。
前回は Unityの概要やアカウント作成から詳しく解説した Unity入門記事「知識0からのUnity入門 with Live2D Cubism SDK」を書きましたが、今回は Unityのアニメーションシステムやゲームオブジェクト等の基礎知識がある方に向けた内容となっています。
今回はコーディングの必要はありません。
デザイナーの方でもアニメーション作品を作りたい場合にオススメの手法となっています。
今回の記事内容がエンジニアの方とデザイナーの方が共同で何かを作る橋掛かりとなることを願い、執筆させていただきます。
今回は Live2Dモデルを使って説明をしますが、3Dアニメーション作品を作る場合でもほぼ手順に代わりはありませんのでぜひご一読ください。
Unity公式の Youtubeでも Sequencesの基本的な機能について解説されていますので、この記事と併用してご確認いただければより分かりやすくなると思います。
Unity2021.2で映像制作 手順を確認しよう
環境情報
今回の筆者の開発環境は以下の通りです。
Windows 10 Pro (22H2)
Unity Hub 3.3.0
Unity 2021.3.8f1
今回使うパッケージ
以下の二つのパッケージを事前にプロジェクトへインポートしておいてください。
Cinemathic Studio
これは、「Timeline」「Sequences」「FBX Exporter」「Alembic」「Cinemachine」「Recorder」の6つのパッケージが1つとなったものです。
まさに映像制作のためのパッケージと言えるでしょう。
今回この中で実際に使うのは「Timeline」「Sequences」「Cinemachine」「Recorder」の4つとなります。
各パッケージのバージョンは以下の通りです。
パッケージ名 | バージョン |
---|---|
Timeline | 1.6.4 |
Sequences | 1.0.4 |
FBX Exporter | 4.1.2 |
Alembic | 2.2.2 |
Cinemachine | 2.8.6 |
Recorder | 3.0.3 |
Cubism SDK for Unity
以下のリンクからダウンロードしプロジェクトにインポートしてください。
今回は Cubism SDK for Unity R5を利用します。
https://www.live2d.com/download/cubism-sdk/download-unity/
Sequences機能とは
まずは簡単に「Unity2021.2以前よりあったタイムライン機能を強化した・置き換えたもの」と考えてください。
Sequences機能は、まず Master Sequenceを作り、その中でいくつかの Sequenceを子要素として入れることで機能します。
Sequences機能の一番の特長は、この Sequenceごとに利用するアセットやカメラ、ライティングを管理することが出来るという点です。
Sequenceとはすなわち映像作品で言う「カット」や「場面」であり、これらの管理・制作をタイムライン機能よりも行いやすく改良した機能と言えます。
Sequences機能の使い方
Master Sequenceを作る
Master Sequenceとは、主に Sequenceの親要素として利用される Sequenceです。
もちろん Master Sequence単体でも後述の Sequenceとしての機能を利用することが出来ます。
基本的にはシーンにつき、一つ作成で問題ありません。
作成するには任意のシーンで Hierarchyウィンドウを右クリックし、「Sequences/Master Sequence」をクリックします。
すると、シーンヒエラルキー上に Master Sequenceオブジェクトが現れるので任意の名前を付けてください。
ウィンドウを配置する
Master Sequenceを作り終わったら次は必要なウィンドウを配置します。
メニューバーの「Window」から「Timeline」「Sequences」「Sequence Assembly」をそれぞれ配置します。
Sequenceの作成とアセットの追加
ウィンドウを配置し終わると Sequencesウィンドウに Master Sequenceが配置されていることが確認できます。
そちらを右クリックし、「Create Sequence」を選択して、Master Sequence以下に Sequenceを作成してください。
Sequencesウィンドウの Master Sequenceを選択すると Timelineウィンドウに先ほどの Sequenceが配置されています。
これで Master Sequenceの初期設定は完了です。
続いて、Sequenceで使うAssetの作成を行っていきます。
Sequencesウィンドウの Asset Collectionsの「Character」を右クリックし、「Create Sequence Asset」を選択します。
すると、Asset Collectionsにプレハブが生成されます。
Sequences機能では原則としてここに生成したプレハブ内に Assetを配置し、Sequence Assemblyを使って Sequenceに配置します。
「Create Sequence Asset」で生成したプレハブを使わなくても大丈夫ですが、正しく動かすには手動で設定が別で必要になります。
「Create Sequence Asset」では Sequence Assetとして使うために必要な設定を勝手にやってくれるので、使わない手はありません。
さて、Sequence Assemblyを使って Sequenceに配置する前に、今作ったプレハブ(画像内の「CharacterAsset」)を開いて、その中に既存のアセットを配置します。
これを行うことで、既存のアセットを Sequence Assetの一部として呼び出すことが出来ます。
「CharacterAsset」を開いたら、ここで Live2D Cubism SDKの出番です。
事前にインポート済みの Cubism SDKで生成された以下のフォルダを開きます。
Asset/Live2D/Cubism/Samples/Models
その中から今回は「Mao」を選択してください。
Maoフォルダを開いたら、中にあるプレハブを CharacterAssetゲームオブジェクトの直下に入れてください。
階層はこのようになります。
完了したら、先ほど作成した Sequenceを開いてください。
すると、Seaquence Assemblyウィンドウの Nameが作成された Sequenceのものになり、次の画像のような表示になります。
基本的にはこちらで Sequence Assetを管理します。
Seaquence Assemblyウィンドウの Characterのプラスボタンを押して、先ほど作成したCharacterAssetを選択してください。
すると、CharacterAssetが追加され、Timelineにもトラックとして表示されるようになります。
この状態で Hierarchyウィンドウを見ると Seaquence Assemblyウィンドウで登録した CharacterAssetとその中身(今回は Maoモデル)がシーンに登録されています。
ここで一度シーンを再生する必要があります。
これは Cubism SDK for Unityの都合なのですが、Unityでモデルを描画するときに一度Unity側の描画更新が入る必要があります。
その更新を入れるために、再生を行うのが一番簡単で早いです。
一度再生すると再生を停止した後でもシーン上でモデルが描画されます。
SequenceでLive2Dモデルをアニメーションさせる
次に Sequenceを利用してアニメーションを再生させます。
まずは Seaquenceに先ほど置いた Character(大元の方です。CharacterAssetではないので注意してください)に「+」マークがあります。
そちらの「Animation Track」を選択してください。
すると、次のようなトラックが追加されます。
このトラックの Animatorをアタッチする場所で「Scene」タブから Maoモデルを選択してください。
これでこの Animation Trackは Maoモデル専用にアニメーションを割り当てることが出来ます。
準備が出来ましたら、この節の最初で紹介したアニメーションクリップを Animation Trackに組み込みます。
今回は、Maoモデルに付属している「special_01」モーションを利用します。
今回行う手順では特に気にする必要はありませんが、場所は以下のフォルダ内です。
Asset/Live2D/Cubism/Samples/Models/Mao/motions
まずは Animation Trackの Timeline上で右クリックしてください。
すると、次のようなコンテキストメニューが出てきますので「Add From Animation Clip」を選択します。
今回使用する「special_01」アニメーションクリップは出てきたウィンドウの下の方にあります。
上手く読み込めるとタイムラインは次のような表示になります。
このままだとモデルの表示やアニメーションが途中で途切れてしまうので、長さを調整します。
まずは Character Assetの長さを調整してください。
その状態で Master Sequenceを選択します。
すると、以下のような表示になっているはずです。
シーケンスバー(白い線の箇所)まで Sequenceを伸ばし、以下のような状態にします。
あらためて Sequenceを開くと、Timeline上部の水色の線が CharacterAssetと同じ長さまで伸びています。
これはすなわち CharacterAsssetの表示時間と同じだけの長さ、Sequenceが表示されることになります。
最後にカメラを調整します。
インスペクタ上から直接設定してもいいのですが、せっかくなので Sequence(Timeline)の機能を使います。
まずやることは CharacterAssetとほぼ同じです。
Asset Collectionから Photographyを見つけ、「Create Sequence Asset」を行います。
出来上がった PhotographyAssetを開き、右クリックのコンテキストメニューから Cinemachine/Virtual Cameraを選択して追加します。
追加した後シーンに戻ると、Main Cameraに自動的に CinemachineBrainコンポーネントが付いています。
ちょうどいいので、ここでMain Cameraの設定をひとつだけ行います。
MainCameraの Cameraコンポーネントにある Projectionを「Orthographic」に設定してください。
画面の映る範囲を設定する「size」に関してはまた別のところで設定しますので、今は触れなくても問題ありません。
Seaquence Assemblyウィンドウの Photographyの「+」を押して作成した PhotographyAssetを Sequenceに追加します。
次に操作するために Cinemachine Trackを追加します。
Photography(PhotographyAssetではない)に「+」マークがありますので、そこをクリックしてください。
Cinemachine Trackには Cinemachine Brainを登録する必要があります。
これは先ほど Main Cameraに自動的に設定されたコンポーネントと同じものなので、今回は Main Cameraをここに適用します。
Cinemachine Brainを設定し終えたら、次に Cinemachine Trackの Timeline上で右クリックしてください。
その後、出てきたコンテキストメニュー内の「Add From Cinemachine Virtual Camera Base」を選択します。
先ほど作成した Virtual Cameraである CM vcam1の長さを Timeline上で揃えます。
完了したら、CM vcam1を選択して Gameウィンドウのプレビューを見ながら「Lens Ortho Size」を任意の値に設定してください。
これはモデルが見やすい位置に来るように設定するだけです。
筆者は0.7に設定しました。必要に応じて「Transform」も設定してください。
この状態で再生すると、Maoモデルがアニメーションを行う様子が見れると思います。
再生せずタイムラインでシーケンスバーを動かしても、アニメーションを行うモデルの様子が確認出来ます。
基本的な Sequenceシステムの使い方はこれで完了です。
しかし、Sequenceシステムはアニメなどで言う「カット」のような仕組みなので、本来は次のように使います。
複数の Sequenceを扱う
まずは Master Sequenceを選択します。
Timelineが次のような状態になってるかと思います。
その後、Sequencesウィンドウの Master Sequenceを右クリックし、「Create Sequence」を押して、2つ目の Sequenceを作成します。
すると、Master Sequenceを選択したときの Timelineウィンドウが次のようになっています。
Sequence01から Sequence02に行く場合、Sequence01で利用していたオブジェクトは非表示になります。
原則として Sequenceに登録したオブジェクトを他の Sequenceで使いまわすことは出来ません。
例えば、Maoモデルを Sequence02に置いた場合は新たなオブジェクトとして登録することになります。
今回は再生時に Sequenceが切り替わったことが分かりやすいように Sequence02には Maoモデルとは別のLive2Dモデル「Rice」を設置し、アニメーションを再生してみます。
Sequence02で作業するということ以外は「SequenceでLive2Dモデルをアニメーションさせる」と同じような内容ですので省略します。
作業後の Sequence02の Timelineは次のようになります。
実際の画面はこんな感じです。
実際に再生したときの動作と Master Sequenceの Timelineは次の画像のようになります。
TIPS: カメラを切り替えることなく移動させる
瞬間的なカメラの切り替えは Sequence自体の切り替えなどを使うことで簡単に行わせることが出来ますが、1つの Sequence内でカメラの移動を行いたい場合の方法も行ってみます。
今回は先ほど利用した Sequence01を流用します。Sequence02はMaster Sequenceから削除して問題ありません。
まずは1つの Sequenceに2つの Cinemachine VirtualCameraを用意します。
PhotographyAssetの中に2つのカメラを用意すると楽です。
そして、Sequence01の中に 今作った Virtual Cameraを追加して、長さを調整します。
この状態では瞬間的にカメラが切り替わる状態になります。
Assetを変えずに Sequenceを複数利用した時のような演出をしたい場合にこの手法は有効です。
カメラを切り替えるような見せ方ではなく移動させたい場合は次のような手法で行います。
まず、移動開始のカメラ位置を「CM vcam1」に設定します。
今回はカメラを左寄りにしてみます。
次に、移動終了時のカメラ位置を「CM vcam1_2」に設定します。
今回はカメラを右寄りにしてみます。
これでカメラの位置設定は完了です。
続いて、ブレンドの設定を行います。
CM vcam1と CM vcam1_2の間を重ねるようにすることで簡単にブレンドを行うことが出来ます。
CM vcam1か CM vcam1_2をもう一方に重なる位置に移動させるか、下のGIFのように端を引っ張り、重ねることでも可能です。
この時の実際の画面は次のようになります。
ブレンドの時間と開始位置・終了位置を変えずにカメラワークの挙動を変更したい場合、Virtual CameraのBlend Curvesを動かすことで実現することが出来ます。
デフォルトでは Autoになっているので、Manualにしてから調整を行います。
Manualにするとグラフ部分がクリックできるようになります。
クリックすると Curve Editorが開かれるので、自分の理想の動きになるように編集することが出来ます。
あとがき
ここまで読んでいただきありがとうございました。
今回は筆者が個人的に気になっていた機能を弊社の Live2Dと絡めて、映像制作の手法としてご紹介しました。
この解説が Unityでの映像制作やゲーム制作の助けになれば幸いです。
Unityの映像表現機能と組み合わせてぜひ挑戦してみてください。
お疲れ様でした、良き Unity ライフを!
関連リンク
知識0からのUnity入門 with Live2D Cubism SDK
https://qiita.com/live2d_dev/items/cd3309b5a807078964f4
Unity2021.2で映像制作 手順を確認しよう
https://youtu.be/74VblliIzfQ
株式会社 Live2D
https://www.live2d.jp/
Live2D 開発公式Twitter
https://twitter.com/live2d_dev
Cubism SDK for Unity
https://www.live2d.com/download/cubism-sdk/download-unity/