NPC (ノンプレイヤーキャラクター) は、エクスペリエンスに多くの深みを加えることができます。次のNPCのすべてが視覚的にカスタマイズでき、行動が変更され、ゾンビ/兵士はタグシステムを使用してプレイヤーや他のキャラクターを攻撃してエリアを防衛できます。
ゲームでNPCを使用するには:
NPCのアイテムページで、緑の 取得 ボタンをクリックし、取引を確認します。
Roblox Studio で、ツールボックス ( ビュー → ツールボックス ) を開きます。
ツールボックスの インベントリ セクションを選択します。
NPC を見つけてクリックして、場プレースに追加します。
キャラクター構造
各NPCモデルには、通常次のオブジェクトが含まれています:
オブジェクト名または [タイプ] | 種類 | 説明 |
---|---|---|
アニメーション | Folder | 含まれるもの Animations , 例えば AttackAnimation または DeathAnimation 。 |
初期ポーズ | Folder | ポーズ情報を含みます。 |
アニメート | Script | キャラクターリグでアニメーションをロードして再生します。詳細は アニメート を参照してください。 |
[アクセサリ] | Accessory | 帽子、武器などの NPC に可能な複数の Accessories の 1 つ |
健康 | Script | 通常、Humanoid 時間経過で体力を再生します。これを無効にすると、キャラクターが体力を再生できなくなります。 |
ヒューマノイド | Humanoid | Humanoid 関連のプロパティを管理し、Humanoid.Health、Humanoid.WalkSpeed、Humanoid.DisplayDistanceType などがあります。 |
NPC | Script > | 移動、攻撃などのキャラクター固有の動作を定義する次のオブジェクトを親とします:: 家政婦 ( ModuleScript )は、使用された資源を解放するのに便利なクラスを定義します。: ラグドール ( ModuleScript ) は、キャラクターをゆるい物理影響の体に変換する機能を定義します (いくつかのヘルパー機能を定義する RigTypes ModuleScript を親とします)。 |
RBXNPCサウンド | Script | 走行、死亡などのキャラクターサウンド効果に関連する行動を定義し、管理します |
体のパーツ | BasePart | モーター6D または制約オブジェクトを介して HumanoidRootPart または隣接するボディパーツに付属するさまざまなキャラクターボディパーツ。詳細については、ボディパーツを参照してください。 |
ヒューマノイドルートパーツ | BasePart | リグの根と考えられる特別な見えないパーツ;これは、キャラクターの PrimaryPart の Model でもあります。 |
構成 | Configuration | さまざまな動作を調整する値オブジェクトを含みます。詳細は 設定 を参照してください。 |
デザインノート
NPC キットを使用するときは、次のデザインノートを覚えておいてください:
NPCの視覚的外観は、様々な[ボディパーツ]オブジェクトを追加/修正したり、Accessoryオブジェクトを追加することでカスタマイズできます。
兵士、ねばねばぼうぼうぼうのゾンビ、および NP-C 9000 ロボットは、Rthro を彼らの装備の基礎として使用します。しかし、RO-01 ロボットは、 アッパートルソ を使用して接続された推進部品を追加する修正された Rthro ベースを使用します。この方法で単純なジョイントを使用すると、オリジナルのベースリグを変更せずに、キャラクターの追加の幾何学を含めることができます。
基本レベルでは、NPC アニメーションは、AnimationIdスクリプトポーズ内の既存のアニメーションオブジェクトの **** を変更してカスタマイズできます、または アニメーション フォルダ内のもの。このような変更は本質的にアセット交換であり、より詳細な変更を行うには、既存のアニメーションのカスタムコピーを作成し、異なる条件でアニメーションを再生するには、 アニメート または NPC スクリプトを直接編集することができます。詳しくは、アニメーションを参照してください。
アニメート
NPC でアニメーション に関連する設定を処理し、次のオブジェクトを含んでいます:
オブジェクト名または [タイプ] | 種類 | 説明 |
---|---|---|
スケールダンピングパーセント | NumberValue | キャラクターがスケーリングされると、アニメーション速度がどのように変更されるかを定義します (1未満は、キャラクターがスケーリングされると、アニメーション再生スケールが逆向きに変更されます)。 |
プレイエモート | BindableFunction | これは、ポーズの仮定を強制するために、他のスクリプトによって呼び出されることができます。 |
[ポーズ] | StringValue | 待機、ジャンプ、歩行などのプレイ可能なアニメーションカテゴリへの参照このオブジェクトは、Animations の数を親にすることができます。 これらの 親は、ポーズが想定されている間、複数のアニメーションの 1つを再生する優先順位を設定します;通常、待機とダンスポーズに多様性を追加するために使用されます。 |
体のパーツ
NPC Model のボディパーツ BasePart は、様々なキャラクターのボディパーツを表し、次のオブジェクトを含んでいます:
オブジェクト名または [タイプ] | 種類 | 説明 |
---|---|---|
アバターパーツスケールタイプ | StringValue | パーツのスケール方法を決定し、値は クラシック 、 比率正常 、または 比率スレンダー です。 |
元のサイズ | Vector3Value | 文字スケーリングが 1 のとき、パーツのサイズを決定します。 |
[添付] | Attachment | スクリプト、効果、および Tool または Accessory のようなオブジェクトが配置中に使用できる個々のパーツに関するポイントを定義します。 |
[モーター6D] | Motor6D | 2つのボディパーツの間のアニメーションジョイント。注意してください は、アニメーションが作成されたときに使用された と一致するため、このオブジェクトの名前を変更しないでください。 |
[共同] | WeldConstraint , Constraint , JointInstance | 2つのボディパーツ間の非アニメーションジョイント。 |
[サウンド] | Sound | 頭または HumanoidRootPart でよく見つかり、リグ内のサウンドを RbxNpcSounds スクリプトによって制御します。 |
構成
それぞれの NPC には、値オブジェクトのコンテナとして機能する階層内の Configuration オブジェクトが含まれています。NPC スクリプトによって、さまざまな動作を調整するのに使用されます。別に指定されない限り、これらはすべてのキャラクタに適用されます。
オブジェクト名または [タイプ] | 種類 | 説明 |
---|---|---|
破棄するOnDeath | BoolValue | NPC 全体が死亡後すぐに破壊される原因。ラグドールが永続するように、これを無効にします。 |
パトロール有効化済み | BoolValue | NPCを起始位置の周りの領域で放浪させます。 |
パトロール半径 | NumberValue | NPC がスタートポジションから離れる最大距離を定義し、 PatrolEnabled が true であると仮定します。 |
ラグドール有効化済み | BoolValue | 死ぬときに NPC が動かなくなるので、壊れるのではなくなります。 |
攻撃ダメージ | NumberValue | NPCに攻撃されたときに被害者が失う体力の量を定義します。これはゾンビと兵士のキットにのみ適用されます。 |
攻撃遅延 | NumberValue | ショットの間の最小数秒の数を定義します。これは兵士キットにのみ適用されます。 |
攻撃モード | NumberValue | タグ付けシステム に基づいて、兵士が攻撃するものを指定します。これは兵士キットにのみ適用されます。 |
攻撃半径 | NumberValue | NPCが攻撃を開始する前に潜在的な被害者から最大距離を定義します。これはゾンビと兵士のキットにのみ適用されます。 |
クリップ容量 | NumberValue | 兵士がリロードする前に発射できる弾数を定義します。これは兵士キットにのみ適用されます。 |
リロード遅延 | NumberValue | 兵士の武器クリップが再読み込まれるまでに何秒必要かを定義します。これは兵士キットにのみ適用されます。 |
タグを割り当てる
NPC スクリプトは、CollectionService タグを使用して、他のキャラクターやプレイヤーに対する攻撃を管理します。次の表からの様々なタグが以下のように割り当てられます:
他のNPCにタグを割り当てるには、プロパティの タグ セクションまたはStudioの タグエディタ を使用して、NPCのトップレベルに割り当てます。
タグを Player キャラクターに割り当てるには、Script を スターターキャラクタースクリプト に CollectionService:AddTag() 呼び出しで追加できます。例:
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
タグ | 目的 |
---|---|
ソルジャー敵 または ソルジャー友達 | 兵士が、 攻撃モード 設定値に基づいて攻撃すべきかどうかを決定します。兵士の 攻撃モード が に設定されたとき、他のキャラクターは 兵士敵 としてタグされて、攻撃可能と考えられる必要があります。兵士の 攻撃モード が に設定されると、 ソルジャーフレンド タグがないすべてのオブジェクトが攻撃可能と考えられます。兵士の 攻撃モード が に設定されると、これらのタグは完全に無視され、兵士はすべてのキャラクターを攻撃します。 |
ゾンビの友達 | このタグは、ゾンビがキャラクターに攻撃してはいけないかどうかを判断するために使用されます。適用すると、ゾンビはタグ付きのキャラクターに従順になります。 |