共有サーバー版
こちらは共有サーバーで利用するバージョン2です。
自分でサーバーを立てる必要がないので、スマホだけでも利用が可能です。
共有サーバーですので、状況によってはラグがあったりすると思うので、
もし自分でサーバーを立てられる人は、セルフサーバー版のこちらをご利用ください

概要
マインクラフト統合版で、プレイヤー同士の「距離」に応じて音量が変化する近接ボイスチャット(Proximity VC)を導入できるツール&アドオンです。
専用のDiscordサーバーや重い外部ソフトは不要! ホストが立ち上げたサーバーに、プレイヤーがブラウザでアクセスするだけで、ゲーム内の位置と連動したリアルな会話が楽しめます。
主な機能
距離減衰・次元対応: 近くの人の声は大きく、遠くの人は小さく。別次元にいる人の声は聞こえなくなります。
スマホ対応UI: PCはもちろん、スマホからブラウザを開いて参加することも可能です。
観戦者モード対応: 観戦者は近くの人の声を聞けるなど、ゲームモードに合わせた音量設定が可能(人狼ゲーム等に最適!)。
低遅延通信: WebRTC(PeerJS)を利用しているため、ラグの少ない会話が可能です。
コマンド
コマンドで設定ができます。利用可能なコマンドは以下の通りです。
- /vc:template <name:string> 設定のテンプレを利用できます。none,jinroが利用可能です。
- /vc:dict <distance:float>話せる距離を設定します。デフォは30です。
- /vc:spectator <mode:string>スぺクの時の設定です。noneは一切話せない、allは距離関係なく、nearは近くの人のみです。
- /vc:setting上記の設定をフォームで一括でできます。
- /vc:jam<playerSelector>指定したプレイヤーに通信妨害を起こします。通信妨害を起こされたプレイヤーは強制的にスピーカーミュート状態になります。
- /vc:vol_formula<playerSelector><formula:string>ボリュームの式を設定できます。詳しい仕様書は後述。
- /vc:mute <playerSelector> <state:boolean> 指定したプレイヤーのミュートを操作します。(開発中)
導入方法(ホスト向け)
- 配布しているvc_addon_public.mcaddonをインポートする

- /connect 36.53.1.137:8080を打つ。

- 初回の場合、接続が拒否されたと出ると思うので、設定で「websocketを有効にする」をオンにして、 「暗号化の要求」をオフにしてください

- マイクラのチャットに流れるルームIDを参加者に共有する

