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

Text Display Dialogue

会話、選択メニュー、シネマティックの字幕を浮遊する text_display エンティティとして表示します。

有料v2.4クエストとストーリー
必要TypeWriter0.9PlaceholderAPI任意

概要​

Text Display Dialogue は、TypeWriter のダイアログのチャットボックスを、Minecraft の text_display エンティティに置き換えます。話し手の名前とテキストの行は、NPC の隣(または指定した位置)に浮かび、自動的にタイピングされるように表示され、短いスケールアニメーションとともに現れたり消えたりします。すべてはパケットで、ダイアログ中のプレイヤーにのみ送信されます。ワールドには何も生成されず、他のプレイヤーには何も見えません。

このエクステンションは、3 つのダイアログエントリーと 1 つのシネマティックエントリーを追加します。これらは、通常の TypeWriter ダイアログエントリーと同じように動作する(スピーカー、criteria、modifiers、triggers、タイピングの duration、sound)ため、ページの他の部分を変更せずに、既存の会話に差し替えられます。

機能​

  • 浮かぶ会話ダイアログ — 話し手の名前とテキストが、タイピングエフェクトとポップインアニメーションとともに、話し手の上に表示されます。
  • ワールド内の選択肢メニュー — 各選択肢は浮かぶ 1 行です。プレイヤーはホットバーをスクロールしてハイライトする選択肢を変更し、右クリックで確定します。
  • プレイヤー基準のメニュー — ワールド内に位置を持たない話し手のために、設定可能なオフセットでプレイヤーに追従するバリアント。
  • シネマティックの字幕 — シネマティックのタイムライン上に、遅延とタイピングアニメーション付きでテキストセグメントを表示します。
  • 細かなスタイル設定 — scale、textOpacity、viewRange、billboard、そして、話し手、テキスト、選択肢ごとの個別の背景色。
  • 選択肢のタイマー — 一定時間後に選択を自動的にキャンセルして cancelTriggers を発火し、カウントダウンのプレースホルダーでリアルタイムに表示します。
  • 選択肢ごとのロジック — すべての選択肢が、独自の criteria、modifiers、triggers、任意の位置を持ちます。
  • インベントリのロック — ダイアログが表示されている間、プレイヤーはインベントリを開く、アイテムをドロップする、手を持ち替えるといった操作ができません。

インストール​

  1. ダイアログのテキストで %placeholders% を使いたい場合は、PlaceholderAPI をインストールします(任意)。
  2. ストアからエクステンションを入手し(上のボタンを参照)、JAR を plugins/Typewriter/extensions/ に配置します。
  3. サーバーを再起動します。

このエクステンションに、他のプラグインは必要ありません。テキストディスプレイエンティティは、TypeWriter に同梱されているパケットライブラリで送信されます。 Paper のみで動作します。Folia には対応していません。

はじめに​

シンプルな挨拶を、選択肢付きの浮かぶダイアログに変えます。

  1. TypeWriter の Web パネルで、NPC(スピーカー)とインタラクショントリガーがすでにあるシーケンスページを開くか、新しく作成します。
  2. Spoken dialogue with Text Display エントリーを追加します。speaker に NPC を設定し、text に Welcome, traveller! などのテキストを入力します。タイピングエフェクトを得るには duration を 2s に設定します(ゼロだとテキストが一度に表示されます)。
  3. Option dialogue with Text Display エントリーを追加し、同じ speaker を設定して、text に質問を書き、options を 2 つか 3 つ追加します。各選択肢に、それぞれの triggers を設定します。
  4. 会話が続くように、Spoken エントリーの triggers を Option エントリーにリンクします。
  5. 必要に応じて、Option エントリーの timer を 15s に設定し、cancelTriggers を別れの挨拶のエントリーにリンクします。テキストには、%typewriter_textdisplaydialogue_timer% でカウントダウンを表示できます。
  6. ページを Publish して、NPC に話しかけます。続けるには、浮かんでいるテキスト(または空中)を右クリックします。選択肢では、ホットバーをスクロールして、右クリックで確定します。
位置

デフォルトでは、テキストは話し手の位置の 1 ブロック上に置かれます。話し手が位置を持つ NPC エンティティでない場合や、固定の場所に置きたい場合は、位置キャプチャツールで position を設定してください。メニューをプレイヤーに追従させたい場合は、プレイヤー選択肢バリアントを使用します。

仕組み​

各ダイアログエントリーは、テキストを 1 行につき 1 つの text_display に分割するため、長いメッセージは下に向かって積み重なります。typing エフェクトには、標準の TypeWriter のタイピングモードが使われます。選択肢は、テキストが完了した後、100 ミリ秒間隔で 1 つずつ表示され、すべてが表示されてからでないと確定できません。

操作​

ダイアログ続行または確定選択肢の変更
SpokenTypeWriter の確認キー、または浮かんでいるテキストのいずれかを右クリック。1 回目の押下でタイピングが完了し、2 回目でダイアログが閉じます。該当なし
Option と Player optionすべての選択肢が表示された後に、空中または浮かんでいるテキストのいずれかを右クリック。ホットバーをスクロール(手に持つスロットは変わりません)。選択は端で折り返します。

