2Dプレハブはメッセージウインドウ上に表示できますか?

196 views
Skip to first unread message

pureworks official

unread,
Jul 8, 2022, 9:38:55 AM7/8/22
to 宴ユーザーグループ
こんにちは。
2Dプレハブはメッセージウインドウ上に表示できますか?

layerに大きな数値を書き込んでも、
メッセージウィンドウの上には表示されないようだ。

解決していただけるとありがたいです。
よろしくお願いします。

マッドネスラボ

unread,
Jul 8, 2022, 6:22:49 PM7/8/22
to 宴ユーザーグループ
UIの手前に表示する場合は、Layerシートのレイヤー設定でLayerMaskのほうを設定し、Orderも200など大きな値にしてください。


ss_0348.png


宴のUIはUiCameraというカメラで描画しています。
UiCameraのCullingMaslと同じLayerMaskを設定すると、そのレイヤーはUICameraで描画されるようになります。
ss_0349.png


追記)
注意点として、描画するカメラ自体が変わるため、
ImageEffectなどのカメラを対象としたコマンドも影響を受けます。
ほとんどの場合は問題ないと思うのですが、
もしUiCameraを対象としたコマンドの影響を受けさせたくない場合は、
UiCameraをコピーするなどして、さらにUIの手前を表示するカメラをもう一つ作るなどする必要があります。
もし、この作業の詳細が必要であれば、言ってください。手順をまとめます。





2022年7月8日金曜日 22:38:55 UTC+9 159516...@gmail.com:

pureworks official

unread,
Jul 8, 2022, 10:26:50 PM7/8/22
to 宴ユーザーグループ
こんにちは。上の方法を試して、
layerのOrderを200に、LayermaskをUIに変更しました。

しかし、2dプレハブは、 メッセージウインドウ  の下に表示されたままである。

UICameraのCullingMaskの値はUIです。

ご確認ください。

よろしくお願いします。

マッドネスラボ

unread,
Jul 9, 2022, 11:25:18 AM7/9/22
to 宴ユーザーグループ
すみません。
2Dプレハブを使った場合に不具合がありました。
修正しましたので、添付のパッケージファイルを適用してください。



Fix2dPrefabLayer.unitypackage

マッドネスラボ

unread,
Jul 9, 2022, 7:16:57 PM7/9/22
to 宴ユーザーグループ
すみません。
再度パッケージを修正しましたので、こちらを適用してください。
基本的には、以前お伝えしたように、LayerシートにLayerMaskとOrderを設定することは変わりません。

ただ、今回の修正は従来の動作から仕様変更となってしまいます。
詳しく説明しますと・・・
2DPrefabの場合は、プレハブ自体に「Order In Layer」を設定する項目があります。
これをそのまま使うのが今までの仕様でした。
ss_0350.png


パッケージを適用すると、LayerシートのOrderの値で、この「OrderInLayer」の値を変更するようになります。
そのほうが、Layerを変えることで描画順を変更できるため、こちらの動作を今後は基本とします。

もし、今までの仕様を変えず、プレハブの「Order In Layer」をそのまま使いたい場合は、
AdvGraphicManagerの「IgnoreOverride2DPrefabSortingOrder」のチェックをオンにしてください。
オンにすると、プレハブのほうのOrderInLayerが使われるようになり、Layerシートで設定した「Order」は無視されるようになりますので、プレハブのほうの描画順を設定してください。
ss_0353.png



2022年7月10日日曜日 0:25:18 UTC+9 マッドネスラボ:
すみません。
2Dプレハブを使った場合に不具合がありました。
修正しましたので、添付のパッケージファイルを適用してください。



Fix2dPrefabSortingOrder.unitypackage

pureworks official

unread,
Jul 10, 2022, 12:29:21 AM7/10/22
to 宴ユーザーグループ
こんにちは。
2つunitypackageをインポートした後、下のようなバグが発生しました。
添付ファイルをご確認ください。

2Dプレハブについては、
E-moteのアニメモデルです。
一般的な2Dプレハブと違いはないと思います。

