BTCMobs
BTCMobs は Soon(近日公開) のエクステンションです。まだリリースされておらず、ダウンロードもバージョン番号もなく、公開までにエントリーやフィールドが変更される可能性があります。このページは、参考情報として、現在の開発ビルドを文書化しています。これは古い「BTC Mob」プラグインではありません。モブエンジンはエクステンション自体の中にあり、別途インストールするプラグインはありません。
概要

BTCMobs を使うと、TypeWriter の Web パネルだけで、カスタムモブとインタラクティブな NPC を構築できます。モブテンプレートは、1 体のクリーチャーを記述します。ベースとなる Minecraft のエンティティ、レベル、体力、防御力、スキル、ドロップ、派閥、任意の 3D モデル、任意の繁殖です。スポナーと自然スポーンは、テンプレートが、ワールドのどこに、いつ現れるかを決めます。スキルとドロップテーブルは、モブが何をし、何を残すかを定義します。
モブの行動はすべて、TypeWriter に公開されます。モブがスポーンしたとき、ダメージを受けたとき、スキルを使ったとき、死亡したときに、イベントが発火します。ファクトと変数は、体力、レベル、数、距離を報告します。アクションは、モブをスポーン、デスポーンさせたり、スキルを使わせたりします。これにより、クエスト、ダイアログ、シネマティックが、戦闘に反応したり、戦闘を開始したりできます。
同じエクステンションは、NPC 側の機能も提供します。モブテンプレートを、クライアント側の NPC として表示し、ダイアログのインタラクション、クエスト目標、カメラシネマティック(モデルのボーンに取り付けたカメラを含む)、プレイヤーごとのボーンの表示、ModelEngine または BetterModel のアニメーション制御に対応します。このエクステンションは、TypeWriter の BTC ビルド(Paper/Folia)を対象としています。
機能
- モブテンプレート — クリーチャーごとに 1 つの
btc_mob_templateエントリー。エンティティタイプ、レベル、体力、攻撃ダメージ、防御力、スキル、ドロップ、派閥、脅威テーブル、モデル、アニメーション。 - スポナー — スポーン上限、スポーン間隔、ウォームアップを持つ、リージョンベースのスポナー。ファクトで制御できるため、プレイヤーごとに異なるペースを体験できます。
- 自然スポーンの置き換え — ワールド、バイオーム、確率に基づくルールごとに、バニラのクリーチャーのスポーンを BTC モブに置き換えます。
- スキル — スキルは、TypeWriter のアクションの順序付きリスト、またはスクリプトの 1 行です。テンプレートは、スポーン、攻撃、ダメージ、死亡、繰り返しのタイマーなどのトリガーに、スキルを割り当てます。
- ドロップテーブルとアイテム — バニラの素材、カスタムアイテム、経験値、再利用可能なテーブル。確率と数量は、モブのレベルに応じて変化します。
- クエストとの連携 — ストーリーがモブや戦闘に反応できるよう、イベント、ファクト、変数、スキル目標を提供します。
- NPC — ダイアログ、インタラクション、注視、カメラの動作を持つ、テンプレートベースのクライアント側 NPC。
- シネマティック — TypeWriter のシネマティック中に、モブをスポーンさせる、スキルを使う、NPC にフォーカスする、モデルのボーンに乗る。
- 永続化 — ストレージアーティファクトを設定すると、スキルのクールダウン、カウンター、オーラ、脅威テーブル、ボスバーは、再起動後も維持されます。
- MythicMobs のインポート — オペレーター向けのコマンドが、MythicMobs のパックを BTCMobs のページに変換します。
インストール
BTCMobs は開発中で、公開ダウンロードはありません。以下は、開発ビルドの構成の説明です。
- TypeWriter の BTC ビルド(BTC Core、Paper または Folia)を、ビルドが依存関係として宣言している Quest と RoadNetwork のエクステンションとともに実行します。
- BTCMobs の JAR を
plugins/Typewriter/extensions/に配置し、サーバーを再起動します。独自のモブエンジンが同梱されているため、別途 BTCMobs プラグインは必要ありません。 - 必要な任意の連携をインストールします。エクステンションは、実行時にそれらを検出します。3D モデル用の ModelEngine または BetterModel、プレースホルダーを公開するための MiniPlaceholders、PacketEvents、Vault、DecentHolograms、WorldGuard です。
- モブカタログメニューを開くには、BTC GUI エクステンションがインストールされている必要があります。
- Web パネルで
btcmobs_storageアーティファクトを作成し、ゲームプレイの状態が保存されるように、btcmobs_configエントリー(下記参照)から参照します。
はじめに
この手順では、ゾンビのボスを作成し、アリーナにスポーンさせ、その死亡に反応させます。
- TypeWriter の Web パネルでマニフェストページを開きます。BTCMobs Storage アーティファクトを追加し、続いて BTCMobs Global Configuration エントリーを追加して、
storageにそのアーティファクトを設定します。 - スタティックページを開き、Native BTC mob template を追加します。後で再利用する
id(たとえばcrypt_warden)を付けます。entityTypeをZOMBIEに、displayをプレイヤーに見せる名前に設定し、続いてlevel、maxHealth、attackDamage、armorを設定します。 - Native BTC mob drop table を追加し、
dropsを 1 行に 1 つの宣言で列挙します。たとえばDIAMOND 1 0.25(素材、数量、確率)やexp 20to40です。テンプレートのdropsリストで、ID によってテーブルを参照します。 - Native BTC mob skill を追加し、
actionsに、実行する TypeWriter のアクションを順に入力します。テンプレートでは、skillsにスキルの ID を追加します。たとえばwarden_slam~onTimer:100は、100 tick ごとに使用します。 - BTCMobs Spawner を追加します。
mobTypeにテンプレートの ID(表示名ではありません)、world、リージョンの 2 つの角corner1とcorner2、defaultMaxMobs、defaultCooldown(tick 単位)を設定します。 mobNameにテンプレートの ID を設定した On BTCMob die イベントを追加し、そのtriggersを、ダイアログ、報酬、ファクトのモディファイアにリンクします。- ページを Publish し、リージョンの中心から
defaultActivationRange(デフォルトは 24 ブロック)以内まで歩いて近づくと、モブが出現します。待たずにテストするには、/tw btcmobs spawners force <id>を使用します。
/tw btcmobs spawn <template> <level> <amount> は、選んだレベルで、テンプレートを自分の隣にスポーンさせます。コマンドは、読み込まれているテンプレートの ID を補完候補として表示します。
仕組み
テンプレートは説明に過ぎません。生きているモブは、スポナー、自然スポーン、Spawn a mob アクション、または spawn コマンドが要求したときに作成されます。それ以降、モブは、トリガーに割り当てられたスキルを実行し、死亡すると、ドロップの宣言を抽選します。すべてのステップは TypeWriter のイベントも発火するため、クエストとダイアログは、戦闘の経過を追うことができます。
スキルとトリガー
テンプレートの skills リストのエントリーは、skillId または skillId~trigger と書きます。ID は、btc_mob_skill エントリーの ID(または名前)です。トリガーは、モブがそれをいつ実行するかを示します。onSpawn、onAttack、onDamaged、onDeath、onKill、onDespawn、onInteract、onTeleport、onExplode、onRanged、onProjectile、または、繰り返しのスキルを表す onTimer:<ticks> です(onTimer:5s のように秒単位も受け付けられます)。トリガーのないスキルは、モブが発生させるすべてのトリガーで実行されるため、必ずトリガーを付けてください。conditions はすべてのスキルの行をフィルタリングし、targeters は、それらが共有するターゲットを選びます。
ドロップの宣言
ドロップテーブル、またはテンプレートの drops リストの各行は、次のいずれかです。
- 数量と確率が任意の、バニラの素材。たとえば
BONE 2 0.5。 - 数量と確率が任意の、
btc_mob_itemエントリーの ID または名前。 - 経験値を表す
exp 10またはexp 10to20。 - BTC カタログのアイテムを表す
btc:<item_id> [amount or range] [chance] [+n/m]。+n/mのトークンがない場合、数量はモブのレベルに応じて、レベル 1 の x1 からレベル 100 の x6 まで増加します。 - 別のドロップテーブルの ID。その場で展開されます。
不明な宣言は、警告としてログに記録され、スキップされます。
NPC
NPC は、クライアント側のエンティティとしてプレイヤーに表示されるテンプレートです。BtcMob NPC definition は、mobType でテンプレートを指定し、表示名、そのオフセット、tick の有無を設定します。BtcMob NPC instance は、spawnLocation、任意の activity、group、追加の data で、それを配置します。NPC のデータエントリーは、モデルの見た目を変更します。プレイヤーごとのボーンの表示、ボーンを別のモデルのものに入れ替えるアタッチメント、昼と夜のための ModelEngine のスタンス、歩行速度です。
コマンド
すべてのコマンドは /tw btcmobs の下にあります。短いエイリアスの /tw btc と /tw btcmobsadmin は、同じツリーを実行します。すべてのノードには、btcmobs.command.<node> 形式のパーミッションがあります(下記参照)。
| コマンド | 説明 |
|---|---|
/tw btcmobs mobs [list] | 読み込まれているモブテンプレートを一覧表示します。 |
/tw btcmobs mobs listactive | 現在生きているモブを一覧表示します。 |
/tw btcmobs spawn <template> [level] [amount] | 自分の隣にテンプレートをスポーンさせます(数量は 1 から 64)。summon と mobs spawn は同じ意味です。 |
/tw btcmobs mobs kill <template> [radius] | 自分の周囲にいる、テンプレートのモブを倒します(デフォルトの半径は 48)。 |
/tw btcmobs mobs killall [radius] | 自分の周囲にいるすべての BTC モブを倒します(デフォルトの半径は 48)。 |
/tw btcmobs mobs info | 見ているモブの情報を表示します。 |
/tw btcmobs skills [list] | 読み込まれているスキルを一覧表示します。 |
/tw btcmobs cast <skill> | 自分自身からスキルを使用します(skills cast、test cast、profile cast は同じ意味です)。 |
/tw btcmobs spawners [list] | スポナーエントリーを一覧表示します。 |
/tw btcmobs spawners info <id> | 1 つのスポナーを表示します。 |
/tw btcmobs spawners force <id> [amount] | 条件と上限を無視して、スポーンを強制します。 |
/tw btcmobs spawners reload | ネイティブエントリーを再読み込みします。 |
/tw btcmobs reload | ネイティブエントリーを再読み込みします。 |
/tw btcmobs menu | モブカタログメニューを開きます(最初の 45 件のテンプレート、アルファベット順)。 |
/tw btcmobs items list と get <item> [amount] | カタログのアイテムを一覧表示する、または受け取ります。 |
/tw btcmobs items give <player> <item> [amount] | カタログのアイテムを、プレイヤーに渡します。 |
/tw btcmobs signal <uuid> <signal> | アクティブなモブにシグナルを送信します。 |
/tw btcmobs test mechanic, condition, targeter <line> | スクリプトの 1 行を、テストとして実行します。 |
/tw btcmobs test on <uuid or nearest> <line> | 特定のアクティブなモブに対して、スクリプトの 1 行を実行します。 |
/tw btcmobs import mythic [path] | MythicMobs のパックを BTCMobs のページに変換します(デフォルトのフォルダーは、TypeWriter のデータフォルダー内の import/BtcMob)。migrate mythic は同じ意味です。 |
/tw btcmobs audit, coverage, registrydump, variables, placeholders | 読み込まれているテンプレート、スキル、スポナー、レジストリに関する診断。 |
/tw btcmobs debug, version, modeldiag | 実行時の診断、バージョン、近くのモブの BetterModel の状態。 |
パーミッション
| パーミッション | 許可される内容 |
|---|---|
btcmobs.command.main | /tw btcmobs のルートとそのヘルプ。デフォルトで全員に付与されます。 |
btcmobs.command.version | version と v。デフォルトで全員に付与されます。 |
btcmobs.command.mobs, .mobs.spawn, .mobs.kill, .mobs.killall, .mobs.info, .mobs.listactive, .mobs.stats | mobs と spawn のコマンド。 |
btcmobs.command.skills, .skills.cast | スキルの一覧表示と使用。 |
btcmobs.command.spawners, .spawners.list, .spawners.info, .spawners.force, .spawners.reload | spawners コマンド。 |
btcmobs.command.items, .items.list, .items.get, .items.give | items コマンド。 |
btcmobs.command.menu, .menu.open | カタログメニュー。 |
btcmobs.command.import, .migrate, .migrate.mythic, btcmobs.import | MythicMobs のインポート。 |
btcmobs.command.test, .test.mechanic, .test.condition, .test.targeter, .test.cast | test コマンド。 |
btcmobs.command.audit, .variables, .debug, .modeldiag, .signal, .reload, .profile | 対応する診断コマンド。 |
btcmobs.command.admin, btcmobs.admin | 管理用のルート(/tw btcmobsadmin)。 |
btcmobs.command.*, btcmobs.* | 上記のすべて。 |
btcmobs.command.main と btcmobs.command.version を除くすべてのパーミッションは、デフォルトではオペレーターのみです。modeldiag コマンドは、エクステンションが登録する btcmobs.command.modeldiag(デフォルトはオペレーター)を確認します。
プレースホルダー
プレースホルダーは、MiniPlaceholders にのみ公開されます。公開に PlaceholderAPI は使用されません。構文は <name:argument:argument> です。
| プレースホルダー | 戻り値 |
|---|---|
<btcmobs_caster> と <btcmobs_caster:field> | テンプレートの ID、またはプレイヤーに紐付いたモブのフィールド: name、type、level、hp、maxhp、percent、uuid。 |
<btcmobs_looking> と <btcmobs_looking:field> | プレイヤーが見ている BTC モブ(視線の射程まで)の、同じフィールド。いない場合は空。 |
<btcmobs_var:name> | BTCMobs のグローバル変数の値。 |
<btcmobsdamage_top:BOSS:POSITION:field> | ボスのダメージランキングの、ある順位にいるプレイヤー。フィールド: name、damage、raw_damage、percent、uuid。 |
<btcmobsdamage_self:BOSS:field> | 閲覧しているプレイヤー自身のランキング。フィールド: damage、raw_damage、percent、position。 |
<btcmobsdamage_participants:BOSS>, _total, _max_health, _last_update | ボスのダメージランキングの合計値。 |
エントリー
57 件のエントリー(拡張機能のソースから生成)。
アクション7
- BTC Mob Script ActionNative BTC mob script action
- Btcmob NPC HideHide a BtcMob NPC
- Btcmob NPC ShowShow a BtcMob NPC
- Despawn Btcmobs MobDespawn a mob from BTCMobs
- Execute Btcmobs SkillExecutes a BTCMobs skill
- Open BTC Mob MenuOpen the native BTC mob catalogue
- Spawn Btcmobs MobSpawn a mob from BTCMobs
イベント9
- Btcmob NPC HitWhen a BtcMob NPC is hit or hits a player
- Btcmob NPC InteractWhen the player clicks on a BtcMob NPC
- Btcmobs Interact EventBTCMob Interact Event
- Btcmobs Kill Player EventBTCMob Kill Player Event
- On Btcmob DamageWhen a BTCMob takes damage.
- On Btcmob DespawnWhen a BTCMob despawns without being killed by a player.
- On Btcmob DieWhen a player kill a BTCMob.
- On Btcmob SkillWhen a BTCMob casts a skill.
- On Btcmob SpawnWhen a BTCMob spawns in the world.
目標2
- Btcmob Skill ObjectiveBtcMob Skill Objective
- Interact Btcmob NPC ObjectiveInteract with a BtcMob NPC
ファクト9
- Btcmob Count FactCount the number of active BTCMobs of the specified type
- Btcmob Health Percentage FactReturns the current health percentage of the nearest BTCMob of the specified type
- Btcmob Level FactReturns the level of the nearest BTCMob of the specified type
- Btcmob NPC Animation Playing FactReturns 1 when the specified ModelEngine animation is playing
- Btcmob NPC Distance FactReturns the distance between the player and the BtcMobs NPC
- Btcmob NPC Health Percentage FactReturns the NPC's current health percentage
- Btcmob NPC Presence FactReturns 1 when the BtcMobs NPC is currently spawned
- Btcmob NPC Threat Table Size FactReturns the size of the BtcMobs threat table
- Btcmob NPC Visibility FactReturns 1 if the player can currently see the BtcMobs NPC
シネマティック5
- Btcmob CinematicSpawn a BTCMob during a cinematic
- Btcmob NPC Bone Camera CinematicAttach the cinematic camera to a bone of a BtcMob NPC's model
- Btcmob NPC Camera CinematicFocus on a BtcMob NPC during a cinematic
- Btcmob NPC Skill CinematicTrigger a BtcMob NPC Skill
- Btcmobs Skill CinematicTrigger a BTCMob Skill during a cinematic
エンティティ2
- Btcmob NPC DefinitionA BtcMob that can be used as an NPC
- Btcmob NPC InstanceAn instance of a BtcMob NPC
エンティティデータ4
- Btcmob NPC AttachmentReplace a bone of a BtcMob NPC model with one from another model
- Btcmob NPC Bone VisibilityControl BtcMob NPC bone visibility with criteria
- Modelengine Stance DataModelEngine stance configuration for day/night animations
- Mythicmob Speed DataChange the walking speed of a BtcMob
インタラクション境界3
- Btcmob NPC Camera BoundA camera bound that focuses on a BtcMob NPC with custom focus offset
- Btcmob NPC Look at Interaction BoundAn interaction which forces the player to look at a BtcMob NPC
- Mythicmob Look at Interaction BoundAn interaction which forces the player to look at the nearest BtcMob of a specific type
変数8
- Btcmob NPC Active Animations VariableReturns the active ModelEngine animations for the BtcMobs NPC
- Btcmob NPC Faction VariableReturns the BtcMobs NPC faction
- Btcmob NPC Health Percentage VariableReturns the current health percentage of the BtcMobs NPC
- Btcmob NPC Health VariableReturns the current health of the BtcMobs NPC
- Btcmob NPC Level VariableReturns the BtcMobs NPC level
- Btcmob NPC Max Health VariableReturns the maximum health of the BtcMobs NPC
- Btcmob NPC Power VariableReturns the BtcMobs NPC power
- Btcmob NPC Stance VariableReturns the current stance applied to the BtcMobs NPC
アーティファクト1
- Btcmobs StorageBTCMobs Storage Artifact
マニフェスト1
- Btcmobs ConfigBTCMobs Global Configuration
定義6
- BTC Mob Drop TableNative BTC mob drop table
- BTC Mob ItemNative BTC mob item
- BTC Mob SkillNative BTC mob skill
- BTC Mob TemplateNative BTC mob template
- BTC Natural SpawnBTCMobs Natural Spawn Replacement
- BTC SpawnerBTCMobs Spawner with Corner System
トラブルシューティング
スポナーが何も起こさず、ログに "references unknown mob template" と表示される。 mobType は、エディターに表示される名前ではなく、btc_mob_template の ID でなければなりません。テンプレートエントリーから ID をコピーしてください。同じルールは、btc_natural_spawn、スポーンとデスポーンのアクション、NPC デフィニションにも当てはまります。
スポナーが上限に達しない、または 1 で止まる。 2 つの角が同じ点であるリージョンは、defaultMaxMobs を 1 に制限します。上限は、そのスポナーが所有するモブを、場所を問わずカウントします。スポナーが機能するのは、プレイヤーがリージョンの中心から defaultActivationRange 以内にいる間のみです。
スポナーが一部のプレイヤーに対して何もしない。 リージョンの近くにいるプレイヤーごとに、スポナーはワールド、次に conditionLines、次に criteria を確認し、リージョン、クールダウン、スポーンを見る前にすべてが通る必要があります。criteria を満たさないプレイヤーはスキップされます(診断行「criteria did not match」がプレイヤーごとに一度だけログに記録されます)。criteria が、すでにスポーンしたモブを取り除くことはありません。...Fact フィールド(maxMobsFact、mobsPerSpawnFact など)は、引き続き数値のデフォルトを上書きします。
自然スポーンの置き換えが発動しない。 このエントリーが置き換えるのは、サーバーがすでに生成するスポーン(自然、チャンク生成、デフォルト)のみです。ワールドの paper-world-defaults.yml の spawn-limits が 0 の場合、バニラのクリーチャーはスポーンせず、何も置き換えられません。最初に一致したルールが優先され、maxNearby を 0 にすると、上限なしを意味し、モブがゼロという意味ではありません。
モブが Attack や Death のアニメーションをループ再生する、または歩かない。 モデルが取り付けられたとき、modelAnimations がループ再生するのは待機タイプのアニメーションだけで、そこに置かれた攻撃や死亡の名前は無視されます。単発のアニメーションはテンプレートの modelLifecycle(スポーン、攻撃、被弾、死亡)で設定し、対応するタイミングで再生されます。死亡アニメーションは、モデルが消える前に最後まで再生されます。モデルに存在しない名前はテンプレートごとに一度だけログに記録され、そのタイミングは無音のままです。歩行アニメーションは、まだモブによって駆動されず、NPC 側のみです。
スキルやドロップが通知なしに欠けている。 サーバーログを確認してください。不明なドロップの宣言、不明なアイテム、無効な確率は、警告として記録され、スキップされます。ID が btc_mob_skill エントリーと一致しない skills のエントリーは、モブがそれを使用するときにログに記録されます。
On BTCMob despawn が発火しない。 このイベントは、追跡中のモブが死亡せずにワールドから去り(自然なデスポーン、プラグインによる削除、ワールド外への落下)、radius ブロック以内にプレイヤーがいるときに発火します。モブが死亡したとき(On BTCMob die を使用)、チャンクがアンロードされるだけのとき(再ロード時にモブは再び取り込まれます)、Despawn アクションや /tw btcmobs mobs kill で取り除いたときには発火しません。mobName が空の場合はすべてのモブに一致します。spawn、die、damage、interact の各イベントも同様です。
関連エクステンション
- BetterModel — BetterModel は、BTCMobs がモブと NPC のモデルに対して制御できる、2 つのモデルバックエンド(
modelProvider)のうちの 1 つです。