【解決済み】トリアコンタン様の『動画のピクチャ表示プラグイン』にて指定のシーンを表示させたい

そみや
記事: 60
登録日時: 2021年1月25日(月) 01:34

【解決済み】トリアコンタン様の『動画のピクチャ表示プラグイン』にて指定のシーンを表示させたい

投稿記事by そみや » 2021年6月25日(金) 08:21

動画を指定フレームもしくは、指定秒数のシーンを静止画として表示させたいです。

トリアコンタン様が制作された『動画のピクチャ表示プラグイン』MoviePicture.jsの仕様では、
最初から動画を再生させるか、一時停止したシーンから再生させるため、指定のシーンからの表示ができません。

またトリアコンタン様の『動画管理プラグイン』MovieManager.jsを調べてたところ、
指定シーンから表示させる仕様ではあるものの、下記の条件にて使用したいため困っています。

欲しい機能----------------------
・アルファチャンネル付き
・ピクチャ(レイヤ)での階層指定(キャラの前後に動画を表示させたい為)

『動画のピクチャ表示プラグイン』と『動画管理プラグイン』を掛け合わせた機能が欲しいのですが、指定シーンを表示させることは可能でしょうか?

経緯としては...
960×720pxの画像を100枚用意し、数フレーム単位で指定の画像に切り替えようとしています。
現状で『動画管理プラグイン』を使用し、指定シーンを再生 + 一時停止 することで、成功しています。
ただ、アルファチャンネル付きとレイヤ階層が使えないため投稿させて頂きました。

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


[トリアコンタン様の制作プラグイン]
動画のピクチャ表示プラグイン:https://triacontane.blogspot.com/2017/08/blog-post.html
動画管理プラグイン     :https://triacontane.blogspot.com/2016/06/blog-post_12.html
最後に編集したユーザー そみや on 2021年6月26日(土) 13:46 [ 編集 1 回目 ]

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

Re: トリアコンタン様の『動画のピクチャ表示プラグイン』にて指定のシーンを表示させたい

投稿記事by 奏ねこま » 2021年6月25日(金) 13:19

実際に試したわけではないのでダメだったら申し訳ないですが、

コード: 全て選択

$gameScreen.picture(ピクチャ番号).setVideoPosition(秒数);

というスクリプトで再生位置をズラせないでしょうか?
秒数は少数指定可能です。
そみや
記事: 60
登録日時: 2021年1月25日(月) 01:34

Re: トリアコンタン様の『動画のピクチャ表示プラグイン』にて指定のシーンを表示させたい

投稿記事by そみや » 2021年6月26日(土) 06:10

奏ねこま様

ありがとうございます。
ご教授頂いたスクリプトにて指定シーンから再生することが出来ました。
ただ二回目以降にスプリクトが有効にならない為、何かいい方法はないでしょうか?

下記の手順で実行しました。
----------------------------------------------------------------------------------------------------------------------------------------
動画準備(読込) → 動画表示するピクチャ番号指定 → スクリプト → 動画再生 → ウエイト → 動画停止
----------------------------------------------------------------------------------------------------------------------------------------
スクリプトの変数が有効になるのが、一度ピクチャ削除し再度動画を読み込んだ場合のみの様です。
一度リセットしないと、スクリプトが無視され一時停止したシーンの続きから再開されてしまいます。
リセットを行わずに、スクリプト割り込ませる形で実行させたいです。

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

奏ねこま さんが書きました:実際に試したわけではないのでダメだったら申し訳ないですが、

コード: 全て選択

$gameScreen.picture(ピクチャ番号).setVideoPosition(秒数);

というスクリプトで再生位置をズラせないでしょうか?
秒数は少数指定可能です。
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: トリアコンタン様の『動画のピクチャ表示プラグイン』にて指定のシーンを表示させたい

投稿記事by 奏ねこま » 2021年6月26日(土) 07:37

そみや さんが書きました:リセットを行わずに、スクリプト割り込ませる形で実行させたいです。

どういう順番でコマンドを実行したいのか、具体例を示して頂けますか?
そみや
記事: 60
登録日時: 2021年1月25日(月) 01:34

Re: トリアコンタン様の『動画のピクチャ表示プラグイン』にて指定のシーンを表示させたい

