COREVOICE addon wiki

Minecraft Voice Chat Infrastructure

🚀 システムの始め方

このシステムは、マインクラフト内の位置データとブラウザ(Webサイト)を同期させ、プレイヤー同士の距離に応じたリアルタイムなボイスチャットを実現します。

1.配布しているCOREVOICE_public.mcaddonをインポートする

COREVOICE BE をインストール

下のボタンを押してダウンロード

アドオンをダウンロード
    導入手順のスクリーンショット

2. ワールドへの参加と/connect

  1. アドオンが適用されたマインクラフトのワールドに参加します。
  2. connectコマンドを打つ「/connect 36.53.1.137:8080
  3. 導入手順のスクリーンショット
  4. 参加すると、サーバーから自動的にプレイヤー専用の6桁のルームIDが発行され、チャットに通知されます。
  5. 導入手順のスクリーンショット
  6. 同時にコネクトコマンドを打った人にのみ四桁の管理者キーが発行されます。設定を変更してもいい人にだけ共有してください。

2. ブラウザでのボイスチャット接続

  1. スマートフォンまたはPCのブラウザで、ボイスチャットのWebサイトにアクセスします。https://36-53-1-137.sslip.io/
  2. サイト上の入力画面で、ゲーム内で発行された6桁のルームIDを入力します。
  3. 導入手順のスクリーンショット
  4. 自分の名前を選択します。
  5. ボイスチャットに参加を押します。
  6. 導入手順のスクリーンショット
⚠️ 注意事項:
設定で「websocketを有効にする」をオンにして、「暗号化の要求」をオフにしてください。正常に接続できません。 導入手順のスクリーンショット

🛠 利用可能なコマンド一覧

/vc:vol_formula 仕様書

対象プレイヤーのボイスチャットにおける音量計算式・オーディオ制御(JavaScript構文)をゲーム内からリアルタイムに変更・確認するためのコマンドです。

1. コマンド構文

/vc:vol_formula <target: プレイヤーセレクター> [formula: 文字列]
パーミッションレベル 誰でも実行可能(CommandPermissionLevel.Any)

チートの有効化 必要なし(cheatsRequired: false)

引数一覧

引数名 必須/任意 説明
target 必須 プレイヤーセレクター 式を設定・確認したい対象プレイヤー(@s@a、プレイヤー名など)
formula 任意 文字列 (String) 適用したいJavaScriptの制御式。未指定の場合は現在の設定値をチャットに表示します。

📝 2. 式の記述ルール(新仕様)

これからの数式は、ただの単一の計算式ではなく、JavaScriptの構文として変数への代入式を記述し、それぞれの命令をセミコロン ; で区切る必要があります。

vol = linear(30, dist); Spatial_Audio = true;

⚠️ 3. マイクラコマンド特有の文字列ルール(超重要)

マイクラのコマンド引数に数式を文字列として渡す場合、以下のエスケープルールを厳守する必要があります。

ルール①:全体を "" で囲む
数式内にスペースやセミコロンが含まれるため、引数の始まりと終わりを必ずダブルクォーテーション "" で明示してください。

  • ❌ 誤り: /vc:vol_formula @s vol = dist < 10 ? 1 : 0; Spatial_Audio = true;
  • ⭕ 正しい: /vc:vol_formula @s "vol = dist < 10 ? 1 : 0; Spatial_Audio = true;"

ルール②:式の中で文字列を使う時は ¥(\) でエスケープする
数式(JavaScript)の内部で、特定のタグ名やディメンション名などの「文字列」を指定したい場合は、ダブルクォーテーションの前にバックスラッシュ(環境によっては円マーク)を付けて \" と記述します。

  • ❌ 誤り: /vc:vol_formula @s "vol = me.dim === "minecraft:overworld" ? 1 : 0; Spatial_Audio = true;"
  • ⭕ 正しい: /vc:vol_formula @s "vol = me.dim === \"minecraft:overworld\" ? 1 : 0; Spatial_Audio = true;"

4. 式の中で使用できる変数・関数

Webブラウザ側で制御式が実行される際、記述した式の中で以下のオブジェクトやヘルパー関数が自動的に利用可能になります。

利用可能な変数

変数名 説明
me 自分の情報オブジェクト(me.x, me.y, me.z で座標、me.dim でディメンション、me.mode でゲームモードを取得。me.hasTag("タグ名") でタグ判定が可能)
other 通話相手の情報オブジェクト(プロパティや関数は me と同様)
dist 自分と相手の3次元距離(※Y軸の高さは1/2に圧縮されて計算されています)
sameDim 自分と相手が同じディメンションにいるかどうかの真偽値(true / false
setting サーバー側の現在の設定(setting.dict で最大通話距離などを取得可能)

プレイヤーオブジェクトのプロパティ

me(自分)および other(通話相手)のオブジェクトからは、以下の豊富なゲーム内データを取得して計算に利用できます。

オブジェクト・プロパティ 説明・取得できるデータ
me.name / other.name String プレイヤーの識別名(名前)
me.x, me.y, me.z Number 現在の3次元座標(X, Y, Z)
me.x_rot / me.y_rot Number プレイヤーの首の角度(X軸回転: 上下 / Y軸回転: 左右)
me.mode / other.mode String ゲームモード("Survival", "Creative", "Spectator" など)
me.dim / other.dim String ディメンションID("minecraft:overworld", "minecraft:nether", "minecraft:the_end"
me.time / other.time Number ゲーム内の現在時刻(0〜24000のTick値。昼夜の判定などに利用可能)
me.isJamming / other.isJamming Boolean 通信妨害(ジャミング)を受けているかどうかの真偽値(true / false
me.vol_formula String そのプレイヤーに現在設定されている数式文字列そのもの
me.tags / other.tags Array プレイヤーが持っているマイクラの全タグの配列。※特定のタグがあるかは後述の hasTag() メソッドで判定します

利用可能なメソッド(関数)

5. 特殊な制御コメント(モード切り替え)

数式内に特定のコメント文字を含めることで、ブラウザ側の制限処理のモードを切り替えることができます。

6. 具体的な使用例(サンプル)

例①:現在の設定を確認する

数式を指定せずに実行すると、対象プレイヤーの現在の設定が /say コマンドでチャット欄に表示されます。

/vc:vol_formula @s

例②:標準の距離減衰(リセット)

初期状態の自動減衰モードに戻したい場合は /*none*/ を書き込みます。

/vc:vol_formula @a "/*none*/"

例③:無線機(特定のタグ持ち同士はどこにいても2D最大音量、それ以外は立体音響減衰)

/*all*/ を使用。自分と相手が共に radio タグを持っているなら、距離に関係なく音量を 1・立体音響を false(無線風)にし、そうでないなら通常の30マスの立体音響減衰にする例です。

/vc:vol_formula @a "/*all*/ vol = me.hasTag(\"radio\") && other.hasTag(\"radio\") ? 1 : linear(30, dist); Spatial_Audio = !(me.hasTag(\"radio\") && other.hasTag(\"radio\"));"

例④:ネザーにいる時は最大距離を狭め、立体音響をオフにする(響く洞窟の表現など)

相手がネザー(minecraft:nether)にいる時は、音量を最大10ブロックに狭め、音が回り込んで聞こえるように立体音響を false にする設定例です。

/vc:vol_formula @a "vol = other.dim === \"minecraft:nether\" ? linear(10, dist) : linear(30, dist); Spatial_Audio = other.dim === \"minecraft:nether\" ? false : true;"