VRChat

【無料】動画プレイヤー連携 BGM自動停止ギミック【UdonSharp】

【概要】 動画プレイヤーの再生状態に応じて、ワールドBGMのオンオフを切り替えるためのギミックです。 現在はGameObjectのアクティブ/非アクティブを切り替えることによって実現されています。 ※対応する動画プレイヤーによってunitypackageが異なります。(同時インポート可能) プロジェクト内に存在しない動画プレイヤー向けのunitypackageをインポートするとエラーが発生しますのでご注意下さい。 ご意見やご要望、不具合、不明な点などがございましたらBOOTHやMisskeyなどからご連絡ください。 【動作確認を行った環境】 Unity: 2019.4.31f1, 2022.3.6f1, 2022.3.22f1 VRChat SDK - World: 3.4.2, 3.5.2, 3.6.1, 3.7.6 UdonSharp: (SDK 3.4.0以降はSDKに含まれています。それ以前では、1.1.9で動作したことを確認しています。) iwaSync3: 3.6.1, 3.6.16 KineLVideoPlayer(VPMから): 2.5.5 KineLVideoPlayer_v2.4.3_U_1.x_ KineLVideoPlayer_v2.3.0__U_1.x_ VizVid(VPMから): 1.0.30, 1.4.3(vrcw-foundation 0.0.25) YamaPlayer(VPMから): 1.4.5, 1.6.0-beta.3 YamaPlayer: 1.4.2 【配布物内容】 ・IwaSync3用unitypackage ・KineL式ビデオプレイヤー用unitypackage ・VizVid用unitypackage ・YamaPlayer用unitypackage ・LICENSE ・説明書_Readme.txt 【unitypackage内容物】 ・Udonプログラム(csファイル, asmdef, U#asmdef) ・prefab (BGMStopControl_IwaSync3、BGMStopControl_KineLVP、BGMStopControl_VizVid、BGMStopControl_YamaPlayerのいずれか) ・LICENSE ・説明書_Readme.txt 【利用規約】 例外条項を追加したMITライセンスを利用しています。 MITライセンスは制約の緩いライセンスです。 内容の一部を大雑把に説明すると以下の通りです。 ・使用用途に制限は無く、商用利用や改変などを自由に行うことが出来ます。 ・再配布する場合は著作権表示と許諾表示(今回はLICENSEファイル)を含める必要があります。 ・現状有姿で提供されるため一切の保証が無く、いかなる問題が生じても作者は責任を負いません。 追加した例外条項の内容は、以下の様な場合にライセンスファイルの同梱と著作権表示が無くても良いというものです。 ・ワールドにや他のアセット等の一部として利用/配布する場合 ・アセットの主要な部分を改変した場合 なお、バグ等に関しては可能な範囲で対応するつもりです。 本条件は配布物を更新する際に変更される可能性があります。 その場合は、Misskey等での告知、商品ページへの追記などを行いますが、利用しているバージョンで与えられた利用規約に従うよう、お願いいたします。 【使い方(IwaSync3の場合)】 ・"BGMStopControl_IwaSync3"prefabをHierarchyに配置します。 ・配置したprefabのIwaSync3VideoCoreのところに、ワールドに設置した"iwaSync3"のprefabの中にある"iwaSync3-Core"の中にある"Udon (VideoCore)"をセットします。 ・配置したprefabのSwitch Target Objectsのところに、BGM用のGameObjectを指定します。(複数指定可能) 【使い方(KineL式ビデオプレイヤーの場合)】 ・"BGMStopControl_KineL"prefabをHierarchyに配置します。 ・配置したprefabのKinelVPSystemのところに、ワールドに設置した"KineLVideoPlayer"のprefabの中にある"KineLVP System"をセットします。 ・配置したprefabのSwitch Target Objectsのところに、BGM用のGameObjectを指定します。(複数指定可能) 【使い方(VizVidの場合)】 ※VizVidには類似機能が公式で用意されています。 ・"BGMStopControl_VizVid"prefabをHierarchyに配置します。 ・配置したprefabのVvmwCoreのところに、ワールドに設置したVizVid本体のprefab(名前に"VVMW"が含まれていて、"Core (U# Script)"コンポーネントか"Core"コンポーネントが付いているもの)をセットします。 (配置したprefabをVizVid本体のprefabの"イベントターゲット"("Event Targets")欄にセットした場合にも動作しますが、セットされているかどうかを検知する手段が無いため、ログに警告が表示されます) ・配置したprefabのSwitch Target Objectsのところに、BGM用のGameObjectを指定します。(複数指定可能) 【使い方(YamaPlayerの場合)】 ・"BGMStopControl_YamaPlayer"prefabをHierarchyに配置します。 ・配置したprefabのControllerのところに、ワールドに設置した"YamaPlayer"のprefabの中にある"Internal"の中にある"Controller"をセットします。 ・配置したprefabのSwitch Target Objectsのところに、BGM用のGameObjectを指定します。(複数指定可能) 【機能について】 ・動画を再生中: BGM停止(指定したGameObjectが非アクティブに) ・動画を一時停止中: BGM再生(指定したGameObjectがアクティブに) ・動画を停止中: BGM再生(指定したGameObjectがアクティブに) という挙動をします。 ただし、スイッチ等で同じBGM用GameObjectの切り替え(BGMオンオフ)が出来るようになっている場合、干渉するため注意が必要です。 (本ギミック側では、変更前の状態が元々どうであったかを記録していないため、例えば、ユーザーがBGMを切る→動画を再生する→動画を停止する、の手順でBGMが復活する可能性があります。GameObjectを入れ子状にするなどして対応して下さい。) 【既知のバグ】 ・KineL式ビデオプレイヤー版の本ギミックにおいて、Stream Modeにて再生終了後、再生ボタンやシークバーの操作によって同じ動画をそのまま再生し直してもBGMが停止しません。 ・YamaPlayer 1.4.2以前において、動画を再生していない状態で再生/停止ボタンを押すと、本ギミックが動作してBGMが停止/再生されてしまいます。 【更新履歴】 2023/08/24 v1.0.0 配布 2024/03/29 v1.1.0 VizVid対応 Unity2022での動作確認 2024/07/07 v1.2.0 YamaPlayer対応 2024/07/27 v1.2.1 YamaPlayer v1.4.5にてエラーが発生する問題を修正 2025/03/30 v1.2.2 VizVid v1.2.0以降でエラーが発生する問題を修正 【作者】 さやまめ - Booth: https://sayamame-beans.booth.pm/ - Misskey(ActivityPub): https://misskey.niri.la/@Sayabeans - Twitter(非推奨): https://twitter.com/Sayabeans_0011 - GitHub: https://github.com/Sayamame-beans - Qiita: https://qiita.com/Sayamame - Zenn: https://zenn.dev/sayamame

【無料】動画プレイヤー連携 BGM自動停止ギミック【UdonSharp】
【概要】 動画プレイヤーの再生状態に応じて、ワールドBGMのオンオフを切り替えるためのギミックです。 現在はGameObjectのアクティブ/非アクティブを切り替えることによって実現されています。 ※対応する動画プレイヤーによってunitypackageが異なります。(同時インポート可能) プロジェクト内に存在しない動画プレイヤー向けのunitypackageをインポートするとエラーが発生しますのでご注意下さい。 ご意見やご要望、不具合、不明な点などがございましたらBOOTHやMisskeyなどからご連絡ください。 【動作確認を行った環境】 Unity: 2019.4.31f1, 2022.3.6f1, 2022.3.22f1 VRChat SDK - World: 3.4.2, 3.5.2, 3.6.1, 3.7.6 UdonSharp: (SDK 3.4.0以降はSDKに含まれています。それ以前では、1.1.9で動作したことを確認しています。) iwaSync3: 3.6.1, 3.6.16 KineLVideoPlayer(VPMから): 2.5.5 KineLVideoPlayer_v2.4.3_U_1.x_ KineLVideoPlayer_v2.3.0__U_1.x_ VizVid(VPMから): 1.0.30, 1.4.3(vrcw-foundation 0.0.25) YamaPlayer(VPMから): 1.4.5, 1.6.0-beta.3 YamaPlayer: 1.4.2 【配布物内容】 ・IwaSync3用unitypackage ・KineL式ビデオプレイヤー用unitypackage ・VizVid用unitypackage ・YamaPlayer用unitypackage ・LICENSE ・説明書_Readme.txt 【unitypackage内容物】 ・Udonプログラム(csファイル, asmdef, U#asmdef) ・prefab (BGMStopControl_IwaSync3、BGMStopControl_KineLVP、BGMStopControl_VizVid、BGMStopControl_YamaPlayerのいずれか) ・LICENSE ・説明書_Readme.txt 【利用規約】 例外条項を追加したMITライセンスを利用しています。 MITライセンスは制約の緩いライセンスです。 内容の一部を大雑把に説明すると以下の通りです。 ・使用用途に制限は無く、商用利用や改変などを自由に行うことが出来ます。 ・再配布する場合は著作権表示と許諾表示(今回はLICENSEファイル)を含める必要があります。 ・現状有姿で提供されるため一切の保証が無く、いかなる問題が生じても作者は責任を負いません。 追加した例外条項の内容は、以下の様な場合にライセンスファイルの同梱と著作権表示が無くても良いというものです。 ・ワールドにや他のアセット等の一部として利用/配布する場合 ・アセットの主要な部分を改変した場合 なお、バグ等に関しては可能な範囲で対応するつもりです。 本条件は配布物を更新する際に変更される可能性があります。 その場合は、Misskey等での告知、商品ページへの追記などを行いますが、利用しているバージョンで与えられた利用規約に従うよう、お願いいたします。 【使い方(IwaSync3の場合)】 ・"BGMStopControl_IwaSync3"prefabをHierarchyに配置します。 ・配置したprefabのIwaSync3VideoCoreのところに、ワールドに設置した"iwaSync3"のprefabの中にある"iwaSync3-Core"の中にある"Udon (VideoCore)"をセットします。 ・配置したprefabのSwitch Target Objectsのところに、BGM用のGameObjectを指定します。(複数指定可能) 【使い方(KineL式ビデオプレイヤーの場合)】 ・"BGMStopControl_KineL"prefabをHierarchyに配置します。 ・配置したprefabのKinelVPSystemのところに、ワールドに設置した"KineLVideoPlayer"のprefabの中にある"KineLVP System"をセットします。 ・配置したprefabのSwitch Target Objectsのところに、BGM用のGameObjectを指定します。(複数指定可能) 【使い方(VizVidの場合)】 ※VizVidには類似機能が公式で用意されています。 ・"BGMStopControl_VizVid"prefabをHierarchyに配置します。 ・配置したprefabのVvmwCoreのところに、ワールドに設置したVizVid本体のprefab(名前に"VVMW"が含まれていて、"Core (U# Script)"コンポーネントか"Core"コンポーネントが付いているもの)をセットします。 (配置したprefabをVizVid本体のprefabの"イベントターゲット"("Event Targets")欄にセットした場合にも動作しますが、セットされているかどうかを検知する手段が無いため、ログに警告が表示されます) ・配置したprefabのSwitch Target Objectsのところに、BGM用のGameObjectを指定します。(複数指定可能) 【使い方(YamaPlayerの場合)】 ・"BGMStopControl_YamaPlayer"prefabをHierarchyに配置します。 ・配置したprefabのControllerのところに、ワールドに設置した"YamaPlayer"のprefabの中にある"Internal"の中にある"Controller"をセットします。 ・配置したprefabのSwitch Target Objectsのところに、BGM用のGameObjectを指定します。(複数指定可能) 【機能について】 ・動画を再生中: BGM停止(指定したGameObjectが非アクティブに) ・動画を一時停止中: BGM再生(指定したGameObjectがアクティブに) ・動画を停止中: BGM再生(指定したGameObjectがアクティブに) という挙動をします。 ただし、スイッチ等で同じBGM用GameObjectの切り替え(BGMオンオフ)が出来るようになっている場合、干渉するため注意が必要です。 (本ギミック側では、変更前の状態が元々どうであったかを記録していないため、例えば、ユーザーがBGMを切る→動画を再生する→動画を停止する、の手順でBGMが復活する可能性があります。GameObjectを入れ子状にするなどして対応して下さい。) 【既知のバグ】 ・KineL式ビデオプレイヤー版の本ギミックにおいて、Stream Modeにて再生終了後、再生ボタンやシークバーの操作によって同じ動画をそのまま再生し直してもBGMが停止しません。 ・YamaPlayer 1.4.2以前において、動画を再生していない状態で再生/停止ボタンを押すと、本ギミックが動作してBGMが停止/再生されてしまいます。 【更新履歴】 2023/08/24 v1.0.0 配布 2024/03/29 v1.1.0 VizVid対応 Unity2022での動作確認 2024/07/07 v1.2.0 YamaPlayer対応 2024/07/27 v1.2.1 YamaPlayer v1.4.5にてエラーが発生する問題を修正 2025/03/30 v1.2.2 VizVid v1.2.0以降でエラーが発生する問題を修正 【作者】 さやまめ - Booth: https://sayamame-beans.booth.pm/ - Misskey(ActivityPub): https://misskey.niri.la/@Sayabeans - Twitter(非推奨): https://twitter.com/Sayabeans_0011 - GitHub: https://github.com/Sayamame-beans - Qiita: https://qiita.com/Sayamame - Zenn: https://zenn.dev/sayamame