ガレージ暮らしのトライタム

プログラムやツールの解説や技術を公開する場所

Cubism3SDKUnity内に含まれるサンプルの簡易説明

Cubism3SDKUnityにはR8時点で9つのサンプルが同梱されています。
シーンを再生すればすぐにフィードバックがあるサンプルから、コードを変更する必要のあるサンプルがあったりと色々なので簡素に内容をまとめようかな。という記事です。

Cubism3SDKUnityに同梱されているサンプル(バージョンR8時点)

f:id:traitam:20180728155953p:plain

R8時点では上記画像のように9つサンプルが同梱されています。
すぐに何をやってるのか分かりやすいのがAnimation、AsyncBenchmark、LookAt、Raycastingの4つだと思います。
この4つはシーンを開いて再生すれば、何をすればよいのか、何が行われているのか端的に分かりやすいと思います。

ほかの5つはソースコードを変更したり、エディタ上で変更を行うことで変化が得られる、Unityを触っている人向けのものになっています。
おそらく、全くUnityを触ったことが無く、かつCubism3SDK初挑戦だと、この5つのサンプルを弄っても“何のためのサンプルなの?”と首を傾げる可能性があります。

“とりあえず動くものを見てみたい”という方は、先に挙げた4つのサンプルのいずれかを閲覧すると良いかもしれません。
以下は各サンプルの概要です。

Animation

f:id:traitam:20180728155806p:plain

シーンを再生するとキャラクター(こはるちゃん)がアニメーションしてくれます。
可愛いですね。

AsyncBenchmark

f:id:traitam:20180728160627p:plain

ボタンを操作することでベンチマークを行うことが出来ます。
また、HierachyにあるSpawnerをクリックし、[ModelSpawner]->[Model Prefab]を変更することで表示するモデルを変更することが出来ます。

ほんの少し追加解説

Asyncと銘打たれている通り、Asyncで非同期処理を行って表示しています。
Unityで広く使われているコルーチンではメインスレッドを活用して非同期処理を実現していますが、Asyncの方は実際にスレッドを分けて処理しています。

Editor

このフォルダに説明テキストとImportCustomization.csの2つのみとなっています。
ImportCustomizationはモデルをインポートした際、モデルに独自変更を行う機能が書かれています。いわばモデルインポートにおける拡張機能のサンプルです。
使用の際は33行目の、コメントを外します。
f:id:traitam:20180728161541p:plain

コメントを外した後にモデルをインポートするとモデルが緑がかってインポートされるようになります。
右のモデルはコメントを外した後に、モデルをインポートした例です。(自動的にモデルはインポートされないので手動で行う必要があります)
f:id:traitam:20180728162126p:plain

もし、ロードタイミングが分かりにくい場合は36行目の下にDebug.Logで読み込まれたことを確認すると良いと思います。
注意:コメントを外した部分は確認が終われば、再度コメントアウトするようにしましょう。以降のモデルインポートで全てのモデルが緑色になります。

LookAt

f:id:traitam:20180728162504p:plain

キャラクターがLive2Dのロゴを見つめ続けるサンプルシーンです。
実際にこのように実装したい場合は以下の公式記事をご覧ください。
視線追従の設定 | Live2D Manuals & Tutorials

Masking

MaskTextureは原則共有されているから、もし独自に作りたい場合はMaskTexturePreviewから変更を行うと独自の変更が出来るよ。
…というサンプルシーンなのですが、イマイチ変更が上手く行きませんでした。

すいません、よく分からないので変化が見れる画像もありません。

Models

Maskingで使われているモデルと、サンプルシーン全般に使われているモデルが含まれています。
特にサンプルシーンも特別追加されたスクリプトなどは、ありません。

MultipleModels

f:id:traitam:20180728163126p:plain
f:id:traitam:20180728163130p:plain
複数モデルが存在するときにモデルの描画順についてのサンプルシーンとなっています。

基本状態ではキャラクターが前になっていますが、HierarchyのClippingを選択し
[Cubism Render Controller]->[Sorting]->[Order In Layer]の数値を変更することで描画順を変更することが出来ます。
例としてはCrippingモデルの方を“2”にすることで前面に来るようになります。
キャラクター(Koharu)と同じ数値である“1”を選択すると2つが混ざったような見た目になります。これは期待されない処理なのでそうならないように気を付けましょう。

PerspectiveCamera

f:id:traitam:20180728164052p:plain
f:id:traitam:20180728164049p:plain
Live2DではCamera設定はorthographic(Unity 2Dモードの標準設定)で活用されることが原則となっています。
しかしperspective(3Dモードの標準設定)で活用したい人に向けたサンプルになっています。

Live2Dモデルをperspective上で正しく描画させるには[Cubism Render Controller]->[Sorting]->[Mode]を[Back To Front Order]に変更する必要があります。
このサンプルシーンで[Back To Front Z]に変更すると描画が乱れることが確認できると思います。
ちなみにカメラ設定は[Camera]->[Projection]から確認することができます。

RayCasting

f:id:traitam:20180728164209p:plain

マウスでクリックした時に、マウス上にあったものを一覧で表示するサンプルです。
専門的に言うと、マウスクリック時にレイを射出し、レイにヒットしたDrawablesの一覧を表示するサンプルです。

おわりに

これでR8時点で含まれているサンプルの紹介は終わりです。
サンプルの詳細をもっと知りたい、という方は公式SDKチュートリアルへアクセスすれば大体は乗っていると思います。
TOP | Live2D Manuals & Tutorials

半分はUnity経験者向けのサンプルなので、割とハードルが高いサンプルですがこの記事がヒントになると嬉しいです。
それではみなさん、楽しい創作ライフを!