スチルの上にmp4の動画で効果をつけたい

71 views
Skip to first unread message

ゆき

unread,
May 15, 2024, 11:44:11 AMMay 15
to 宴ユーザーグループ
Unity バージョン:2022.3.27f1
宴 バージョン:4

お世話になっております。
表題の件でご相談です。

スチル(BgEvent)に動画(mp4)を重ねてその動画に加算効果をつけたいのですが、良い方法はないでしょうか。
タイトル画面ではシェーダーを作成してそれを動画につけて加算効果を実現させられました。
ただ、シナリオ内(シナリオはExcelで動くので)で同様のことを実装する方法が分からず質問です。
アルファチャンネルの動画ではなくmp4の動画に加算をつけてスチルに重ねたいです。

お手数をおかけしますがよろしくお願いいたします。
Message has been deleted

ゆき

unread,
May 15, 2024, 12:19:05 PMMay 15
to 宴ユーザーグループ
Spriteで動画を表示するところまでは自力でできたのですが、
その動画が表示されているRawImageのマテリアルを変更することができず…です💦

2024年5月16日木曜日 0:44:11 UTC+9 ゆき:

マッドネスラボ

unread,
May 15, 2024, 10:49:03 PMMay 15
to 宴ユーザーグループ
すみません。
動画の加算効果というのがわからないのですが、動画を独自のシェーダーやマテリアルを使って表示したいということでしょうか?

Spriteで表示してるとのことなので、
Videoコマンドではなく
Videoオブジェクトの方を使っているということで良いでしょうか?

であれば、拡張イベントで対応できる可能性があるのですが、
現在、ドキュメントがまとまっていないので、まとめようと思います。

さしあたってになりますが、
・動画を独自のシェーダーやマテリアルを使って表示したい
・Videoオブジェクトを使っている
ということでよろしいでしょうか?



2024年5月16日木曜日 1:19:05 UTC+9 ゆき:

ゆき

unread,
May 15, 2024, 10:53:52 PMMay 15
to 宴ユーザーグループ
伝え方が分かりづらく申し訳ありません。

>>動画を独自のシェーダーやマテリアルを使って表示したいということでしょうか?
はい。やりたいこととしては、それです。

>>Videoオブジェクトの方を使っているということで良いでしょうか?
はい。Spriteとして表示している動画に独自のマテリアルを使いたいということになります。

ドキュメントをまとめて頂けるとのことで感謝いたします。
お手数をおかけしますがよろしくお願いいたします。

2024年5月16日木曜日 11:49:03 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
May 16, 2024, 6:37:05 AMMay 16
to 宴ユーザーグループ
ドキュメントを追加しました。
https://madnesslabo.net/utage/?page_id=14842

一番下にある「SampleVideoObjectCustomMaterial」を参考にしてみてください。
あくまでサンプルです。
名前で処理を変えたり、Textureシートの設定項目によって処理を変えたりなども可能なので、目的に応じてアレンジしてください。



動画の加算効果というのがクロマキー合成のことかと思ってネットの記事などを見てみたのですが、
多くの記事では、動画をRendertTextureに描画し、それを3Dモデルなどのテクスチャとして貼り付けて、その際に使用する3Dモデル用のシェーダーとして書いてるようでした。
宴の場合は、動画をRendertTextureに描画したあと、それをUnityのUIコンポーネントのRawImageで描画しているので、
シェーダーはRawImageに対応したマテリアル・・・つまりUnityのUIシェーダーとして動作するものを使うようにしてください。






2024年5月16日木曜日 11:53:52 UTC+9 ゆき:

ゆき

unread,
May 16, 2024, 1:12:03 PMMay 16
to 宴ユーザーグループ
ありがとうございます!!!!!!!
無事解決しました(´;ω;`)
いつも本当にありがとうございます(´;ω;`)

2024年5月16日木曜日 19:37:05 UTC+9 マッドネスラボ:

ゆき

unread,
May 23, 2024, 10:48:10 AMMay 23
to 宴ユーザーグループ
度々失礼します。
こちらと似たことで、
画像のSpriteの一部にも独自のシェーダー(マテリアル)を設定したいのですが、可能でしょうか。
すべてのSpriteではなく一部だけなのですが、、、


2024年5月17日金曜日 2:12:03 UTC+9 ゆき:

ゆき

unread,
May 23, 2024, 11:14:38 AMMay 23
to 宴ユーザーグループ
可能であればSpriteごとに異なるマテリアルを設定できるようにコマンドか何かでできるようにならないでしょうか💦

2024年5月23日木曜日 23:48:10 UTC+9 ゆき:

マッドネスラボ

unread,
May 23, 2024, 4:52:26 PMMay 23
to 宴ユーザーグループ
先述のドキュメントの応用で、次のように書けば
・Characterシート、またはTextureシートのCustomMaterialを追加
・マテリアル名が設定されていたらそのマテリアルをしてきて設定する
というカスタムが可能です。

コマンド単位で

public class Sample : MonoBehaviour
{
public AdvEngine engine = null;
public List<Material> materials;

void Awake()
{
if (engine != null)
{
engine.GraphicManager.OnDrawGraphicObject.AddListener(OnDrawGraphicObject);
}
}


//グラフィックオブジェクトの描画時によばれるイベント。AdvGraphicInfoは、キャラクターシートのパターンごとの情報が入っている
public void OnDrawGraphicObject(AdvGraphicObject graphicObject, AdvGraphicInfo graphicInfo)
{
//Characterシート、またはTextureシートのCustomMaterial列を参照して、マテリアル名が設定されていたら取得
if (!graphicInfo.RowData.TryParseCell("CustomMaterial", out string materialName)) return;

var material = materials.Find(m => m.name == materialName);
if (material == null)
{
//指定の名前のマテリアルが存在しない
Debug.LogError($"Material {materialName} not found", this);
return;
}
if (graphicObject.TargetObject.TryGetComponent(out RawImage rawImage))
{
rawImage.material = material;
}
}
}



ただし、宴はクロスフェードを独自のシェーダーを使ったマテリアルで行っているため、
その際にマテリアルがまた変わってしまう可能性が高いです。

そこに不都合があるようであれば、いっそのことプレハブを使って独自の表示オブジェクトとして作成したほうがカスタムしやすいかもしれません。



2024年5月24日金曜日 0:14:38 UTC+9 ゆき:

マッドネスラボ

unread,
May 23, 2024, 4:59:33 PMMay 23
to 宴ユーザーグループ
Videoオブジェクトの場合はクロスフェードがないので問題ないですが、

下記のグラフィックオブジェクトのタイプのうち、
・テクスチャ書き込みをする場合はテクスチャ書き込み用のシェーダー(マテリアル)を使います。
・デフォルトとダイシングの場合は、クロスフェードの場合に独自のシェーダー(マテリアル)を使います。


2024年5月24日金曜日 5:52:26 UTC+9 マッドネスラボ:
Message has been deleted

マッドネスラボ

unread,
May 24, 2024, 4:08:51 AMMay 24
to 宴ユーザーグループ
ソースコードの冒頭に、以下のようにnamespcaeを書いてください。
ListはC#の基本的な機能ですが、使うにはusing System.Collections.Generic;としておく必要があります。


using System.Collections.Generic;
using UnityEngine;
using Utage;

2024年5月24日金曜日 5:59:33 UTC+9 マッドネスラボ:

ゆき

unread,
May 26, 2024, 12:51:40 AMMay 26
to 宴ユーザーグループ
基本的なことでしたすみません
ありがとうございます!

2024年5月24日金曜日 17:08:51 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages