1. はじめに
UnityでLive2Dを使うことは容易にできるが、UnrealEngineでLive2Dをサポートしているわけでもなく、プラグインも数少ない。しかし、UnrealEngineでどうしてもLive2Dを動かしたいと考え、試行錯誤した奮闘記をここに残します。
この記事を読んだところでUnrealEngineでLive2Dを動かせるわけではないので注意
2.現在の開発環境
- UnrealEngine: ver.4.27.2
- Plugin: UE-Live2D
- Live2D Cubism SDK: Cubism 4 SDK for Native R5_1
3.UnrealEngineのバージョンについて
UnrealEngineは4.27.2を使用します。
このバージョンを使用する経緯は以下の通りです。
まず始めにUnrealEngine5.0.3を使用していましたが、2つの壁が立ちはだかりました。
1つ目の壁は下記の箇所でビルドエラー
Live2DBatchedElements.cpp
Line61: SHADER_PARAMETER(FVector2D, InMaskSize)
SHADER_PARAMETERマクロの第1引数で指定してあるFVector2Dが使用できないというビルドエラーが発生。SHADER_PARAMETER以外の適したマクロを使用するようShaderparameteMacros.hで確認したところ、見つからない。なので、FVector2DをFVector2fに変更することでビルドエラーを回避。
とりあえず、エディタを起動できたので実際にLive2Dのファイルをインポート
成功!
これで作品作れると思い、インポートしたLive2DModelをダブルクリック
・・・
・・・・・・
・・・・・・・・・
エディタが強制終了・・・
これが2つ目の壁
インポートしたLive2DModelを開かなければいいんだと思い、Widgetを作成し、Panelの中にImageを追加し、preConstructerにSetBrushFromLive2DModelMotionを使い、Live2DModelMotionファイルを指定、エディタ強制終了
エディタを再起動して、生成したWidgetをダブルクリック
・・・
・・・・・・
・・・・・・・・・
エディタが強制終了
Live2Dの公式がリンクを貼っているPluginのGithubページがこんなポンコツなわけないと思い、ここでUnrealEngine5に対応していないということに気が付きダウングレードを決行。
4.27と4.26はそこまで変わらないよね、と思い、ここで4.26を選択。
これが間違い。
GetResource()という関数をFTexture2Dが所持していないというビルドエラー
UE5ではこのようなエラーは出ていなかった。
ということは、Plugin製作者のUnrealEngine開発環境は4.27ということが判明
(そもそも書いておいてよという感想しかないが)
UnrealEngine4.27を使用することで、一つもビルドエラー出ずにエディタ起動
4.現在の壁
Live2D公式のサンプルモデルのライスグラスフィールドをインポートしたところ、↑のような結果に
- 目が表示されていない
- 前髪がおかしい
最低でもこの2つ。所持している個人のLive2Dモデルを入れても正常に表示されていない。
原因はわからず。
怪しいのはLive2D Cubism SDKのバージョン。
UE5ではNGであるならば、2022年9月15日に更新されたSDKで動作確認していない可能性があるため、少なくとも1年前のCubism 4 SDK for native R4でdllファイルを作り、動作確認をしてみるつもりです。
5.最後に
Pluginを公開してもらえるのはとてもありがたいことですが、最小限すぎるReadme。せめても動作確認した環境の記載だけはしてほしい。自分が作ったらちゃんとそこら辺を記載しておこうと思いました。
2日目は進捗があり次第書きます。
では。