Trait・AI・NPCの相互作用
1. Traitとは
TraitはNPCに装着できる機能単位です。NPCごとに設定を保存でき、NPCの動作・外観・インタラクションを拡張する役割を担います。Citizens本体のコマンドによって自動的にTraitが付加されることもあれば、/trait コマンドやJava APIで追加・削除することもできます。
/trait help /trait <Trait名> /trait add <Trait名> /trait remove <Trait名>
Traitのコマンドはサーバー版によって詳細が異なります。Trait名もクラス名とゲーム内の登録名が同じとは限らないため、/trait help と使用したい機能の公式ドキュメントを確認してください。
2. 代表的なTrait/機能グループ
以下は機能の理解のための分類です。すべてが独立した公開コマンドを持つとは限りません。
| グループ | 代表例・関連機能 |
|---|---|
| 表示・外観 | SkinTrait、Equipment、DisguiseTrait、HologramTrait、MirrorTrait |
| 相互作用 | CommandTrait、Text、Inventory |
| 視線・回転 | LookClose、RotationTrait |
| 移動 | FollowTrait、HomeTrait、CurrentLocation、Waypoints、Navigator |
| エンティティ状態 | MobType、Spawned、HorseModifiers、EntityPose関連 |
| ゲームプレイ | Controllable、DropsTrait、ForcefieldTrait、Gravity、LeashedTrait |
実際の登録一覧は公式ソースのTrait factoryに更新されます。アドオンも独自Traitを登録できるため、Trait名が存在しない場合はプラグインの提供元と導入状態を確認してください。
3. Vanilla AI
/npc ai true /npc ai false
NPCのバニラAIを有効/無効にする設定です。AIを無効にすると、通常のMobが自律的に移動する・敵を追跡するなどの動作が止まる可能性があります。一方、CitizensのNavigatorやTraitによる制御は別の仕組みの場合があり、すべてのNPC機能が同時に停止するという意味ではありません。
NPCが勝手に歩く場合はAI、Navigator、Waypoint、Follow、外部プラグインのスクリプトを切り分けます。
4. LookClose(近くのプレイヤーを見る)
/npc lookclose
NPCが近くのプレイヤーに顔を向ける機能です。現行コマンドには、範囲、対象フィルター、ランダムに視線を動かすか、1人に追従するか、NPCを対象に含めるか、ナビゲーション中に停止するかなどのオプションが案内されています。
例(オプション名の説明用):
/npc lookclose --range 8
視線が不自然な場合は、LookCloseの範囲、head-only/body連動、ランダム視線、Navigator中の設定を確認します。realistic looking は視線判定をより現実的にする一方、計算負荷が増える可能性があります。
5. Follow・Home・Anchor
- Follow:プレイヤーまたはNPCを追いかける機能。
- Home:NPCにホーム位置を設定し、戻る/移動する動作を管理する機能。
- Anchor:名前を付けて位置を保存し、再利用できる機能。
例:
/npc follow <プレイヤー名またはNPC ID> /npc home --help /npc anchor --save entrance
上は概念例です。正しいフラグは /npc help follow、/npc help home、/npc help anchor で確認してください。
6. 攻撃・ターゲット・保護
Citizensにはエンティティ状態に応じて、Aggressive、Target、Targetable、Passive、Forcefield、Vulnerable、Knockbackなどの設定コマンドがあります。挙動は対象タイプ、AI、攻撃可能な属性、Minecraft本体の制約に依存します。
- Aggressive:対象エンティティの攻撃的状態。
- Target:対象エンティティの指定や解除。
- Targetable:他のエンティティからターゲットにされるかどうか。
- Passive:他エンティティへダメージを与えるかどうかに関係する設定。
- Forcefield:NPCに近づいたプレイヤーを押し戻す仕組み。
- Vulnerable/Knockback:ダメージやノックバックに関連する挙動。対応状況はNPC種別による。
ガードや高度な戦闘AIが必要な場合は、Sentinel等のアドオンが必要なことがあります。Citizens本体の基本ターゲット設定だけで高度な戦闘システムが完成するわけではありません。
7. その他の操作・状態
現行コマンド系には、次のような機能があります。
- 重力、飛行可能、水泳、ジャンプ
- 年齢/子ども状態、姿勢、座る状態
- ポーション効果、属性、最大体力
- 音(環境音、被ダメージ音、死亡音)、発光
- 衝突判定、ノックバック、リード可否
- アイテム拾得や死亡時ドロップ
- 名前付き位置アンカー、プレイヤー選別フィルター
各機能の引数・対象エンティティは /npc help <コマンド> を参照してください。
8. Behavior Tree
現行コマンド資料には /npc behavior が掲載され、YAML等の行動定義ファイルを管理する機能があります。これは高度なNPC動作を組み立てる用途です。構文や標準タスク、利用可能な行動はバージョン・設定に依存するため、実際のサーバーに対応したサンプルとヘルプを参照してください。別のスクリプトプラグインの構文と混同しないでください。
9. パフォーマンス上の注意
NPCを大量に配置する場合、常時スポーン、頻繁な経路探索、広範囲のLookClose、近接会話、常時チャンクロードは負荷につながる可能性があります。NPCの数だけでなく、Traitと更新頻度、追跡範囲、チャンク設定を見直してください。