Citizensの概要と基本ワークフロー
1. Citizensとは
Citizensは、Bukkit/Spigot/Paper系サーバーでNPC(Non-Player Character)を作成・管理するプラグインです。プレイヤー型NPCや各種Mob型NPCを配置し、見た目、セリフ、装備、向き、移動、クリック時の処理などを設定できます。また、Java APIを使って独自のTraitやNPC連動機能を実装できます。
公式リポジトリ:https://github.com/CitizensDev/Citizens2 公式Wiki:https://wiki.citizensnpcs.co/
2. NPCはどう構成されるか
NPCは単なる見た目の人形ではなく、概念的には次の要素から構成されています。
- 基本情報:ID、名前、エンティティ種別、位置、所有者、スポーン状態など。
- エンティティ状態:体力、年齢、属性、Mob固有状態など。使用可能な項目はエンティティ種別とMinecraft版に依存します。
- Trait:NPCに紐づく機能や永続設定。例:
SkinTrait、Equipment、LookClose、CommandTrait、Text、HologramTrait。 - 外部連携:PlaceholderAPI、Vault、他のプラグイン、独自プラグインなど。使える機能は各連携先によって異なります。
3. 最短の基本操作
作成・選択・変更
/npc create 案内人 /npc select <IDまたは名前> /npc rename 受付スタッフ /npc list /npc id
NPC選択の標準アイテムは棒(Stick)です。棒を持ってNPCを右クリックするか、/npc select <IDまたは名前>で選択できます。現行ソースでは新規NPC名から同名プレイヤーのスキンを取得しようとする設定も既定で有効です。設定やスキン取得状況によっては取得できないため、特定スキンを確実に使いたい場合は/npc skin <プレイヤー名>を実行してください。
/npc create の標準タイプは公式ソース上 PLAYER です。別のMobにする場合は --type を指定します。
/npc create 村人店員 --type VILLAGER /npc create 飾り用アーマースタンド --type ARMOR_STAND
エンティティ種別や作成フラグはサーバーのCitizens版により異なるため、/npc help create を確認してください。
セリフ・装備・スキン・動作
/npc text /npc equip /npc skin Notch -l /npc lookclose /npc command add say こんにちは! /npc hologram add いらっしゃいませ!
/npc text:話しかけられた際などに表示する文章を編集します。/npc equip:対象NPCの装備エディタを開きます。/npc skin:主にプレイヤー型NPCのスキンを設定します。/npc lookclose:近くのプレイヤーへ視線を向ける機能を切り替えます。/npc command:クリック時に実行するコマンドを設定します。/npc hologram:NPCの上などに複数行の文字を表示します。
注意:NPCの会話テキスト、クリック時コマンド、ホログラムは別の機能です。要件に合ったものを選んでください。
4. 選択状態と所有権
多くの設定コマンドは「選択中のNPC」を対象にします。選択されていない場合は、先に /npc select <IDまたは名前> を実行してください。
他の人が作成したNPCを編集できるかどうかは、所有権と権限によって変わります。サーバー管理用NPCは管理者に所有させる、またはサーバー所有として扱う運用が安全です。
5. スポーンと削除の違い
- Despawn:NPCを一時的にワールドから退場させます。通常はNPCデータそのものを削除しません。
- Spawn:保存済みNPCをワールドに出現させます。
- Remove:NPCデータを削除します。復旧できるとは限らないため、バックアップなしの一括削除は避けてください。
- Temporary NPC:作成フラグにより一時NPCを作れる版があります。永続保存・自動削除の詳細は対象バージョンのヘルプで確認してください。
/npc despawn /npc spawn <IDまたは名前> /npc remove <IDまたは名前>
6. 外部アドオンとの区別
Citizensは基礎となるNPC管理プラグインです。クエスト・高度なスクリプト・ガードAIなどは別プラグインが追加する場合があります。Wikiのコマンド一覧にも外部プラグインが追加したコマンドが混在することがあるため、各機能の提供元を確認してください。
例:Denizenは会話・スクリプト・トリガーなどを追加できます。Sentinelなどは戦闘・ガード機能を拡張します。これらをCitizens本体の標準機能と混同しないでください。