①はじめに
NPCの動きをverseでコントロールできるようになればBOSS戦などに応用可能です。
応用的な理解に向けて今回はNPCを動かすためのverseについて基本を確認します。
NPCスポナーの基本的なつかい方をチェックしておくことをオススメしております!
②verseをひらきます
verseテンプレートをNPC Behavior Basicで選択し、NPC Behavior Nameをnpc_behavior_informationとします。
(※名前は何でも大丈夫です。)
作成ボタンをおして、ファイルをひらきます。verseがひらきました。
③verseテンプレートNPC Behavior Basicの説明
2023年1月実施のv28.10アップデートで、verseテンプレートという考え方が生まれました。
verseテンプレートVerse Deviceが、いままで使用してきたverseです。
verseテンプレートNPC Behavior はNPCの動きに関するスクリプトで、移動に関する簡単な例が記載されていて使うことができます。
verseテンプレートNPC Behavior BasicもNPCの動きに関するスクリプトですが、ゼロから構築するものです。
今回は、NPC Behavior Basicのverseスクリプトについて説明していきます。いまひらいているverseに対して補足したスクリプトを下に用意しました。いまひらいているverseにコピー&ペーストください。#メモ部分に各行の説明をしていますが、#メモはスクリプトに影響をあたえないのでそのままで大丈夫です。
#usingは道具箱です。verseで使用するたくさんの道具がおさめられていて、状況に応じてusingを追加します。
using { /Fortnite.com/AI }
using { /Verse.org/Simulation }
#NPCの動きに関するデバイスをつくっていますが、プログラミングの世界では"クラス"と呼びます。ここにクラス名を書きます。
npc_behavior_information<public> := class(npc_behavior):
#NPCがスポーンされたときに起きるイベントを書きます。
OnBegin<override>()<suspends>:void=
#初期状態では、Hello, NPC!とログに表記されるイベントが書かれています。
#Print("Hello, NPC!")
#これをハローワールドと表記されるように書き換えます。
Print("ハローワールド")
#NPCが消去されたときに起きるイベントを書きます。例えば、プレイヤーに撃破されたときなどに起きるイベントです。
#今回は使わないです。
OnEnd<override>():void=
#初期状態では、Goodbye, NPC!とログに表記されるイベントが書かれています。
Print("Goodbye, NPC!")
つまり、あくまでNPCの動きに関するverseスクリプトということになります。ほかの仕掛けと連携させるためにverseスクリプトを書く際は、いままでどおりverseテンプレートVerse Deviceを選択して使用します。そのあたりはこちらにまとめています。
④verseを適用してみる
さきほどのスクリプトの効果を確かめます。
コンテンツブラウザでNPCキャラクター定義をつくり、名前をNPC_Infoとします。
このあたりの操作が苦手な方はこちらをチェックしてみてください!
NPC_Infoをひらきます。下画像のように設定を進めてください。NPC動作スクリプトには、さきほど作成したverseスクリプトを適用します。Cosmeticではキャラクターは何でもよいですが、検索画面でjellieと入力するとゼリーくんがでてきます。
画面左上でセーブすことをお忘れなく。
いま作成したNPC_Infoをビューポートにドラッグ&ドロップします。
セッションを開始します。NPCがスポーンしたときに、画面左上にハローワールドと表示されました。
ログにもハローワールドと表示されています。大成功です。
⑤まとめ
verseテンプレートNPC Behavior Basicでハローワールドと表示させる方法を学習しました。
いままでのverseとは違う部分もありますが、NPCの動きに関する基本を確認しました。
基本を理解できたので、もっと面白いNPCの動きをverseで実現していきたいと思います。
乞うご期待!
お疲れさまでした。
ご質問やご感想はお気軽にコメント欄まで!