Automateの使い方やできることがわかるブログを目指しています。Agentsでドラ○エIII風の性格診断Botを作ってみました。ドラ○エIIIの性格診断って?ゲームを始める際にいくつか質問に答えて、主人公の性格を決めます。性格によって、パラメータの上がり方が変わったりする面白いシステムです。Agentsで作ってみました。ブロック分け再現するにあたって、いくつかのブロックに分けることにします。8質問の内容によって最後の質問が変わるので、そこまでの部分と最後の質問とで分けることにしました。それぞれでTopicsを分けて作っていきます。ドラ○エIIIの性格診断の仕組みについて今回の性格診断の仕組みについて軽く解説を。ドラクエIIIの性格診断では、質問の回答によって次の質問が変わってきます。固定で10問とかではなく、質問の回答に応じて合計の回答数も変わってきます。先に説明したように、回答の内容によって最後の質問も変わってきます。あとは質問の道程は無関係に、最終的なルートに応じて性格が決定されます。多少違うルートから来ても、最終的な質問と答えが一緒であれば同じ性格になります。質問を作るここからは実際に作っていきます。回答の方法にはいくつか種類がありますが、今回はYES/NOで回答して欲しいのでIdentifyからBooleanを選びます。questionの欄に質問を入れて、質問は完成です。分岐を作る次は回答の内容によってルートに分岐を作っていきます。conditionで分岐を作ることができます。すると、こんなふうになります。したら、左の方のConditionをいじっていきます。variableとなっているので、Var1を選択。3つ目の欄をTrueとします。これで質問にYESと答えたら左の分岐へ。NO(それ以外)なら右の分岐へ流れていきます。非常に簡単でわかりやすいですね。解説Questionのところ。as」「Var1(Boolean)」と書かれています。これは「質問の回答をVar1という変数(入れ物)に入れますよ」と書いてあります。Conditionの方では1つ目の欄でVar1を指定しました。これは、Var1の値を見ていますよ、ということを表しています。2つ目の欄は"条件"を表しています。」Var1とイコールだったら・・・という事が書いてあります。3つ目の欄は「何と?」ですね。「何が」イコールだったら、ここの分岐に来るの?ということを表しています。to(イコールだったら)ここの分岐に来る」ということを表しています。右の方のConditionは、それ以外の場合に行きます。今回はNOのときのみ該当します。コレを繰り返していくコレを何回か繰り返して性格診断の仕組みを作っていきます。特徴として、次のルートは自由に変更することができます。線を掴んで、クイッとすれば接続先を変えられます。非常に直感的でわかりやすい。他のルートに合流して回答を再利用することもできますし、無限ループを発生させることもできます。今回は同じ質問は作らず、ルートのやりくりで対応しています。ルートの線を見ると結構複雑な感じですが、やってることはかなり単純で特に難しいことはありませんでした。topicsから作成済みのtopicを選択して、最後の質問トピックに移動させます。(まだ作ってない場合は後ほど設定)最後の質問を作成するこちらもあまり変わりませんが、YES/NOで答えられないものもあるため、選択肢をこちらで用意することにしました。optionsを使用します。optionを選択すると選択肢を増やすことができます。2つ以上作成することも可能です。最後に診断結果を表示して、完了です。コレも最後の質問の分だけつくっていきます。厳しかったこと今回質問や分岐などを含めると1トピックで100以上のカード?アクション?を使いました。150とかいってます。数が増えてくると動きがもっさりしてきます。耐えかねるレベルでした。普通に使用していたらこんなに大きくなることはないでしょうし、なるべくTopicsは分割してモジュール化したほうが再利用性もメンテナンス性も向上するので、そのようにすべきと思います。エラーで落ちるようなことはありませんでしたが、やりすぎに注意しましょう。ちなみに動かす分には問題はありませんでした。デモサイトデモサイトで公開することもできるのですが、怒られそうなのでやめておきます。勉強会とかで声をかけてもらえれば、全然お見せします!お気軽にお声がけください~。Agentsを触ってみた感想としては、かなり直感的で誰でも作れそうだということ。それから全体的にユーザーフレンドリーだなと感じました。本当に誰でも作れると思います。下記の参考リンクから試せると思うので、ちょっとでも興味があるなら是非触ってみてほしいです。要望としては、変数を自分で作成できるようにして欲しい。Automateからの応答しか変数に入れることができない。Agents編集画面で自由に変数を作成させて欲しい。イベントレポート先日10/29にPowerAppsもくもく+LT会を開催いたしました。困ったときに助けてくれるリンク集PowerAppsで困ったとき。支援サービスを提供しています。アプリ起動時にパラメータを送る。)わかりにくい!知りたいことが書いていない!記事に誤りがある!この記事イケてないな!などありましたらご指摘いただけると幸いです。コメントまたはTwitterの方までお願いします。はてなブログをはじめよう!botherntuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。