E-mote for Utage サンプル、sdkはこちらからダウンロードして確認できます。
https://emote.mtwo.co.jp/download/sdk/
https://emote.mtwo.co.jp/manual/utage/
https://emote.mtwo.co.jp/wp-content/themes/StudioE-mote/download/UtageForEmote_Ver100.unitypackage

よろしくお願いします。2022-07-10_122344.png

マッドネスラボ

unread,
Jul 10, 2022, 10:20:55 AM7/10/22
to 宴ユーザーグループ
そのエラーに関しては、宴のバージョンが古いと発生すると思います。
ただ、E-Moteを使っているのであれば修正パッケージを適用しても意味がありませんので、適用前に戻してもらっても構いません。

Emoteのドキュメントやサンプルを調査した限り、描画順に関してはいくつか制御方法がありそうです。

1.宴のテクスチャ書き込み機能と併用する
テクスチャ書き込みを使うと、描画順は宴の通常の描画と同じ流れになります。
ただ、Emote側の仕様とも被ってしまうようなのでちょっと使うべきが判断がつきかねます。


2、プレハブ側に描画順を設定する
もし、UIの手前に表示するオブジェクトが、常にUIの手前に表示される専用のプレハブであれば、
プレハブのほうにSortingOrderを設定できるので、それを設定するだけです。
ss_0355.png
ただ、プレハブ側に描画順を設定してしまうと、このプレハブを使った描画は常にここで設定したものの影響をうけます。


3,EMoteの宴対応プログラムを拡張し、描画順を設定するようにする。
AdvGraphicObjectEmote.csの、ChangeResourceOnDrawSubを次のように書き替えてください。

        //描画時のリソース変更
        public void ChangeResourceOnDrawSub(AdvGraphicInfo graphic)
        {
            //リップシンクありならそれを設定
            if (LipSynch != null)
            {
                LipSynch.Play();
            }

            AdvGraphicBase graphicBase = this.GetComponentInParent<AdvGraphicBase>();  
            if (graphicBase != null && graphicBase.Layer != null && graphicBase.Layer.Canvas != null)
            {
                EmotePlayer.renderTextureSortingOrder = graphicBase.Layer.Canvas.sortingOrder;
            }
        }



状況によりますが、3が良いかと思います。


2022年7月10日日曜日 13:29:21 UTC+9 159516...@gmail.com:

pureworks official

unread,
Jul 10, 2022, 11:37:22 AM7/10/22
to 宴ユーザーグループ
詳しく説明していただきありがとうございます!
すでに解決しました。
とても助かりました。
よろしくお願いします。

sasa rara

unread,
Aug 1, 2022, 7:57:58 AM8/1/22
to 宴ユーザーグループ
お世話になっております。

こちらはインターネットの問題で新しい会話を投稿できないようなので、古い会話で質問して申し訳ありません。

イベントCGに E-moteアニメの顔アイコンを表示したいのですが。
ただし、E-mote顔アイコンは立ち絵を表示する方法でしか実現できないようだ。

立ち絵はイベントCG表示時に隠れてしまいますが、立ち絵を表示する方法はありますか?
スクリプトを提供できますか?

手伝ってもらえるとありがたいです。
よろしくお願いします。

マッドネスラボ

unread,
Aug 1, 2022, 2:25:44 PM8/1/22
to 宴ユーザーグループ
現状では手段がないので、コマンドを拡張しました。
添付のパッケージファイルを適用してください。

BgEventコマンドのArg2をFALSEを設定すると、立ち絵が表示されるようになります。

ss_0383.png

Arg2に何も入力しない場合は、これまで通り立ち絵が消えますので、
BgEventコマンドを使うときは毎回FALSEを設定してください。
マクロを使ってArg2にFALSEを設定したBgEventコマンドを呼び出すと、打ち間違いを防ぎやすくなると思います。



2022年8月1日月曜日 20:57:58 UTC+9 159516...@gmail.com:
FixEventCommand.unitypackage
Reply all
Reply to author
Forward
0 new messages