投稿記事by そみや » 2021年6月26日(土) 09:11

奏ねこま様

ご返信ありがとうございます。
コマンド実行の具体例を記載させて頂きます。

やりたいことは下記の①~⑧を実行後、⑨⑩⑭のみでループさせ動画シーンを随時切り替えたいです。

※ピクチャ番号を固定値、秒数を変数として扱う。
【自動実行】----------------------------------------------------------------------------------------------------------------
①プラグインコマンド:MP_SET_MOVIE file(動画読込)
②ピクチャの表示:5番(動画をピクチャ5番として取り扱う)
③スクリプト:$gameScreen.picture(ピクチャ番号:5番).setVideoPosition(秒数=マウスの座標X);
④プラグインコマンド:MP_SET_LOOP 5 off(ピクチャ動画5番を再生開始)
⑤ウエイト:10フレーム
⑥プラグインコマンド:MP_SET_PAUSE 5 on(動画を表示したまま再生停止)
⑦スイッチ:"A"をON
⑧イベントの一時消去

【並列処理】スイッチ"A"がONで開始------------------------------------------------------------------------------
⑨スクリプト:秒数=マウスの座標X(現在のマウス座標Xを秒数に代入)
⑩スクリプト:$gameScreen.picture(ピクチャ番号:5番).setVideoPosition(秒数=マウスの座標X);
⑪プラグインコマンド:MP_SET_LOOP 5 off(ピクチャ動画5番を再生開始)
⑫ウエイト:10フレーム
⑬プラグインコマンド:MP_SET_PAUSE 5 on(動画を表示したまま再生停止)
⑭ウエイト:1フレーム
---------------------------------------------------------------------------------------------------------------------------------

⑤、⑫のウエイトは再生停止コマンドが10フレーム程度ないと実行されなかった為です。
上記の条件では⑭ウエイトは不要ですが、もし⑪⑫⑬を扱わなくてもいいのであれば、1フレームでループさせたいです。
何かしらプラグインにアクセスし、変数情報を更新しないといけないと思い⑪⑫⑬を記載していますが、
再生してから即停止という動作が無駄と考えていて、可能であれば停止した状態で動画シーンを切り替えたいです。

長文で申し訳ありませんが、よろしくお願い致します。

[トリアコンタン様の制作プラグインを使用]
動画のピクチャ表示プラグイン:https://triacontane.blogspot.com/2017/08/blog-post.html

奏ねこま さんが書きました:
そみや さんが書きました:リセットを行わずに、スクリプト割り込ませる形で実行させたいです。

どういう順番でコマンドを実行したいのか、具体例を示して頂けますか?
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: トリアコンタン様の『動画のピクチャ表示プラグイン』にて指定のシーンを表示させたい

投稿記事by 奏ねこま » 2021年6月26日(土) 09:46

そみや さんが書きました:コマンド実行の具体例を記載させて頂きます。

表面的な操作ではどうしようもなさそうなので、少々強引ではありますが以下のスクリプトでどうでしょうか。

コード: 全て選択

let id = ピクチャ番号;
let time = 再生位置;
let picture = SceneManager._scene._spriteset._pictureContainer.children.find(c => c._pictureId == id);
picture.bitmap.setCurrentTime(time);

(実行例)

コード: 全て選択

let id = 5;
let time = 2.5;
let picture = SceneManager._scene._spriteset._pictureContainer.children.find(c => c._pictureId == id);
picture.bitmap.setCurrentTime(time);

ご提示いただいた具体例の⑪~⑬なしで、スクリプト実行時点で映像が変わると思います。

このスクリプトは必要最小限の記述であり、指定した番号のピクチャが存在しなかったりピクチャが動画表示中でなかったりした場合などは考慮していません。
そみや
記事: 60
登録日時: 2021年1月25日(月) 01:34

Re: トリアコンタン様の『動画のピクチャ表示プラグイン』にて指定のシーンを表示させたい

投稿記事by そみや » 2021年6月26日(土) 13:46

奏ねこま様

ありがとうございます。
教えて頂いたスクリプトにて欲しかった動作になりました!
60FPSと安定しており、大量の画像を瞬時に切り替えることが可能になりました。
ピクチャ取り扱いには注意しエラーにならない様に使用させて頂きます。

“MV:質問” へ戻る