MythicMobs NPC
MythicMobs NPC 拡張は MythicMobs のエンティティを TypeWriter の NPC システムに統合し、完全な 3D モデルサポートを備えた複雑でアニメーションする対話型キャラクターを実現します。
機能
- MythicMobs 統合 — 任意の MythicMob を永続的な NPC として使用でき、設定を完全にサポートします。
- 3D モデルサポート — BetterModel と ModelEngine をネイティブにサポートし、モデルの表示を自動管理します。
- オーディエンスグループ — TypeWriter のオーディエンスシステムを使って、特定のプレイヤーグループに NPC を表示します。プレイヤーごとの NPC 用に
PlayerGroupをサポートします。 - 表示制御 — プレイヤーごとの細かな表示制御と、参加するプレイヤーの自動処理。
- インタラクション — NPC との対話時にクエストや会話を発動でき、クリックの種類をカスタマイズできます。
- アニメーション — ModelEngine/BetterModel API を通じてアニメーション、スタンス、移動状態を制御します。
アーキテクチャ
モデル統合
この拡張は 3D モデルのレンダリングに BetterModel と ModelEngine の両方をサポートします:
- BetterModel
- ModelEngine
BetterModel は推奨のモデルプロバイダーです。この拡張は最適な表示制御のためにネイティブの EntityTrackerRegistry API を使用します:
- モデルの表示に
registry.spawnIfNotSpawned(player)を使用 - モデルの非表示に
registry.remove(player)を使用 - プレイヤーごとのモデル表示を完全にサポート
ModelEngine も互換 API を通じてサポートされます:
- ベースエンティティデータに
setForceViewing/setForceHiddenを使用 - BetterModel が利用できない場合は自動的にフォールバック
注意: モデルは MythicMob の YAML ファイルで設定する必要があります。TypeWriter は表示を自動管理しますが、エンティティにモデルを適用することはありません。
オーディエンスグループ
この拡張は NPC の表示を制御するために TypeWriter のオーディエンスシステムをサポートします:
# PlayerGroup を使用すると、各プレイヤーは自分専用の NPC インスタンスを見ます
group: player_group_entry_id
PlayerGroup を使用する場合:
- 各プレイヤーは専用の NPC エンティティを持ちます
- NPC はオーディエンス外のプレイヤーには見えません
- 参加やワールド移動を行うプレイヤーの自動処理
エントリー
- エンティティ定義 — MythicMob NPC Definition:MythicMob ベースの NPC を定義。MythicMob NPC Instance:NPC をワールドに配置。
- アクション — Show NPC:プレイヤーに NPC を表示。Hide NPC:プレイヤーから NPC を非表示。
- ファクトと変数 — ファクトで NPC の体力、存在、距離を確認します。変数を使ってレベル、パワー、状態のデータにアクセスします。
- イベントとシネマティック — NPC Interact Event:クリック時に発火。NPC Cinematic:シーンで NPC を使用。
クイックスタート
- 1. アクションを発動する — アクションエントリーを使って拡張と連携します:show_npc、hide_npc。コマンド、NPC、イベント、その他のエントリーから発動できます。→ show_npc → hide_npc
設定オプション
NPC Definition
| Option | 説明 |
|---|---|
mobType | 使用する MythicMob の内部名 |
ticking | サーバー側(実エンティティ)は true、クライアント側(パケットベース)は false |
showDisplayName | NPC の上にネームタグを表示するかどうか |
cancelInteractAnimation | 操作時の腕を振るアニメーションを無効化 |
NPC Instance
| Option | 説明 |
|---|---|
spawnLocation | NPC をスポーンさせる場所(動的な位置に対応) |
group | 表示制御のためのオーディエンスグループ |
activity | NPC の挙動のためのエンティティアクティビティエントリー |
依存関係
| Extension | 必須 | 用途 |
|---|---|---|
| QuestExtension | 必須 | コアクエストエンジン。 |
| BasicExtension | 必須 | 拡張のコアユーティリティ。 |
| EntityExtension | 必須 | エンティティ管理フレームワーク。 |
| RoadNetworkExtension | 必須 | NPC のパスファインディングと道路ネットワーク。 |
| PlaceholderAPI | 任意 | @Placeholder フィールド用。 |