![見出し画像](https://assets.st-note.com/production/uploads/images/141842093/rectangle_large_type_2_318b75058e90994d2d0d784c71253be0.png?width=1200)
Luaがわからなくても大丈夫!Robloxで簡単な敵性NPCを作ろう!
※こちらは2024/05/26に開催されたLTイベント(https://moze.connpass.com/event/318087/)の内容に補足説明を加えたものです。
公式アセットのゾンビモデル(https://create.roblox.com/docs/ja-jp/resources/npc-kit)を利用して、プレイヤーを追いかけたり攻撃したりするNPCを簡単に作る方法をお伝えしようと思います。
1,ゾンビモデルと、リグモデルの準備
最初にゾンビモデルと、新規NPC用のリグモデルを呼び出します。
ツールボックスを開き、「Zombie」で検索し、バツ印の右横のアイコンをクリックして検索オプション画面を開きクリエイターを「Roblox」に絞ります。
![](https://assets.st-note.com/img/1716650353491-rr07XZiXBS.png)
![](https://assets.st-note.com/img/1716650356472-QodBQZkuq6.png)
![](https://assets.st-note.com/img/1716650355628-3CzkLeRoBW.png?width=1200)
次にアバタータブからリグビルダーをクリックして呼び出し、リグモデルを作成します。
![](https://assets.st-note.com/img/1716650923843-d19v9TRwqE.png?width=1200)
2,ゾンビ要素の移植
次にゾンビ要素を、呼び出したリグに複製します。
ゾンビモデルの子要素である「Animations」「Animate」「Health」「NPC」「RnxNpcSounds」「Configuration」を複製し、
リグモデルにペーストします。
![](https://assets.st-note.com/img/1716651018253-1f0PTLnmqG.png?width=1200)
![](https://assets.st-note.com/img/1716651038239-ZhmU28trgq.png?width=1200)
消さずに残してください。
さらに、HumanoidRootPartの下にある「AlignOrientation」も忘れずにコピー&ペーストします。
![](https://assets.st-note.com/img/1716651096300-VJfSqZtSpf.png?width=1200)
![](https://assets.st-note.com/img/1716651143638-hvfQsrjL9N.png?width=1200)
3,「ZombieFriend」タグの設定
次にタグの設定です。
このままでは同じゾンビ仲間や自分自身も襲ってしまうので、
リグモデルのプロパティに「ZombieFriend」というタグを設定します。
NPCスクリプトの設定でZombieFriend同士は襲わないようになっています。
![](https://assets.st-note.com/img/1716651228742-usm91nVNbx.png?width=1200)
タグについては詳しくはを参照ください。
これで基本のNPCができました。
しかし個性がないので、アレンジする方法もお伝えします。
4,アレンジ方法1、モデルの変更
一番手軽なのは、自分のアバターを実際に着替えさせて、リグビルダーでマイアバターを呼び出す方法です。
![](https://assets.st-note.com/img/1716685299193-ACJNJeOKiz.png)
任意のプレイヤーのリグを呼び出したい場合は「Load Character Pro」プラグインを使ってプレイヤーのリグを呼び出すことができます。
![](https://assets.st-note.com/img/1716651503648-Aq77hbi4Ib.png?width=1200)
また、特定のキャラクターバンドルを「Character Creator」プラグインを使用して、呼び出すこともできます。
Robloxホーム画面のマーケットプレイスで、「キャラクター」で検索して表示されるのがキャラクターバンドルです。
![](https://assets.st-note.com/img/1716655086486-IlhtxqyzZD.png?width=1200)
![](https://assets.st-note.com/img/1716655149636-QMuaDgMsg1.png?width=1200)
![](https://assets.st-note.com/img/1716651639599-RQyH1DHHTB.png?width=1200)
好きなキャラクターをゾンビにしてみましょう。
5,アレンジ方法2、動きのカスタマイズ
ゾンビモデルから移植した「Configuration」でダメージや攻撃範囲、「NPC」スクリプトで移動スピードなどを設定します。これにより、NPCの動きや攻撃特性を細かく調整することが可能です。
![](https://assets.st-note.com/img/1716651833770-mpbgK3wMbs.png)
![](https://assets.st-note.com/img/1716651937553-mcXl3LJG4a.png)
6,アレンジ方法3、アニメーションの変更
最後にアニメーションの変更です。
「Animations」フォルダの「AttackAnimation」や「DeathAnimation」、「Animate」スクリプトの「run」や「idle」を変更することで、NPCの動きをカスタマイズします。
![](https://assets.st-note.com/img/1716688274107-LKZF2U77jT.png)
アニメーションの用意ですが、アニメーションエディタで作成したり、Blenderで作成したfbx形式のアニメーションをインポートし、使うことができます。(詳しくは、https://create.roblox.com/docs/ja-jp/animation/usingをご覧ください)グループ作成している場合、アニメーションの所有者とエクスピリエンスの所有者が異なるとエラーとなるのでお気を付けください。
また、マーケットプレイスのアニメーションを適用することもできます。
マーケットプレースのアニメーションを使用するときは、URLのIDとアニメーションIDが違い、そのままでは使用できないので、お気を付けください。
「Load Catalog Item」プラグインなどを利用して、アニメーションファイルを呼び出し、そちらを使用しましょう。
![](https://assets.st-note.com/img/1716654648259-3szbRKf7bG.png?width=1200)
![](https://assets.st-note.com/img/1716654670598-zaMEf7CO6i.png?width=1200)
![](https://assets.st-note.com/img/1716652334650-U90B24xxBO.png?width=1200)
![](https://assets.st-note.com/img/1716652320070-g2AkKn1gyk.png?width=1200)
また、ゾンビ要素の移植のところで、元々あったLocalScriptのAnimationスクリプトを取っておくように伝えましたが、LocalScriptの「run」や「idle」をコピーし、ServerScriptの「run」や「idle」に設定することで、プレーヤーを呼び出していた場合、そのプレイヤーがカスタマイズしている「いつもの」動きに設定することができます。(忍者風の動きをセットしていれば忍者風に、モデル風をセットしていればモデル風に)
ちなみにLocalScriptはプレイヤーの動作で使用されるもので、NPCの動作では無効となっているので、元々のAnimationスクリプトがそのままでも問題ありません。
7,ゾンビ要素以外の基本のNPC設定について
※この章はトークイベントで説明が漏れてしまった部分の追記です。
リグの要素のHumanoidオブジェクトの設定により、NPCの名前や体力の表示についてカスタマイズすることができます。(https://create.roblox.com/docs/ja-jp/characters/name-health-display)
また、NPCに会話させたいときは、TextChatService:DisplayBubbleを使用することができます。
(https://create.roblox.com/docs/ja-jp/chat/bubble-chat#npc-bubbles)
これでNPCは完成です!
あとは、ツールボックスから武器を選んでプレイヤーに持たせたり、
テンプレートから背景を選ぶことで、それだけで簡単なゲームになります。
地形ツールもありますが、扱いがちょっと難しいのでテンプレートを使うのが楽です。
![](https://assets.st-note.com/img/1716653194988-IFQ81xoDTa.png?width=1200)