ランタイムでモデルを読み込む

[最終更新日:2019/01/31]

ここでは、スクリプトからモデルを初期化し、表示する方法の説明を行います。

概要

2.1ではInit,loadModel,setTextureを用いてモデルの初期化・モデルのロード・テクスチャの設定を行っていました。
3.0ではLoadAtPath,ToModelを使えば、モデルの初期化・モデルのロード・テクスチャの設定に加え、更新・描画が行えるようになりました。
方法としては、はじめにパスからモデルを読み込むためのスクリプトを作ります。
そして、読み込んだモデルはToModel()を使い、モデルを表示させます。
今回はStreamingAssetsから読み込むようにスクリプトを記述しています。

詳細

2.1まではLive2D.Init()でLive2Dを初期化後、Live2DUnity.loadModelでモデルのロードを行っていました。

その後、以下のような形でテクスチャを設定し、ALive2DModel.update() や ALive2DModel.draw()  でモデルの更新、描画が行われていました。

3.0では処理が一新され、CusbimModel3Json.LoadAtPathを用いモデルを読み込んだ後、.ToModel()を呼び出せばモデルが表示されます。
またPrefabを作成して表示を行い、スクリプト上から.update().draw()の更新描画を記述しなくても描画更新されるようになっています。

 

では実際に、3.0SDKを用いてモデルを初期化・表示したいと思います。

まず、モデルをパスから読み込むためのスクリプトを作成します。
新規C#スクリプトを作成し、名称を“InitModel.cs”とします。

InitModel.csを以下のように記述します。

Hierarchyウィンドウ内を右クリック後、“Create Empty”をクリックし空のGame Objectを作成します。
その後、作ったGame ObjectにInitModel.csをアタッチします。

次に読み込むためのモデルをAssetsフォルダに追加します。
今回はStreamingAssetsから読み込むようにしているので、Assetsフォルダを選択し、Projectウィンドウを右クリック後、新規フォルダを作成します。
新規フォルダの名称は“StreamingAssets”と変更します。
StreamingAssetsに関しては、Unity - マニュアル:ストリーミングアセットをご覧ください。

StreamingAssetsにモデルを画像のように追加します。

最後に、Unityのプレイボタンを押し、モデルが表示されれば完了です。
これでモデルの初期化・表示をスクリプト上から行えるようになりました。

また、ToModel()を用いた実例があります。
以下にリンクがありますので、ぜひあわせてご覧ください。

[Live2D GitHub]CubismModel3Json.cs
https://github.com/Live2D/CubismUnityComponents/blob/develop/Assets/Live2D/Cubism/Editor/Importers/CubismModel3JsonImporter.cs
ここでは、AssetImporterでインポートイベントをフックにToModelでモデルのGameObjectを生成しています。

[Live2D GitHub]CubismViewer.cs
https://github.com/Live2D/CubismViewer/blob/develop/Assets/Live2D/Cubism/Viewer/CubismViewer.cs
ここでは、絶対パスからモデルファイルを読み込んだ後、ToModelでモデルを生成しています。

 

Original Workflow方式について

[2019/01/31 追記]
.ToModel()で作成するPrefabをOriginal Workflow方式にする場合、CubismModel3Json.ToModel()の引数にtrueを渡します。

Copyright © 2018 Live2D Inc.