カウンターの紐づけ方法につきまして

ホーム フォーラム CF2.5使用法全般 カウンターの紐づけ方法につきまして

  • このトピックには3件の返信、2人の参加者があり、最後にMidorikoにより4年、 3ヶ月前に更新されました。
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #33545
    Midoriko
    参加者

    度々すみません。
    カウンターとアクティブオブジェクトの紐づけ方法について質問です。
    2.5+ R292.22

    以前敵キャラをPMOで制御する旨について質問させて頂き、
    Foreachループと固定値を利用した紐づけについてご案内頂きました。

    PMOやアクティブオブジェクト同士は非常に安定したのですが、
    唯一カウンターオブジェクト(ヘルスゲージ)には変数を設定できないため
    アクティブオブジェクトの固定値を代入する方法が取れず苦戦しています。

    逆にアクティブオブジェクトにカウンターの固定値を入れる方法では
    上手く動作しません。いろいろと試したのですが、
    Foreachループの理解が浅いこともあり完全な方法が見つかりません。

    サンプルを添付させて頂きました。
    カウンターオブジェクトを完全に紐づけする方法を教えて頂ければ助かります。
    よろしくお願いします。

    ◇追記:添付ファイルを微修正しました。

    • このトピックはMidorikoが4年、 4ヶ月前に変更しました。
    • このトピックはMidorikoが4年、 4ヶ月前に変更しました。
    Attachments:
    You must be logged in to view attached files.
    #33552
    MYTH
    参加者

    >>Midorikoさん

    こんにちは。
    CF2.5のForeachループという機能はかなり便利ですが、同時に少しまどろっこしい部分もありますよね。
    また、あまり詳細な解説のあるサイトがない機能でもあります。私も完全に理解出来ているとは言えません…
    使っていてある程度解ったことを述べさせていただきます。

    「高速ループをオブジェクトの個数分実行する」という説明をされたりしますが、Foreachループにはもっと重要な役割があります。

    フレームエディタ上で複製したり、アクション「オブジェクトを作成」で生成するなどしてできた複数の同一オブジェクトは、イベントで制御する際に「どのオブジェクトに対して実行するか」の情報が必要になるので、それを複数のオブジェクトの中から絞る必要があります。
    これを「インスタンスの特定」と呼びます。

    高速ループにインスタンス特定の機能が備わったものがForeachループです。

    インスタンス特定に関しては以下のトピックをご覧ください。
    私は説明が本当に下手なので…

    リボン状エフェクトの作成方法について

    変数処理が正しく行われなくなるバグ

    基本的に、オブジェクトのインスタンスを特定するのは「そのオブジェクトの条件」だけです。

    固定値の比較の条件においてもそうであり、カウンターオブジェクトをペアリングしたい場合は「カウンターの条件による変数比較」である必要があります。
    イベントエディタでは視覚上同じでも、使っている条件のオブジェクトによって全く動作が異なってくるため、特に注意しなければなりません。

    Foreachループを発動したオブジェクトに対してペアリングするには、「そのオブジェクトの条件による変数比較」を用いますが、今回のカウンターオブジェクトのように変数を持たせることができない場合は「固定値を比較」を用いてください。

    また、Foreachループは各オブジェクトのアクションから発動するものなので、条件として呼び出す時にも発動したオブジェクトと同一のものを指定してください。異なるオブジェクトにしてしまうと正しく機能しなくなります。

    サンプルプロジェクトには幾つかの失敗例も追加していますので、合わせてご覧いただければと思います!

    Attachments:
    You must be logged in to view attached files.
    #33554
    Midoriko
    参加者

    こんにちは、今回も詳しいご回答ありがとうございます‥‥!
    ご回答、サンプルともたいへん分かりやすく、
    参考どころではなくとても身になりました。

    特に、「Foreachループによりオブジェクトのインスタンスが特定されているので
    紐づけする側を親に条件を設定する」という点がなるほどな~という感じで、
    初めて、すこしですがForeachの挙動を感覚的に掴めたように思います。

    オブジェクト種による動作の違いや二値を比較する際
    どちらを親にするかで結果が変わってくる、というのが本当にややこしくて
    まだまだ勉強の必要性を感じました;

    さまざまなケースに応用が効くご回答、たいへん助かりました。
    ありがとうございました。

    #33586
    Midoriko
    参加者

    気付いたことがあるので追記させて頂きます。

    カウンターオブジェクトには変数を設定できないという前提で質問させて頂きましたが、

    ベースフレームなどを設定するプロジェクトのプロパティ→[イベント]タブにて
    『カウンターと文字列の変数を許可する』という項目を見つけました。
    チェックするとカウンターオブジェクトにも変数を設定できるようになりました。

    わたしは2.5+なので2.5では設定できないかもしれません。

    何かの役に立つかもしれませんので、書き込ませて頂きます。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • このトピックに返信するにはログインが必要です。