ビデオオブジェクトと独自コンポーネントについて

45 views
Skip to first unread message

sola

unread,
Sep 12, 2026, 11:32:56 AMSep 12
to 宴ユーザーグループ
宴のバージョン:宴4.3.0
UnityのバージョンとOS:Unity6000.3.23f1 URP Mac
Unityの習熟度:初心者

お世話になっております。

立て続けのご質問となり失礼いたします。

ビデオオブジェクトに予め、インスペクタ上でプロパティを設定されている
独自コンポーネントを付与した状態で再生させたいと考えてます。

ただ、ビデオオブジェクトには生成元となるPrefabなどの実体が見つからないため、 
このような設定が可能でしたらご教示いただけますと幸いです。 

また上記が可能であるならば、キャラクターなどの画像表示にも応用はできますでしょうか。

以上、よろしくお願いいたします。

マッドネスラボ

unread,
Sep 12, 2026, 12:16:34 PMSep 12
to 宴ユーザーグループ
やり方は二種類あります。

その1 プレハブを使う
プレハブを使う場合、FileTypeをOverridePrefabにしてみてください。
Unityのプレハブの操作・編集に慣れている場合はこちらのほうがスムーズかと思います。

その2 カスタムイベント経由でAddComponent
単純に独自コンポーネントをAddComponentするだけなら
グラフィックオブジェクトの初期化時のイベントを使って、AddComponentするプログラムを書くという手法もあります。
→SampleVideoObjectCustomMaterial
サンプルでは、VideoObjectのマテリアルを変更する処理をしています。
その部分をAddComponentする処理にしてみてください。


2026年9月13日日曜日 0:32:56 UTC+9 sola:

マッドネスラボ

unread,
Sep 12, 2026, 12:30:54 PMSep 12
to 宴ユーザーグループ
>キャラクターなどの画像表示にも応用
はい。大丈夫だと思います。

基本的にはOverridePrefabは、 既存のGraphicObject(またはそれを継承したコンポーネント) をプレハブ化したものであれば表示可能です。
ただし、2Dプレハブや3Dプレハブなどの元からプレハブとして用意しているものには使えません。

2026年9月13日日曜日 1:16:34 UTC+9 マッドネスラボ:

sola

unread,
Sep 12, 2026, 1:13:59 PMSep 12
to 宴ユーザーグループ
ご返信ありがとうございます。

「その1 プレハブを使う」 を採用しようと思います。
記事を読んで試してみようとしたのですが質問があります。

下記Textureタブの画像のように元の動画の「sample.mp4」とResourcesフォルダ直下に作成した「VideoObject.prefab」の2つのファイル名がありますが、
FileNameは一つしかない入力欄がないです。
FileTypeはOverridePrefabに変更した上での修正方法をご教示願えますでしょうか?
(ちなみにsample.mp4以外も複数の動画ファイルを同じprefabを元にして再生予定です)

また、今まではSpriteコマンドでビデオオブジェクトを再生してたのですが
今回の場合もSpriteコマンドで再生可能という認識で合ってますでしょうか?

sheet.png

2026年9月13日日曜日 1:30:54 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Sep 12, 2026, 11:59:38 PM (14 days ago) Sep 12
to 宴ユーザーグループ
ビデオの処理(AdvGraphicObjectVideo)がプレハブ化を想定してなかったので、このままだと動作しないようでした。
修正しましたので添付のパッケージファイルを適用してください。
(unitypackageの使い方などの詳細はこちらをご確認ください)
https://madnesslabo.net/utage/?page_id=8530#i-6


プレハブは実行中のオブジェクトを直接プレハブ化して作成できます。
あまりないケースかもしれないですが、拡張イベントなどで独自に追加したコンポーネントがある場合は、それも巻き込んでプレハブ化してしまうので、
そのコンポーネントが二重にならないようにプレハブ側のコンポーネントを削除するか、追加するプログラムのほうで重複チェックをするようにしてください。

作成されるプレハブは下記画像のようになると思います(子オブジェクトなし)
TimerとAdvClickEventはプレハブ側で不要であれば、削除しても構わないです。(ゲーム実行中に、なかったら自動的に設定されるので)
RawImageもなかったら自動的に追加されますが、マテリアルなどの設定をプレハブ側で行いたい場合は、プレハブ側に設定しておく方が楽かと思います。
ss_1842.png



FileNameは「 VideoObject.prefab  」のほうにしてください。(動画ファイル名は指定できません)
ss_1841.png

>(ちなみにsample.mp4以外も複数の動画ファイルを同じprefabを元にして再生予定です)
VideoPlayerがUnity公式の動画再生コンポーネントで、これの「VideoClip」に再生したい動画を設定してください。(上記サンプル画像だとAlphaMovie)
再生する動画ごとにプレハブが必要になります(動画ファイル名指定での切り替えはできないです)
プレハブをコピーして増やすか、プレハブバリアントなどを使ってください。


