ホーム › フォーラム › CF2.5使用法全般 › アクティブオブジェクトのコピー、削除について
-
投稿者投稿
-
2018-12-09 3:07 am #15840MW参加者
いつもお世話になっております。アクティブオブジェクトのアニメーショングラフィックを変更して行く際に、不具合?みたいなものに出くわしたので報告させて頂きます。
私は今、複数のフレームを扱う2Dアクションゲームを作っておりまして、その際、ステージを跨いで同じ敵キャラクターが登場するように設定しています。ステージを跨いで同じキャラクターが登場する以上、グラフィックやAIを変更する際はある程度手軽にそれらがこなせるように、敵キャラクターのAIをイベントグループで括って扱っているのですが、新たに更新したキャラクターのアニメーションを、別ステージに輸送する際、それらがうまくいかない、ないし、妙なバグ?のようなものを発見しました。以下、長文になりますが、起きた出来事や、その際生じた疑問点を具体的に記します。
1、私はまず、ステージ1の敵キャラクターの戦闘レイヤー(レイヤー名)に存在している敵アクティブオブジェクトのアニメーションを変更し、ステージ2に輸送しようとしました。(アップロードするデータではすでに変更してあります。)そしてステージ2のイベントエディタにて、輸送したい*1敵キャラクターのオブジェクトをクリックし、オブジェクトが関連するイベントを全て表示させた上で、それらが関係するイベントが表示されなくなるまでイベントを消し、更にそのキャラクターのプロパティに存在するオブジェクトグループまで消した後で、輸送したいキャラクターを全て削除しました。(これらは質問用データの、”キャラクター”のフォルダ内に格納されています。)しかし、レイヤーの編集画面の”キャラクター”フォルダ内には、消した筈のオブジェクトが何故か表示されたままになっており、プロパティを開いてみても、それらのオブジェクトのX、Y座標は確認できませんでした。イベントにもレイヤーにも存在しないこれらのオブジェクトは一体何の役目を負って、何処に格納されているのでしょうか?
又、これらのオブジェクトを完全に削除する方法はあるのでしょうか?*1 ”モンスター 1″のみでも不具合は捕捉できます。もしご確認の際は、イベントエディタや戦闘レイヤーの”モンスター 1″や、それらに関連するイベントのみ削除して確認して頂けると手軽かもしれません。
2、その次に私はステージ1の戦闘レイヤーに存在する敵キャラクターをコピーして、ステージ2に張り付けてみましたが、1の現象が起きた際に残ったオブジェクトの名前が邪魔をして、オブジェクトの名前がずれて輸送されてしまいました。オブジェクトの名前を指定するイベントをいくつか組んである以上、これでは輸送した意味が無く、又、ステージ数もそれなりの数に上るため、どのようにオブジェクトを輸送したらいいか困り果てています。同じ行動ルーチンを持った敵キャラクターや、そのアニメーションを、手軽に他のフレームに輸送したり、アニメーションのデータのみを簡単に置き換える手段は他にありますでしょうか?
3、アクティブオブジェクトが幽霊のようになる現象が気になった私は、ステージ2の編集画面にて、試しに”モンスター 1″のイベントに全く手を付けていないまま、モンスター 1 を削除してみました。すると本来関連するイベントがある場合、CTF側からそれでも削除しますか?という質問が来る筈なのですが、何の質問も来ないまま、素直に削除されてしまいました。その後私はイベントエディタを見てみたのですが、”モンスター 1″に関わるイベントの条件タグがBad event!で埋め尽くされていました。この現象も、1、2の現象と関わっているのでしょうか?
全体的に見て、オブジェクトの総数は1000には程遠いので、以前教えて頂いた、オブジェクトの数が1000を超えると動かない仕様とは違うものかもしれません。また、アクションゲーム自体、同じオブジェクトや同じAIを使いまわすことがある程度定石であるため、割と本当に困り果てています・・・。・・・大変不躾なのですが、他に簡単にそれらを各フレームごとに使いまわす方法があれば、教えて頂けるととても幸いです・・・。長文失礼いたしました。
Attachments:
You must be logged in to view attached files.2018-12-09 3:27 am #15845MW参加者以下、アップロードしたファイルのアドレスを貼っておきます。あいことばはCTFです。
http://whitecats.dip.jp/up/download/1544293435.zip
Attachments:
You must be logged in to view attached files.2018-12-11 2:00 am #15859ASDキーマスターオブジェクトの削除の手順を工夫することで消すことができました。
まずフレームイベントで、新規行に『実行しない』の条件を設定し、消したいオブジェクトを作成するアクションを設定します。
次に、上記で追加した作成イベント以外の、消したいオブジェクトに関連するイベントを全て削除します。
イベントが削除し終わったら、フレーム上のオブジェクトを削除します。
最後に、最初に追加した作成イベントを削除します。
この手順をモンスター1に適用したところ、フレームエディタのリストからもオブジェクトが消えました。
但し、全てのケースでこの手順が有効とは限りませんのでご注意ください。複数のフレームで同じオブジェクトを使う場合は、プロパティから『グローバルオブジェクト』に設定すると、どこか1箇所のフレームで行った変更が他のフレームのオブジェクトにも適用されるようになります。
イベントを複数のフレームで共有する場合は、『グローバルイベント』に記述することで全てのフレームで有効なイベントになります。先述のグローバルオブジェクトに設定したオブジェクトのオブジェクトイベントに記述しても同様に、そのオブジェクトが存在するフレームで有効なイベントになります。2019-01-03 3:32 am #15944MW参加者返事が遅れ、大変申し訳ありません。
教えて頂いた手順を使って、オブジェクトを削除できることを確認しました。
又、各オブジェクトのグローバル化についても、現在並行的に行っています。全てのオブジェクトやイベントをグローバル化した場合、負荷などの問題が生じる可能性がありそうなので、適用するオブジェクトは選ぶつもりですが、固定的な行動ルーチンで、臨機応変に変えて行きたいデータなどは、選別してグローバル化して行こうと考えています。
まだまだ未熟な質問をしてしまい、大変お手数、ご迷惑おかけしました。
教えて頂いた情報を糧にして、より一層、精進していきたいと思います。大変有難うございました。 -
投稿者投稿
- このトピックに返信するにはログインが必要です。