メインコンテンツまでスキップ

BetterModel

BetterModel のアニメーション付き 3D モデルを TypeWriter の NPC として利用。アニメーションアクション、ボーン制御、シネマティックに対応。

有料v1.5エンティティとモデル
必要TypeWriter0.9BetterModelQuest extension (TypeWriter)Basic extension (TypeWriter)Entity extension (TypeWriter)RoadNetwork extension (TypeWriter)

概要​

BetterModel 拡張機能は、BetterModel プラグインを TypeWriter に接続します。Blockbench でモデルとそのアニメーションを作成し、BetterModel に導入してから、TypeWriter でエンティティとして使います。definition(定義)がどのモデルを使うかを指定し、instance(インスタンス)がワールド内に配置し、オーディエンス、アクティビティ、インタラクション、ダイアログの話し手といった、TypeWriter の通常のエンティティの仕組みがそのまま使えます。

モデルはパケットでプレイヤーごとに描画されるため、同じ NPC でも、プレイヤーごとに異なる状態を見せられます。表示するボーン、グロー、装備を変えられます。この拡張機能はさらに、アニメーションを再生・停止するアクション、モデルやプレイヤーの手足をアニメーションさせるシネマティックエントリ、アニメーション付きモデルのボーンに乗るカメラも追加します。

機能​

  • モデルエンティティ — definition と instance によって、任意の BetterModel モデルを、オーディエンス、アクティビティ、インタラクションに対応した NPC にできます。
  • 自動アニメーション — 待機、歩行、ストレイフ、ジャンプ、飛行、攻撃、被ダメージ、インタラクトのアニメーションが、エンティティの状態に応じて再生されます。名前は変更できます。
  • アニメーションのアクション — 任意のトリガーから、配置済みモデルのアニメーションを再生または停止します。
  • プレイヤーごとのボーン制御 — criteria に応じて、ボーンの表示/非表示や、グロー、色合い、エンチャントの輝き、明るさを設定します。
  • カスタムヒットボックス — Hitbox でボーンに結び付けたクリック領域、またはモデルの hitbox ボーンから自動で作られる領域。
  • ボーンの置き換え — Attachment または Passenger で、ボーンを別のモデルのボーンと入れ替えます。
  • プレイヤーアニメーション — BetterModel のプレイヤーの手足のアニメーションを、アクションまたはシネマティックでプレイヤーに再生します。
  • シネマティック — エンティティシネマティックで記録からモデルを動かし、ボーンカメラで撮影します。
  • インタラクション表示 — 名前付きのモデルは、名前の上にインタラクトまたはダイアログの表示を出します。これは、インタラクトの目標とインタラクションのエントリで制御されます。

インストール​

  1. サーバーに BetterModel をインストールし、モデルが読み込まれることを確認します。ボーンカメラには BetterModel 2.1.0 以降が必要で、拡張機能は BetterModel 3.3.0 に対してビルドされています。
  2. TypeWriter の公式拡張機能 Quest、Basic、Entity、RoadNetwork をインストールします(拡張機能はこの 4 つすべてに対してビルドされています)。
  3. ストアから BetterModel を入手し(上のボタンを参照)、JAR を plugins/Typewriter/extensions/ に置きます。
  4. サーバーを再起動します。ログに [BetterModelExtension] BetterModel detected: initializing と表示されます。BetterModel がない場合は、BetterModel plugin not found; extension disabled と表示されます。
  5. BetterModel にモデルを置き、BetterModel のドキュメントに従ってリソースパックを生成します。モデルを見るには、プレイヤーがリソースパックを承諾している必要があります。

はじめに​

