今回は、ActionRPGKitで簡単にクエスト機能を実装する方法を紹介します。
0からクエスト機能を作成すると非常に難しいと思いますので、すぐにクエスト機能を実装したいのであれば、ActionRPGKitがおすすめです。
このアセットならコードを一切書かずに簡単にクエスト機能を作ることが出来ます。
ActionRPGKitでクエスト機能を実装する【Unity】
まずは、NPCオブジェクトを作成するところから始めます。
NPCを作成する
NPCは、こだわりがないのであればCubeやSphereなどでもOKです。私は、Ethanを使用することにします。何かしらのオブジェクトをシーン上に配置します。
NPCには、コライダと「Scripts」→「QuestSystem」にある「Quest Trigger C」スクリプトを追加しておきます。
コライダのIs Triggerはチェックを入れて起きます。これはNPCに接触した際に会話ウィンドウを開くための処理です。
NPCの子オブジェクトにクエストを作成
続いて、NPCが持つクエスト情報を作ります。NPCの子に空のオブジェクトを作り名前を「Quest1」にします。クエストの数に応じてQuest2、Quest3という感じで増やします。
今作ったQuest1に「Scripts」→「QuestSystem」にある「Quest Client C」と「Dialogue C」スクリプトを追加します。
Quest Clientにあるテキストの内容を変更していきます。とりあえず例として、Cubeを拾うクエストを作ってみます。
「Talk Test」は初めてNPCと会話を行った際に流れるメッセージです。
「Ongoing Quest Text」はクエストを受けたがまだクエストを達成していない際に流れるメッセージです。クエストを受けて連続でNPCに話しかけるとこのメッセージが表示されます。
「Finish Quest Text」はクエストを達成して話しかけた際に表示されるメッセージとなります。
それぞれに対応したコメントを入力するようにしましょう。
NPCオブジェクトを選択して、Quest Trigger CのQuest Clientsに今作ったQuest1を設定します。
クエストデータを追加する
様々なクエストの情報は、「Database」の「QuestDataC」プレハブに登録されています。この中に、「Cubeを拾ってくる」という新しいクエストデータを登録します。
Quest Dataの下にある「+」ボタンをクリックし、新しいクエストデータを作ります。
「Quest Name」はクエストの名前を入力します。
「Finish Progress」にはいくつ拾ったらクエスト達成かを入力します。
この辺は各々好きなように設定するようにしてください。
クエストのは「Quest Id」という番号で紐づけされます。今回新たに追加したクエストデータは画像のようにQuest IDが8になります。
Quest1に戻って「Quest ID」を8にします。
Cubeをシーンビューに追加する
クエスト対象となるCubeをシーンビューに1個作成します。
Box Colliderと「Scripts」→「QuestSystem」にある「Quest Progressive C」スクリプトを追加します。コライダのIs Triggerにはチェックをいれます。
Quest Idには、先ほどのクエストに対応させるため8にします。Typeも「Trigger」に変更します。
実行結果
ここまで出来たらゲームを実行してみます。
NPCに近づいて、「E」キーを押すことで会話イベントが発生します。
クエスト内容については「Q」キーで確認することが出来ます。
これまでの処理をActionRPGKitで作っていますが、一切ソースコードを書かずに行える内容となっていて、やはりRPGを作る際に強力な助っ人になるアセットだと思いますね。