こんにちは、現在Dopans製のエベントユニット「墓」でいくつか問題が発生しており、プラグイン自体についてお手伝いいただきたくご連絡いたしました。
まず、このプラグインを私のSRPGに適用して動作確認を行ってみました。敵については、HPが0になると正しく指定されたイベントに遷移するようでした。しかし、2体目の敵を倒した際に以下のエラーメッセージが表示されました:
味方1体が倒された場合も同様の現象が発生します。
何か間違っている箇所があるのでしょうか?
こんにちは、現在Dopans製のエベントユニット「墓」でいくつか問題が発生しており、プラグイン自体についてお手伝いいただきたくご連絡いたしました。
まず、このプラグインを私のSRPGに適用して動作確認を行ってみました。敵については、HPが0になると正しく指定されたイベントに遷移するようでした。しかし、2体目の敵を倒した際に以下のエラーメッセージが表示されました:
味方1体が倒された場合も同様の現象が発生します。
何か間違っている箇所があるのでしょうか?
テスト用のプロジェクトを持っていませんが、プラグインの内容を確認しました。そのクラッシュは、墓が壊れたことによるものではなく、検索結果が空配列を返すことが原因です。$gameTemp.enemyGrave() は、マップ上に一致するものが存在しない場合に 0 を返します。一方、$gameMap.event(0) は undefined となるため、次の行で _erased を参照している部分でエラーが発生していると考えられます。669 行目が敵ユニットの分岐、661 行目がアクター側で同様の処理を行っており、これは味方ユニットにも適用される現象です。
一致判定は敵 ID ではなくユニット ID に対して行われます。これは敵ユニットイベントに設定された <unit:x> から取得しており、コード上では meta.unit (小文字)として読み込まれています。プラグイン内のヘルプ文書の一处では <Unit:x> (大文字の U)と記載されており、この表記では認識されません。また、各敵イベントには固有の番号を割り当てる必要があります。クローンユニットは同じ敵 ID を共有するためです。
敵ユニットイベントのノート(メモ)を投稿していただけますか?2番目のイベントでそのタグが欠落しているか、大文字で記載されているため、一致する対象がなくエラーになっている可能性が考えられます。一方、1番目のイベントは正常に動作しているようです。
墓マップでは、<actorgrave:x> がアクター ID を使用し、<enemygrave:x> が敵 ID を使用します。したがって、関連するすべての ID には、それぞれ対応する墓イベントが必要です。スクリーンショットには <actorgrave:3> が表示されていますが、倒れた味方がアクター 3 なのか、それとも別のアクターなのかを確認する価値があります。
そこが問題なんですけど、私はアクターの墓と敵の墓を数値として指定しました。敵の方は正常に動作するのですが、アクターの墓だけがなぜか機能しません。
ご覧の通り、すでにアクターを指定しています。敵の指定は機能するのに、アクターが機能しない理由が分かりません。
了解しました。ユニットタグを再調整したところ、正常に動作するようになったようです。
味方を蘇らせたい場合はどうすればよいですか?その手順は何ですか?
このプラグインを使用した蘇生は、倒れたユニットをターゲット指定するのではなく、独自のスクリプト呼び出しを通じて行われます。イベントの[スクリプト]コマンドでは:
this.unitRaise(eventID);
これにより、バトラーが蘇生され、対応する墓が消去されます。ヘルプには、コアの this.unitRevive(eventID) の代わりにこれを使用すること、通常の蘇生では墓がマップ上に残ったままになるため、と記載されています。
イベントIDをハードコードする必要もありません。アクターの場合:
this.unitRaise($gameSystem.ActorToEvent(3));
敵の場合、<unit:x> の番号に基づいて:
this.unitRaise($gameSystem.EnemyUnit(1));
ユニットのイベントは、そのユニットが死亡中に消去されるため、味方(死亡状態)を対象としたアイテムには、マップ上で選択できる対象が存在しない可能性があります。これが、ターゲットできなかった理由かもしれません。アイテムで蘇生を行いたい場合は、アイテムから共通イベントを呼び出し、そこからスクリプトコマンドを実行するのが一般的です。
うん、それが私が想定していた形状だね。各ブランチはアクターの死亡状態をチェックし、スクリプト呼び出しでアクターIDをイベントに変換するから、そのままの構成で機能すると思う。
注意すべき点は、現状の書き方では倒れている全員を一度に蘇生するようになっていることだ。つまり、1回の使用で4人全員が同時に復活する。それが望む動作なら問題ない。もし1人ずつ蘇生させたいなら、キャラクターごとに別々の共通イベントに分ける(またはブランチの前に「選択肢の表示」を追加する)か、各イベントを個別のアイテムに割り当てることをお勧めする。
アイテムからこれを呼び出している場合、ターゲットを選択する必要がないようにアイテムのスコープを「なし」に設定するといいだろう。なぜなら、倒れた味方はマップ上に存在しないため、ターゲットとして選択できないからだ。