クリックすると手を振る、アニメーション付きの NPC を配置します。

  1. TypeWriter の Web パネルで static ページを開き、BetterModel Definition を追加します。modelId に、BetterModel でのモデルの名前を設定し、named を有効にして、displayName を設定します。
  2. defaultAnimationSettings で、idle、walk、interact が、モデルのアニメーション名と一致していることを確認します(デフォルトは idle、walk、interact です)。
  3. manifest ページを開き、BetterModel Instance を追加します。definition を、今作成したものに設定し、位置ツールで spawnLocation をキャプチャします。
  4. 任意: 条件に合わないプレイヤーからボーン(たとえば帽子)を隠すには、definition の data に Bone Visibility を追加します。
  5. entity interact event と、Play Entity Animation アクションを追加します。entity にインスタンスを、animation にカスタムのアニメーション名を設定します。
  6. Publish し、ゲーム内で NPC をクリックします。
ヒットボックス

NPC をクリックできるのは、インタラクション用のヒットボックスがある場所だけです。Blockbench でボーンに hitbox という名前を付けるか、Hitbox エントリを追加してください。どちらもない場合は、モデル全体を覆う 1 つのボックスが使われます。

仕組み​

definition は、共有されるもの(モデル、アニメーション名、ヒットボックス、データ)を保持します。instance は、位置、追加のデータ、activity を保持します。instance のデータエントリは、definition のものの後に適用されるため、instance は definition を上書きできます。

設定​

この拡張機能には設定ファイルがありません。モデル、手足、リソースパックは BetterModel が管理します。

BetterModel の 2 つのフォルダが、名前で使われます。エンティティは BetterModel に登録されたモデルを使い、プレイヤー用のアクションとシネマティックは、BetterModel の players フォルダにあるプレイヤーの手足のモデル(たとえば steve、alex)を読み取ります。

エントリ​

15 件のエントリー(拡張機能のソースから生成)。

アクション3
シネマティック4
エンティティ2
エンティティデータ6

トラブルシューティング​

NPC が見えない。 ログで Model '...' not found を確認してください。modelId は、BetterModel が読み込んだモデルと一致している必要があります。一致しない場合、拡張機能は steve というモデルを試し、それも見つからなければ、何もスポーンしません。また、プレイヤーがリソースパックを承諾したかも確認してください。

NPC は表示されるが、クリックできない。 インタラクション用のヒットボックスは、名前に hitbox または hit_box を含むボーン、あるいは Hitbox エントリから作られます。モデルにどちらもない場合は、モデルを覆うボックスが 1 つ作られ、その高さは少なくとも 1.8 ブロックです。ボックスが間違った高さに浮いている場合は、defaultAnimationSettings の hitboxYOffset(デフォルトは -1.6)を調整してください。

アニメーションが何もしない。 アニメーション名は、Blockbench のモデルのものを、正確なつづりで指定します。Play Player Animation では、modelId が、通常のモデルではなく、BetterModel の players フォルダにある手足のモデルでなければなりません。

装備、炎、その他のバニラのデータが効果を持たない。 モデルには、バニラのエンティティのメタデータがありません。ログに、'...' has no BetterModel equivalent and is ignored のような警告が一度だけ出力されます。メインハンド、オフハンド、ヘルメットの装備には、Blockbench で ri、li、ph のタグを付けたボーンが必要です(ない場合、そのスロット用のボーンがないとログに出ます)。防具スロットには対応していません。均一でない 3D スケールは、X の値だけを使います。

ボーンカメラが動かない。 モデルがプレイヤーに見えていない間、またはボーンが見つからない間は、元の位置に留まります。boneName(大文字と小文字は区別しません)と、entityCinematic または instance のどちらかが設定されていることを確認してください。両方が設定されている場合は、エンティティシネマティックが優先されます。

ワールド移動や再接続の後でモデルが消える。 拡張機能は、参加、リスポーン、テレポート、リソースパックの読み込みの後に、短い遅延(最大 5 秒)をおいてモデルを再読み込みします。モデルが消えたままの場合は、再ログインしてください。シネマティックのモデルは、ワールド移動時とプレイヤーが退出したときに削除されます。

関連する拡張機能​