設定​

ダイアログには設定ファイルがありません。表示されるテキストはすべて snippet で、plugins/Typewriter/snippets で編集できます。既定値は標準の表示を再現します。スニペット内の <token> はその値に置き換えられ、それ以外の <タグ> は MiniMessage のままです。レイアウトのスニペット(*.format)では、話し手とヒントはトークンがある場合にのみ表示され、テキストと選択肢は常に表示されます。ヒントのスニペットが空の場合、ヒントは表示されません。

スニペット使用先役割トークン
textdisplay.option.formatOption、Player optionレイアウト<speaker_name> <text> <options> <instruction>
textdisplay.speaker.formatOption、Player option話し手の名前<speaker_name>
textdisplay.option.prefix.selectedOption、Player option選択中の選択肢のプレフィックス-
textdisplay.option.prefix.unselectedOption、Player optionその他の選択肢のプレフィックス-
textdisplay.option.selectedOption、Player option選択中の選択肢の行<prefix> <option_number> <option_text>
textdisplay.option.unselectedOption、Player optionその他の選択肢の行<prefix> <option_number> <option_text>
textdisplay.instructionOption、Player optionヒント-
textdisplay.spoken.formatSpokenレイアウト<speaker_name> <text> <instruction>
textdisplay.spoken.speaker.formatSpoken話し手の名前<speaker_name>
textdisplay.spoken.text.formatSpokenテキストの行<text>
textdisplay.spoken.instructionSpokenヒント-
textdisplay.spoken.continueSpoken続行のヒント(確定キー)<key>
textdisplay.cinematic.spoken.formatシネマティックレイアウト<speaker_name> <text> <instruction>
textdisplay.cinematic.spoken.speaker.formatシネマティック話し手の名前<speaker_name>
textdisplay.cinematic.spoken.instructionシネマティックヒント-
textdisplay.inventory.blockedすべてのダイアログプレイヤーがインベントリを開こうとしたときのメッセージ(空:メッセージなし)-
textdisplay.error.initすべてのダイアログ表示を開始できなかったときのメッセージ(空:メッセージなし)-

Player option ダイアログは Option ダイアログと同じスニペットを使います。

プレースホルダー​

プレースホルダー戻り値
%typewriter_textdisplaydialogue_timer%現在の Option ダイアログの timer の残り秒数。タイマーが動いていないときは 0。

このプレースホルダーは PlaceholderAPI(Typewriter エクスパンション)に登録されているため、ほかの場所(スコアボード、チャット、他のプラグイン)でも使え、タイマーが動いていないときは 0 を返します。拡張機能は選択肢ダイアログの text、各選択肢のテキスト、話し手の名前でも自分で置き換えるため、そこでは PlaceholderAPI がなくても動作します。PlaceholderAPI がインストールされていれば、これらのテキストでは他の PlaceholderAPI プレースホルダーも使えます。

エントリー​

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

ダイアログ3
シネマティック1

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

何も表示されず、プレイヤーに赤い "Dialog initialization error" が表示される。 ディスプレイを生成する際に、エクステンションがエラーを捕捉しました。原因については、サーバーログの TextDisplay initialization error で始まる行を確認し、position を設定している場合は、それが存在するワールド内の有効な位置であることを確認してください。

テキストがプレイヤーの足元や、間違った場所に表示される。 テキストは、話し手エンティティの位置を基準にしています。speaker が空か、プレイヤーに見える NPC インスタンスでない場合は、プレイヤーの位置(に 1 ブロック上を加えた位置)が使われます。正確な位置に置くには、position を設定してください。

選択肢メニューを確定できない。 右クリックは、タイピングが終わり、すべての選択肢が表示された後にのみ受け付けられます。duration が長く、選択肢が多い場合は、メニューがすべて表示されるまで待ってください。criteria に一致しない選択肢はまったく表示されず、どれも一致しない場合は、何も選択できません。

スクロールしても選択肢が変わらない。 スクロールイベントは 150 ミリ秒に 1 回に制限されているため、非常に速いスクロールは無視されます。ダイアログ中、手に持つホットバースロットが変わらないのは、想定された動作です。

カウントダウンに %typewriter_textdisplaydialogue_timer% がそのまま表示される。 PlaceholderAPI がない場合、プレースホルダーは選択肢ダイアログでのみ、かつ timer が 0 より大きいときにのみ置き換えられます。通常のダイアログやほかの場所で使うには、PlaceholderAPI をインストールしてください。

プレイヤーが、インベントリがロックされていると訴える。 ダイアログが表示されている間は、インベントリを開く、中でクリックする、アイテムをドロップする、手を持ち替える、といった操作がキャンセルされます。これは仕様で、ダイアログの終了とともに解除されます。

関連エクステンション​

  • BetterModel — 浮かぶダイアログの話し手になれる、アニメーション付きのモデル NPC。