質問するログイン新規登録

Q&A

0回答

352閲覧

Unityでシーンが切り替わる前に、一瞬だけVideoPlayerが消える(?)

LastNaught

総合スコア10

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2025/08/31 07:50

編集2025/08/31 07:54

0

0

実現したいこと

Android上でもEditor上と同じようにVideoPlayerが一瞬消えることなくシーン遷移を行いたい。

前提

プログラミング初心者で質問投稿も初めてなので情報が不足していたら申し訳ありません。
現在Unityを使ってスマホ版のゲームを作っています。
シーンを切り替える際にVideoPlayerを使ってフェードイン及びフェードアウト演出をしているのですが
Androidで実機テストをすると、フェードアウトの際にシーンが切り替わる直前に
VideoPlayerが一瞬非表示になり、ゲーム画面がその瞬間だけ見えてしまいます。
※一瞬なので再度VideoPlayerが表示された後にシーン遷移が発生している。
Editor上ではVideoPlayerは消えることなくそのままシーン遷移されており問題ないように見えます。

発生している問題・エラーメッセージ

Android上だと、シーンが切り替わる直前にVideoPlayerが一瞬非表示になってしまう。

該当のソースコード

Unity

1 2[SerializeField] private VideoClip vcFadeClip; // フェード用動画 3[SerializeField] private AudioClip acSEClip; // フェード用SE 4 5private SceneObject objScene = null; // 次のシーン 6private VideoPlayer vpFade = null; // フェード用VideoPlayer 7private AudioSource asFadeSE = null; // フェード用AudioSource 8 9void Awake() 10{ 11 vpFade = GetComponent<VideoPlayer>(); // VideoPlayerコンポーネント取得 12 asFadeSE = GetComponent<AudioSource>(); // AudioSourceコンポーネント取得 13 14 vpFade.time = 0f; // 動画の最初から再生 15} 16 17public void FadeOut(SceneObject scene) 18{ 19 gameObject.SetActive(true); // 表示 20 objScene = scene; // 次のシーンセット 21 vpFade.clip = vcFadeClip; // フェード用動画セット 22 vpFade.Play(); // 動画再生 23 GetComponent<RawImage>().enabled = true; // RawImage表示 24 vpFade.loopPointReached += FinishFadeOutVideo; // 動画終了時にFinishFadeOutVideo呼び出し 25 asFadeSE.PlayOneShot(acSEClip); // フェード用SE再生 26} 27 28public void FinishFadeOutVideo(VideoPlayer vp) 29{ 30 vpFade.Pause(); // 動画停止 31 SceneManager.LoadScene(objScene); // 次のシーンへ 32} 33

試したこと

原因が分からないので何を試したらいいのか分かっていないです。

補足情報(FW/ツールのバージョンなど)

バージョン:Unity 2021.3.12
動画ファイル情報:webm形式、VP8コーデック

VideoPlayerのRenderModeはRenderTextureで、インスペクター上でループはオフにしています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

katsuko

2025/09/04 23:12

VideoPlayerは使っていないので静観してましたが、回答がつかないようなのでちょっと突っ込んでみたいと思います。 ご存知だと思いますが、シーンを切り替えると前のシーンのHierarchy上のGameObjectは破棄されます。 VideoPlayerもMonoBehaviourのようなので例外にもれずその影響を受けると思いますが、そのあたりはどのような対処をしているんですか。 (DontDestroyOnLoadを使っている?切り替えるシーンの両方にVideoPlayerを配置しているい?) RenderModeがRenderTexture、というのは、おそらくRenderTextureに再生されている動画がレンダリングされるようなことだと思いますが、RenderTextureはテクスチャなので、それ自体は画面に表示するものではありません。 RenderTextureを表示する「なにか」(SpriteRendererなり、UI.RawImageなり、テクスチャを貼ったMaterialを使ったRendererなり)があるんじゃないですか。 そちらに問題はないんですか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問