- あとは下の参加者向けと同じ
参加者(ゲスト)向け
- こちらのサイトに接続
- 自分の名前を選ぶ
注意事項
ブラウザの「自動再生ブロック」により、画面を一度タップしないと音が聞こえない場合があります。
- /connectは起動のたびに打ち直してください。
change_logs
v1.1.0-いろいろ改善
v1.0.5-・サムネとアイコンを追加しました。
・exeファイルにコンパイルし、node.jsがいらなくなりました。
v1.0.3-・スマホ版で音量調整が無視される問題を修正
・観戦者を追加
・挙動を改善
v1.0.2-接続してもデータが送信できない問題を修正
v1.0.1-再接続uiを作成。挙動を改善。
利用規約
二次配布・自作発言: 禁止
改造: 禁止
動画配信・紹介:ぜひやってほしいです。説明文に本ページのリンクを貼ってください。使ったら本ページのコメントに残してくれると嬉しいです。
/vc:vol_formulaの仕様書
対象プレイヤーのボイスチャットにおける音量計算式(JavaScript式)をゲーム内からリアルタイムに変更・確認するためのコマンドです。
1. コマンド構文
コード スニペット
/vc:vol_formula <target: プレイヤーセレクター> [formula: 文字列]
パーミッションレベル: 誰でも実行可能(
CommandPermissionLevel.Any)チートの有効化: 必要なし(
cheatsRequired: false)
引数一覧
| 引数名 | 必須/任意 | 型 | 説明 |
target | 必須 | プレイヤーセレクター | 式を設定・確認したい対象プレイヤー(@s、@a、プレイヤー名など) |
formula | 任意 | 文字列(String) | 適用したいJavaScriptの音量計算式。未指定の場合は現在の設定値をチャットに表示します。 |
2. マイクラコマンド特有の文字列ルール(超重要)
マイクラのコマンド引数に文字列(String)を渡す場合、以下のエスケープルールを厳守する必要があります。
ルール①:全体を "" で囲む
数式内にスペースや特殊文字が含まれるため、引数の始まりと終わりを必ずダブルクォーテーション "" で明示してください。
❌ 誤り:
/vc:vol_formula @s dist < 10 ? 1 : 0⭕ 正しい:
/vc:vol_formula @s "dist < 10 ? 1 : 0"
ルール②:式の中で文字列を使う時は ¥でエスケープする
数式(JavaScript)の内部で、特定のタグ名やディメンション名などの「文字列」を指定したい場合は、ダブルクォーテーションの前にバックスラッシュ(環境によっては円マーク)を付けて " と記述します。
❌ 誤り:
/vc:vol_formula @s "me.dim === "minecraft:overworld" ? 1 : 0"⭕ 正しい:
/vc:vol_formula @s "me.dim ===¥"minecraft:overworld¥" ? 1 : 0"
3. 式の中で使用できる変数・関数
Webブラウザ側で音量が計算される際、記述したJavaScript式の中で以下のオブジェクトや関数が自動的に利用可能になります。最終的に数値を返すように式を記述します。0が無音、1が100%で、1を超えても問題ありませんが、現実的には5が限度です。
利用可能な変数
me: 自分の情報オブジェクトme.x,me.y,me.z: 自分の現在の座標me.dim: 自分のディメンション("minecraft:overworld"など)me.mode: 自分のゲームモード("Creative","Survival","Spectator"など)me.hasTag("タグ名"): 自分が特定のタグを持っているか判定する関数
other: 通話相手の情報オブジェクト(プロパティはmeと同様)dist: 自分と相手の3次元距離(Y軸の高さは1/2に圧縮されて計算されています)sameDim: 自分と相手が同じディメンションにいるかどうかの真偽値(true/false)setting: サーバー側の現在の設定(setting.dictで最大通話距離などを取得可能)
利用可能な関数
linear(max_dist, dist): 距離に応じたシンプルな直線減衰を計算するヘルパー関数。
4. 特殊な制御コメント(モード切り替え)
数式内に特定のコメント文字を含めることで、ブラウザ側の音量計算処理のモードを切り替えることができます。
/*none*/(デフォルト):アドオンの標準的な距離減衰、人狼テンプレート、観戦者設定、ジャミング(妨害)状態などが全自動で適用されます。
/*all*/:システムのデフォルト制限をすべて無視します。別ディメンション間や、スペクとサバイバルの間、自分がジャミング(妨害)を受けている状態であっても、記述したJavaScriptの計算結果がそのまま音量として適用されます。
コメントなし:
記述した式で音量を計算したあと、システム共通の制限(「別ディメンションなら強制終了」「ジャミング中なら強制ミュート」など)が上書きで適用されます。
5. 具体的な使用例(サンプル)
例①:現在の設定を確認する
数式を指定せずに実行すると、対象プレイヤーの現在の設定が /say コマンドでチャット欄に表示されます。
/vc:vol_formula @s
例②:標準の距離減衰(リセット)
初期状態の自動減衰モードに戻したい場合は /*none*/ を書き込みます。
/vc:vol_formula @a "/*none*/"
例③:特定のタグを持っている人同士はどこにいても最大音量(無線機など)
/*all*/ を使用し、自分と相手が共に radio タグを持っているなら距離(dist)に関係なく音量を 1 にし、そうでないなら通常の距離減衰(最大30ブロック)にする例です。
/vc:vol_formula @a "/*all*/ me.hasTag(¥"radio¥") && other.hasTag(¥"radio¥") ? 1 : linear(30, dist)"
例④:特定のディメンション(ネザーなど)にいる時は聞こえる距離を狭める
相手がネザー(the_nether)にいる時は、最大通話距離を強制的に10ブロックに狭める設定例です。
/vc:vol_formula @a "other.dim === ¥"the_nether¥" ? linear(10, dist) : linear(30, dist)"




コメント
観戦者しか選択できないのですがどうしたらいいですか
修正しました。お待たせしました
vcオンにできなかったっていうかやり方がわからん
レルムズ使えないの
レルムズ使ったことないので、わかんないですが、アドオンがインストールできるんだったらいけると思います。
Websocketサーバーへの要求が拒否されましたって出ました。原因があるのでしょうか
ごめんなさい。websocketの設定の説明を入れ忘れてました。追加した説明の通りに設定してください
/connect 36.53.1.137:8080を打ち込むとこのようなエラーがでるのですがどうすればいいでしょうか
スイッチ勢がいるのですが、マイクラはスイッチVCはスマホみたいなことはできますか?
あと、聞こえる距離などに関しての初期設定がどうなっているか知りたいです。
ルーム番号がチャット履歴から消えて分からず参加できないんですけどどうしたらいいですか?