タイトル画面に2Dプレハブを表示したいです。

101 views
Skip to first unread message

nunu

unread,
Dec 25, 2019, 3:41:41 AM12/25/19
to 宴ユーザーグループ
Unityの習熟度:基本操作ができる程度(C#はわかりません)
宴のバージョン:3.7.6
UnityのバージョンとOS:unity2018.3.10f1 windows10
(補足)Live2D習熟度:mecanimとLive2D拡張を用いたADVパートでの操作は習得済


始めまして。お世話になります。
掲題の通りですが、『タイトル画面にLive2Dやパーティクルなどの2Dプレハブを表示したい』と考えております。

習熟度の補足ですが、Hierarchyの「title」にゲームオブジェクトを増やして、画像やテキストを追加表示することはできました。
しかし、プレハブをHierarchyに入れるだけでは表示されなかったので、何か別の方法を用いる必要があるのだろうと思っています。

宴のマニュアルには『UI画面など、宴のシナリオの外でもLive2Dを表示する場合はLive2DのUnity拡張のやり方に従って設定してください。』とあるのは承知しているのですが……
Live2DのUnitySDKマニュアルも充実しているとは言い難く、初歩的な情報しか入手できず手詰まりの状態です。

お手数をおかけし大変申し訳ないのですが、ちょっとしたヒントでも良いのでご教示いただけないでしょうか?
何卒よろしくお願いいたします。

マッドネスラボ

unread,
Dec 25, 2019, 1:02:38 PM12/25/19
to utag...@googlegroups.com
Live2Dのオブジェクトの作り方次第だとは思うのですが、
レイヤー設定を「Default」から「UI」に変えて、描画順を手前にするために、OrderInLayerを10~100など大きい値にするのがよいかと。
また、Scaleの値もCanvasの下に置くのであれば、100にしておかないと正常に描画されないと思います。

ss_0789.png



Live2Dのドキュメントとしてはこの辺かと思います。
Live2DをUnityのUIに表示するための使い方だけの問題だと思いますので正式にはLive2Dに問い合わせてください。



補足

Unityは基本的には「カメラに映ったもの」を描画するようになっています。
逆に言うと、描画されていないということはカメラに映っていないことになります。

ありがちな原因としては
・レイヤー設定がカメラの描画対象になっていない
・位置がカメラの描画範囲外になっている
・Scaleの値が小さすぎて見えなくなっている
・カメラには描画してはいるが、UI背景などに隠れてしまって画面に映っていない
ということが考えられます。


宴のテンプレートで作成した場合は、
SpriteCameraとUI Cameraという二つのカメラを使っています。

ss_0786.png



SpriteCameraはキャラクターなどを描画するカメラで「Default」というレイヤーのオブジェクトを描画します。
(基本的にはレイヤーは、各オブジェクトの右上に設定欄がありますが、Live2Dの場合は上記のCubismRenderControllerを使う必要があるかもしれません

ss_0787.png



ss_0788.png



UICameraはUIを表示するカメラです。
UIなので、映ったものは上記の「SpriteCamera」よりも手前に描かれます。
タイトル画面もそうですが、UI背景で全画面を塗りつぶしている場合は、SpriteCameraで描画したものは塗りつぶされ見えなくなってしまいます。


なので、Live2DのモデルをUI画面に表示するためには、レイヤー設定を「UI」にして、描画順はOrderInLayerで調整するということが必要です。



nunu

unread,
Dec 26, 2019, 12:45:36 AM12/26/19
to 宴ユーザーグループ
お世話になっております。
早速のご回答、誠にありがとうございます!

お教えいただいた通り、レイヤー設定などを変更することで、Live2Dを表示することができました。
補足も含め、とてもわかりやすいご説明をいただき大変助かりました。

厚かましいお願いをしたにも関わらず、丁寧にご対応いただき頭が下がるばかりです。
(それと、遅くまで開発等お疲れ様です……!)
いちユーザーとして、これからも応援しております。
Reply all
Reply to author
Forward
0 new messages