2026年9月13日日曜日 2:13:59 UTC+9 sola:
VideoObjectToPrefab.unitypackage

マッドネスラボ

unread,
Sep 13, 2026, 12:12:21 AM (14 days ago) Sep 13
to 宴ユーザーグループ
>今回の場合もSpriteコマンドで再生可能という認識で合ってますでしょうか?
はい。大丈夫です。

本来は「OverridePrefab」は、たしかアバター系の表示をカスタムする要望があった際に
グラフィックオブジェクトのコンポーネント( 今回でいえばAdvGraphicObjectVideo  )を
継承して独自処理に書き変えた( Override  )コンポーネントを組み込んだプレハブを使う……という目的で作成されました。

VideClipコンポーネントの設定は、 AdvGraphicObjectVideo のプログラムで色々書き変えてしまうので、
プレハブ側の設定を優先してプログラムからの書き変えを止めたい場合は、
継承した独自コンポーネントを作成して差し替えて、その部分をOverrideしてください。


2026年9月13日日曜日 12:59:38 UTC+9 マッドネスラボ:

sola

unread,
Sep 13, 2026, 1:55:50 AM (14 days ago) Sep 13
to 宴ユーザーグループ
ありがとうございます!

Resourcesフォルダ以下にあるSpriteフォルダにprefabを配置してビデオオブジェクトを無事再生できました。
また、最初にご紹介いただいたAddComponentによる方法でも再生できました。

ちなみに1点だけ参考までにお伺いしたいです。
例えばビデオオブジェクトはコード生成がデフォルトですが、
最初の生成時点でprefabによる生成を選択できないようにしているのは不具合が生じる可能性があるとかでしょうか?
2026年9月13日日曜日 13:12:21 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Sep 13, 2026, 4:35:33 AM (13 days ago) Sep 13
to 宴ユーザーグループ
どちらかというと、宴のデフォルトの表示形式がプレハブを使わない設計方針が基本だったので
それに合わせてということになります。

正直なところ宴の基礎設計がかなりUnityの初期(2012年ごろ)だったので、
当時はまだプレハブの仕組み自体もまだ発展途上だったのと、コード生成していたほうが何かあった時にフォローがしやすかったという面が強いです。
たとえば、宴の表示の基本はUGUIの仕組みを使ってますが、昔はUGUIもなかったので似たような仕組みを作ってそれをコード生成してました。
その後、 UGUI に移行した際も宴のコード生成部分だけ対応すれば移行できる……というような形で制御がしやすかったのが主な理由です。
ただ、今は仕組みがだいぶ固まってるので、仮に今から設計しなおすならプレハブを基本として作ると思います。

>最初の生成時点でprefabによる生成を選択できないようにしているのは不具合が生じる可能性があるとかでしょうか?
要望に応じて拡張していったものなので、今回のようにチェックが漏れているかもしれません。

不具合ではないのですが、思いつく範囲では
今回のように、元から同じファイルであれば特に問題はないですが
「同じファイルの差分表示などをプレハブをわけることで表現する(差分をプレハブで設定する)」というのは難しいです。
内部では、同じ素材をもとにているのか、本当に別オブジェクトかまでは判別していないので、表情替えやクロスフェードなどがうまく機能しなくなってしまうと思います。
また、アセットバンドル化した場合にメモリ消費が肥大化する可能性が高いです。

基本的には素材ファイルが同じものであれば、プレハブも同じにしていく必要があります。
逆に、プレハブを使って差分表現を個別に設定する……というのは難しいです。
モーションファイルのように、同一プレハブ中で差分を表現する仕組みを使い、それをなんからの形で制御する…という形になるかと思います。

2026年9月13日日曜日 14:55:50 UTC+9 sola:

マッドネスラボ

unread,
Sep 13, 2026, 4:38:39 AM (13 days ago) Sep 13
to 宴ユーザーグループ
誤字の訂正です

誤 今回のように、元から同じファイルであれば特に問題はないですが
正 今回のように、元から違うファイルであれば特に問題はないですが


2026年9月13日日曜日 17:35:33 UTC+9 マッドネスラボ:

sola

unread,
Sep 13, 2026, 6:05:32 AM (13 days ago) Sep 13
to 宴ユーザーグループ
ご回答ありがとうございます。

まず、「>最初の生成時点で」というのは「シーン内で生成時」という意味でした。
誤解を招くようで失礼致しました。

コード生成の理由は以前からお伺いしたかったので良かったです。
本件に関しましてはおかげ様で一旦解決できました。

将来的に本件に関連して、またご相談させて頂くことがあるかもしれませんが
その際はよろしくお願い致します。

この度も丁寧にご対応頂き誠にありがとうございました。

2026年9月13日日曜日 17:38:39 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages