ページ 12

【解決済み】マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月04日(日) 18:31
by トリュフ
こんにちは。
マップ上のイベントに剣を振らせたり、倒れさせるなど
様々なアクションをとらせたく考えており、
その為のアクション用の画像を用意したのですが
イベントに一回一回その都度 アクションをとらせるのは
非常に膨大な手間がかかるので
全てのイベントに共通して使用できるアクション用のコモンイベントを使って
作業の圧縮を考えております。

詳細は添付画像に書いてあるのですが、
ある変数に代入した数字を「1」とした時に
イベントID 「1」のイベントキャラの画像のファイル名を取得して
そこから別の画像ファイル(アクション画像)にイベントの
グラフィックを変更することで
アクションをさせるという様な事を考えております。
アクションさせたいイベントの画像ファイル名と
アクション用の画像ファイル名を定型化させておけば
一回一回アクションをさせるために手動で画像変更をしていかなくても
コモンイベントで何とか出来るのではと考えた次第です。

もしこれを遂行する場合、スクリプトで再現可能でしょうか?
それとも プラグインが必要になるのでしょうか?

もし方法を知っている方がいらっしゃいましたら教えていただけますでしょうか?

お手数ですがよろしくお願いいたします。

画像

Re: マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月05日(月) 16:03
by しぐれん
方法自体はありますし、その方法で可能ではあります。
ただし、そのためにはツクールのイベントコマンドの動作方法を深く理解する必要があります。

コモンイベントで動作させる方法ですが「移動ルートの設定」というイベントコマンドに「このイベント」という項目があります。
「移動ルートの設定」を記載したコモンイベントを用意し、対象を「このイベント」にしてマップイベントから呼び出すと、呼び出し元のイベントが動きます。
しかし、特定の方法を使うと「このイベント」で動くイベントを任意の対象に変更できます。
(特定の方法と書いているのは、少し複雑なことをやるためです。隠しているわけではありません)

機能的には作成可能ですし、個人的に欲しいと思うプラグインなので作れます。
ツクールの標準の歩行グラフィックは1画像あたり8キャラですので、左上に歩行用のデータを入れて、残りの7か所にアクション用のデータを入れれば可能です。
ただ、そのためには1キャラ分でよいので、画像素材をアップしていただけると助かります。
外部に公開したくないというのであれば、Twitterなりdiscordなりで対応可能です。

Re: マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月05日(月) 18:10
by トリュフ
しぐれん様。

ご返答ありがとうございます。
また、プラグインのご検討までいただき本当にありがとうございます。

画像をアップすることは問題ないのですが、
プラグインの作成まで考慮していただける様な大変ありがたい状況になるとは思っておらず、
情報を全て載せきれておりませんでした。申し訳ございません。
私の作成しているゲームには実は3つほど 複雑な要因がございます。

1つ目は
まず歩行グラフィックの向きが8方向に対応するプラグインを使用していることです。

 下記URLのプラグインを使用しております
