【解決済み】トリアコンタン様の「動画のピクチャ表示プラグイン」について

Huyuzora
記事: 26
登録日時: 2015年12月16日(水) 22:24

【解決済み】トリアコンタン様の「動画のピクチャ表示プラグイン」について

投稿記事by Huyuzora » 2019年5月15日(水) 20:49

質問させていただきます。

トリアコンタン様の「動画のピクチャ表示プラグイン」についてなのですが
動画を再生して、
・最後まで再生すると自動的に次の動画を再生する。
・決定ボタンやキャンセルボタンを押すと
 再生中の動画をスキップして次の動画を再生する。
という、上記二つの仕様を両立させたいのですが
中々うまくいかず、困っています。

とりあえず、自力で以下のようにイベントを組んでみましたが
決定・キャンセルボタンを押せば次の動画に行くことはできるのですが
一番目の動画が終わった後に、そのまま次の動画を再生させる方法がわからず
一番目の動画が終わると、ボタンを押さない限り何も表示されない状態で止まってしまいます。
==================================================
◆プラグインコマンド:MP_動画設定 Test01
◆ピクチャの表示:#1, なし, 左上 (0,0), (100%,100%), 255, 通常
◆スイッチの操作:#0010 動画再生中 = ON
◆プラグインコマンド:MP_ループ設定 1 off
◆ループ
◆ウェイト:10フレーム
◆条件分岐:ボタン[決定]が押されている
◆ループの中断

:それ以外のとき
◆条件分岐:ボタン[キャンセル]が押されている
◆ループの中断

:分岐終了

:分岐終了

:以上繰り返し
◆プラグインコマンド:MP_動画設定 Test02
◆ピクチャの表示:#1, なし, 左上 (0,0), (100%,100%), 255, 通常
◆プラグインコマンド:MP_ループ設定 1 on
==================================================

以前使わせていただきた「動画管理プラグイン」では”スクリプト:MovieManager.isPlaying()”があったので
以下の様にイベントを組み
・最後まで再生すると自動的に次の動画を再生する。
・決定ボタンやキャンセルボタンを押すと
 再生中の動画をスキップして次の動画を再生する。
という、二つの仕様を両立出来ていました。
==================================================
◆スイッチの操作:#0010 動画再生中 = ON
◆ムービーの再生:Test01
◆プラグインコマンド:MM_設定_ループ off
◆ウェイト:3フレーム
◆ループ
◆条件分岐:スクリプト:MovieManager.isPlaying()
◆スイッチの操作:#0010 動画再生中 = OFF

:分岐終了
◆条件分岐:動画再生中がOFF
◆条件分岐:スクリプト:!MovieManager.isPlaying();
◆ループの中断

:分岐終了
◆ウェイト:10フレーム
◆条件分岐:ボタン[決定]が押されている
◆プラグインコマンド:MM_停止

:それ以外のとき
◆条件分岐:ボタン[キャンセル]が押されている
◆プラグインコマンド:MM_停止

:分岐終了

:分岐終了

:分岐終了

:以上繰り返し
◆スイッチの操作:#0010 動画再生中 = ON
◆ムービーの再生:Test02
==================================================

もしよろしければ、
動画のスキップと、次の動画の自動再生を両立する方法を
ご教示いただければ幸いです。
最後に編集したユーザー Huyuzora on 2019年5月17日(金) 11:27 [ 編集 1 回目 ]

奏ねこま
記事: 502
登録日時: 2016年1月20日(水) 20:04

Re: トリアコンタン様の「動画のピクチャ表示プラグイン」について

投稿記事by 奏ねこま » 2019年5月15日(水) 23:53

強引なやり方になりますが。

コード: 全て選択

SceneManager._scene._spriteset._pictureContainer.children.some(function(sprite) {
    if (sprite.picture() === $gameScreen.picture(1)) {
        $gameTemp._pictureSprite = sprite;
        return false;
    }
});

