DSS 2020/09/14 07:16

[ティラノスクリプト][Live2D]表示レイヤーの変更方法

ティラノスクリプトをベースにLive2Dプラグイン(Cubism3.x系)を導入する場合にモデルの表示レイヤーを変更するための方法です。
同じくティラノスクリプトとLive2Dでゲームを作ってる人がいれば使ってください。

「ティラノスクリプトfor Windowsアプリケーションv475b」と「live2d_tyrano_plugin_v304 プラグイン(2020/1/11)」の組み合わせで思惑通りに動作しました。
ただ、私もプログラミングは専門外なので、ご利用の際は自己責任でお願いします。
Live2Dの利用規約には反してないはずなので、このやり方でも怒られたりはしないと思うけど。。。

概要

ティラノスクリプト上でLive2Dを導入する場合、公式のプラグインで簡単に導入できますが、モデルの表示はレイヤー0に固定表示となります。
重なり方をカスタマイズしたい場合やゲーム制作の都合でLive2Dのモデルをレイヤー0以外に指定したい場合、以下の方法を試すことで解決できるかと思います。

利点

Live2Dのモデルをプラグイン無改造で別レイヤーに表示できるため、animタグなどでレイヤーごとの移動や配置するレイヤーを分けることで表示の管理、演出が楽にできるようになります。

やり方

※ティラノスクリプトへLive2Dプラグインの導入は済ませておいてください。
1) ティラノスクリプトのdata/othersに新しいフォルダを作り、その中に新しいjsファイルを作成する。 例)data/others/original/test.jsなど
2) テキストエディタなどでtest.jsを開き、以下のコードを追記。保存して閉じてください。

function live2dlayer(layer){
	_live2d_tyrano = {
	    "layer":layer
	};
}

3) data/scenario/first.ksに以下のタグを追記。
 必ずタイトル画面など別のksファイルにジャンプする前に実行できるところに記述してください。

; 外部JSの読み込み(./data/others/original/test.js)
[loadjs storage='original/test.js']

4) シナリオファイル中でLive2Dのモデル読み込み[live2d_new]する直前に以下の処理を挿入してください。

[iscript]
live2dlayer("表示させたいレイヤー 例:0");
[endscript]

以上の処理で任意の前景レイヤーにLive2Dモデルを表示できるようになるはずです。

補足説明

・複数のLive2Dモデルを表示する場合、標準プラグインは一つのCanvasにそれらのモデルを追加する仕様のため、別々のレイヤーに個別にモデルを配置することはできません。
・別レイヤーにLive2Dの表示を変更したい場合は一度[live2d_delete_all]でLive2Dのモデルをすべて削除してください。
・手順4の記載内容はfirst.ksなどでtest.jsを読み込んだ直後にマクロとして宣言しておくと便利だと思います。その場合は以下を記載してください。

[macro name="マクロの名前(例:l2dLayer)"]
[iscript]
live2dlayer(mp.layer);
[endscript]
[endmacro]

以降は[l2dLayer layer="1"]と記載すれば前景レイヤー1にモデルが表示されます。


てか、ぶっちゃけlive2dtyrano.jsの64行目あたりでpmにlayerパラメータ追加して、84行目のvar layer = _live2d_tyrano.layer;の前で指定があれば_live2d_tyrano.layerを書き換えればダイレクトに[live2d_new]にlayerパラメータ指定できるのに何で公式やらないのかなぁ?何か問題あるんだろうか??あれかな、モデルごとには別々のレイヤーが設定できないから、導入してないとか?う~ん。。。


z-indexを試して上手くいかないと困っている方は無料プランにその原因と上記手法を導入した経緯を記載しました。
知りたい人だけどうぞ。(読む必要性はあまりないと思いますが。)

フォロワー以上限定無料

どなたでも無料で支援が出来ます。

無料

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索