(ttp://www.yanfly.moe/wiki/Events_and_Movement_Core_VisuStella_MZ)
 ※プラグインの仕様上 ファイル名の最後に[VS8]の文字が含まれております。

2つ目は
キャラクターの画像が上下左右+右上、左上、右下、左下の 8方向の向きに対応した
画像になってしまっていることです。

3つ目は
また、1キャラクターにつき、アクション含め画像データを2つ以上使う状態になっていることです。
(添付画像の様な状態です※ツクールストアで購入した画像を使っておりますので
画像内には念のためSAMPLE の文字を入れて添付しております。必要であれば文字消せます。)

この様なややこしい状況下でゲームを作成をしているという情報を伝えきれておりませんでした。
大変申し訳ございません。
この様な状況でもアクションを短縮させることは可能でしょうか?

Re: マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月05日(月) 21:02
by しぐれん
サンプル付けても有償素材を張るのはまずいと思うので、画像は消した方が良いです。
そういった場合を想定して、外部から見えない連絡手段を使った方が良いと書きました。
8方向であればそれ相応の対応が必要ですが、不可能ではありません。

ただVisuStella含むなら不可です。
競合を避けつつ書くのが大変ですし、対策用に何かコードを入れるとVisuStellaのライセンスに触れてしまう問題もあります。

Re: マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月05日(月) 22:05
by トリュフ
しぐれん様。

ご返答ありがとうございます。
申し訳ありません。有償素材添付のご忠告ありがとうございます。
削除させて頂きました。
プラグイン競合やライセンスに触れてしまう旨、重々承知いたしました。

ご返答いただいた中で1つだけ疑問がございました。
VisuStellaのプラグイン含まず 8方向対応の場合は
どういう感じの挙動のものになるのでしょうか?

8方向対応だとなおありがたいのはありがたいのですが、
デフォルトの4方向対応で十分ありがたいです。
画像側を工夫するかプラグインの挙動を見て
イベントの条件分岐などを使って対応していけば
十分アクションの幅を広げつつ作業の短縮がはかる事が出来るかと思います。

大変お手間をとらせてしまう事になるかとは思うのですが
そういったプラグインを作成いただくことは可能でしょうか?

Re: マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月06日(火) 04:55
by しぐれん
おそらくは競合しないような形で試作品を作成しました。
「イベント指定でコモン呼び出し」というプラグインコマンドがあるので、これを利用してあれこれしてください。
呼び出したコモンイベントの中で「移動ルートの設定」を「このイベント」で行うと、そちらの想定する動作が可能になります。

Re: マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月06日(火) 19:22
by トリュフ
しぐれん様。

ご返答遅くなってしまい申し訳ありません。
色々テストしてみたところデフォルト環境では無事に動きました。ありがとうございます。

  移動ルートの設定

   このイベント

    this._characterIndex = 4;
    ウェイト 5
    this._originalPattern = 0;
    ウェイト 5
    this._originalPattern = 1;
    ウェイト 5
    this._originalPattern = 2;


の様な設定のコモンイベントを
しぐれん様のプラグインを使用してマップ上のイベントから呼び出す事で
アクションをとらせることに成功致しました(上記の方法で3コマの動きをとらせました)。

ここからは、しぐれん様が作成されたプラグイン外の事ではあるのですが
試しに VisuStellaの8方向プラグインを使用したまま上記アクションをとらせてみたのでご報告致します。
イベントがナナメ向きの状態から上記方法でアクションをとらせた場合は
表示がバグりました。
(例:デフォルトのアクター画像を例にあげるとリードとプリシアの間の透明部分がセンターで表示され、リードとプリシアが半分見切れている状態でした。)
イベントがデフォルトの設定にもある上下左右の向きの状態からアクションをとらせた場合は
なぜか最後の this._originalPattern = 2; の効果しか働きませんでした。

8方向プラグインはキャラクター画像のファイル名に[VS8]の文字を最後に入れることで
8方向用の画像と認識しているようだったので
8方向用の画像ではないデフォルト仕様のアクション用の画像を別に用意しておいて
アクションをとらせる前に、アクション用の画像にグラフィックを強制的に変更することで
イベントが上下左右向きの場合は
VisuStellaの8方向プラグインを使用したままでも上記アクションをとらせることはできたのですが
この場合、画像変更の設定を自ら手動で選択しなければならなくなってしまっている時点で
コモンイベントで全イベントに共通させた命令を実行するというコンセプトから
はずれてしまいました。

"このイベント"で選択されているイベントに使われている画像ファイル名を取得し、
そのファイル名から[VS8]の文字列を抜いたアクション用の画像ファイルに
イベントのグラフィックを変更するようなスクリプトを
移動ルートの設定の中にいれてやれば
VisuStellaの8方向プラグイン を使いつつ
コモンイベントからマップ上のあらゆるイベントに
共通のアクションをとらせることは可能だとは思うのですが、
正直方法が全く分からない状態です。

以上がテストした結果ですが、
しぐれん様の作成されたプラグインは何の問題もなく動きました。
マップ上のイベントIDとコモンイベントを指定するだけで
いつでもコモンイベントで設定したアクションをとらせることが出来るので非常に重宝しそうです。
本当にありがとうございます。

既にかなりの長文になってしまっているところを申し訳ないのですが
プラグインコマンドのイベントをアクターに変化の使い方が
恥ずかしながら分かりませんでした。
こちらはどう設定して使用すれば良いのでしょうか?

Re: マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月06日(火) 22:49
by しぐれん
「イベントをアクターに変化」ですが、イベントの見た目を現在のパーティメンバーを基準に決める機能です。
例えば、拠点に戻ったときに仲間キャラと会話するシーンを作りたい場合などを想定しています。
プラグインコマンドを実際に動かして試すと良いでしょう。

グラフィックの切り替えですが、これもプラグインコマンドで可能な範囲なので処理を追加します。
(変換テーブルを用意するだけで可能なため)

Re: マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月06日(火) 23:33
by トリュフ
ご返答ありがとうございます。

グラフィック変更の機能まで追加していただけるということで
非常に痛み入ります。すごくありがたいです。

イベントをアクターに変化の機能のご説明もありがとうございました。
使用例を交えてご説明いただいたので、どういう機能が理解しやすかったです。
この機能も様々な使い方ができそうで非常にありがたいです。

プロジェクトを新規作成して真っ新な状態のデータにプラグインを入れて
イベントをアクターに変化 の機能をさっそく試してみたのですが
イベント番号0(このイベント)で設定した場合は問題なく動作するのですが
イベント番号に1以上の数値を入れると

ReferenceError
targetEventId is not defined

というエラーが発生致しました。
指定IDのイベントが見つからないという旨のエラーだと思うのですが
マップ上に存在するイベントID1番を指定し
アクターの1人目(数値上は0)を指定したのですが
上記エラーが発生致しました。

もし、こちらの何か設定ミスがあってのエラーだったら申し訳ありません。
新規プロジェクトを立ち上げてテストしたので大丈夫だとは思うのですが
一応ご報告を差し上げます。

Re: マップ上のイベントにアクションをとらせるのを定型化し作業短縮をしたいです

Posted: 2021年7月07日(水) 20:25
by しぐれん
そちらの不具合ですが、修正しました。
公開直後は細かい部分のテスト忘れでバグを埋め込みがちですので。

1:1対応が可能な画像の切り替えを実装しました。
別件の作業もあるので、バグテストは最小・ヘルプも不完全です。