というスクリプトでピクチャ1番のデータを$gameTemp._pictureSpriteに取り込むことができます。
取り込んだ上で、条件分岐のスクリプトで「!$gameTemp._pictureSprite.bitmap」とすると動画再生の終了を検知することができます。
なお、動画再生開始から「!$gameTemp._pictureSprite.bitmap」の判定までの間に1フレーム以上のウェイトが必要です。
Huyuzora
記事: 26
登録日時: 2015年12月16日(水) 22:24

Re: トリアコンタン様の「動画のピクチャ表示プラグイン」について

投稿記事by Huyuzora » 2019年5月17日(金) 09:03

奏ねこま 様

ご返信、ありがとうございます。
以下の形のイベントを組んで試してみました。
===================================================
◆プラグインコマンド:MP_動画設定 Test01
◆ピクチャの表示:#1, なし, 左上 (0,0), (100%,100%), 255, 通常
◆プラグインコマンド:MP_ループ設定 1 off
◆スイッチの操作:#0010 動画再生中 = ON
◆スクリプト:SceneManager._scene._spriteset._pictureContainer.children.some(function(sprite) {
:     : if (sprite.picture() === $gameScreen.picture(1)) {
:     : $gameTemp._pictureSprite = sprite;
:     : return false;
:     : }
:     :});
◆ウェイト:3フレーム
◆ループ
◆条件分岐:スクリプト:!$gameTemp._pictureSprite.bitmap
◆スイッチの操作:#0010 動画再生中 = OFF

:分岐終了
◆条件分岐:動画再生中がOFF
◆条件分岐:スクリプト:!$gameTemp._pictureSprite.bitmap
◆ループの中断

:分岐終了
◆ウェイト:10フレーム
◆条件分岐:ボタン[決定]が押されている
◆ピクチャの消去:#1

:それ以外のとき
◆条件分岐:ボタン[キャンセル]が押されている
◆ピクチャの消去:#1

:分岐終了

:分岐終了

:分岐終了

:以上繰り返し
◆プラグインコマンド:MP_動画設定 Test02
◆ピクチャの表示:#1, なし, 左上 (0,0), (100%,100%), 255, 通常
◆プラグインコマンド:MP_ループ設定 1 on
===================================================
ただ、最初の動画再生が終了して、次の動画に自動的に再生することはできたのですが
(プラグインコマンドの「MP_ウェイト設定 1(ピクチャ番号[1]の動画が再生するまでイベントを待機します)」と同じ挙動?)
スキップすることができません。
おそらくイベントの組み方が悪いのだと思います。
また、ご教示いただいたスクリプトを使うと
何故か動画再生時の動作が非常に重くなってしまい(通常60程度のFPSが10ぐらいに)
実用するのは難しそうです。

自分がスクリプトの使い方自体、間違っている可能性もあるので
ご教示いただければ幸いです。
奏ねこま
記事: 502
登録日時: 2016年1月20日(水) 20:04

Re: トリアコンタン様の「動画のピクチャ表示プラグイン」について

投稿記事by 奏ねこま » 2019年5月17日(金) 09:51

ボタンが効かないのは「動画再生中がOFFのとき」しかボタン判定していないせいです。
もしかしたら重いのもウエイト10が「動画再生中がOFFのとき」の中にあるせいかもですね。
Huyuzora
記事: 26
登録日時: 2015年12月16日(水) 22:24

Re: トリアコンタン様の「動画のピクチャ表示プラグイン」について

投稿記事by Huyuzora » 2019年5月17日(金) 11:27

奏ねこま 様

ご返信、ありがとうございます。
確かに、動画再生中のスイッチが不要だったようで
余分な部分をなくした所、動作が軽くなり
想定通りの動きもできるようになりました。

解決済みとさせていただきます。

ご教示、ありがとうございました。

“MV:質問” へ戻る