VRChatアバター向けギミック

HeartBeat

相手の頭が胸に触れたときだけ、そっと鼓動が聞こえる。大型動物と人間の心臓を重ね合わせた「キメラ心音」を4種収録した、VRChatアバター用の心音ギミックです。

Modular Avatar対応 VRChat Contact連動 同期パラメータ 2bit
胸元のContactと音の届く範囲アバターの胸(Chestボーン)に付く半径0.2メートルの検知範囲と、その中心から0.17メートルまでしか届かない心音の減衰範囲を示した断面図。OriginHead検知範囲 半径 0.20 m音が届く範囲 0.17 m までChestボーンに自動追従
胸元に付いた検知範囲(半径0.20 m)に相手の頭が入ると再生されます。音そのものは0.17 mまでしか届かないため、触れているあいだだけ、その相手にだけ聞こえます。
Features

触れたときだけ鳴る、静かな鼓動

常時鳴りっぱなしにはなりません。相手の頭が胸に触れているあいだだけ、至近距離に閉じた音量で心音が再生されます。

接触で再生

VRChat Contact Receiverが Head タグ(プレイヤーの頭)を検知します。触れているあいだだけ再生され、離れれば止まります。

至近距離に閉じた音

減衰は Near 0.12 mFar 0.17 m。離れた第三者には届かないため、周囲の音を邪魔しません。

心音4種を収録

大型動物と人間の心音を1拍のなかで重ね合わせた創作サウンド。鼓動の重さと速さが異なる4種から、AudioClipを差し替えるだけで選べます。

ドラッグ&ドロップ導入

Modular Avatarのコンポーネントを内蔵。アバターに入れるだけで、メニュー・パラメータ・FXレイヤーがアップロード時に自動でマージされます。

Chestボーンへ自動追従

MA Bone ProxyがアバターのChestボーンへ実行時に取り付けます。素体が変わっても胸元の位置関係は保たれます。

メニューからON/OFF

Expressionsメニューにトグルが1つ追加されます。使わない場面ではギミックごと停止できます(初期状態はON・保存あり)。

Setup

導入手順

Modular Avatarを導入済みのUnityプロジェクトなら、3ステップで動きます。

Modular Avatarを入れる

先に Modular Avatar をプロジェクトへ導入してください。これがないとメニューやパラメータが統合されません。

Prefabをアバターに入れる

HeartBeat.prefab をHierarchy上のアバター配下へドラッグ&ドロップします。入れる階層はどこでも構いません — 実行時にChestボーンへ自動で移動します。

体格に合わせて位置と範囲を調整

子オブジェクト Origin を選び、胸の中心に来るよう位置を合わせます。検知範囲が広すぎる/狭すぎる場合は、VRC Contact Receiverの Radius(初期値 0.2)を調整してください。

音の届く距離を変えたいときは、同じ Origin のVRC Spatial Audio Sourceにある Far(初期値 0.17)を触ります。

心音を変えるには。 Origin のAudioSourceの AudioClip を、HB_Chimera1HB_Chimera4 のいずれかに差し替えてください。初期状態では HB_Chimera1 が設定されています。
Sounds

収録している心音(4種)

いずれも大型動物と人間の心音を素材に、「Chimera」シリーズとして制作した合成音です。鼓動の重さ・速さ・密度がそれぞれ異なります。ループ長は揃えてあるため、差し替えても継ぎ目は出ません。

HB_Chimera1 初期設定
低く落ち着いた、規則的な鼓動

落ち着いた低い鼓動が、乱れなく一定のリズムで刻まれます。シリーズ内で最も高音質です。

形式
MP3 / 48,000 Hz / ステレオ / 320 kbps
長さ
約 6.24 秒(ループ)
リズム
約 63 bpm 相当の鼓動を6拍
HB_Chimera2
1をすこし変えたもの

Chimera1と同じテンポ感のまま、より軽く自然な質感にまとめた別テイク。データ量を抑えた版です。

形式
MP3 / 48,000 Hz / ステレオ / 128 kbps
長さ
約 6.29 秒(ループ)
リズム
約 63 bpm 相当の鼓動を6拍
HB_Chimera3
人間 × 大型動物 の融合心音

低く重い大型動物の鼓動を土台に、人間の速く高い心音を倍音のように重ねています。心拍数は大型動物側に合わせた、ゆっくり重い鼓動です。

形式
MP3 / 48,000 Hz / ステレオ / 320 kbps
長さ
6.240 秒(ループ)
リズム
周期 2.08 秒(約 29 bpm)を3拍
構成
大型動物(基盤)+ 人間(混合比 0.55)
HB_Chimera4
3種を重ねた三重融合心音

大型動物の低い鼓動を土台に、中域の胴鳴りと人間の明るい倍音を層状に積み重ねた、シリーズで最も密度の高い音。Chimera3より少し速いテンポです。

形式
MP3 / 48,000 Hz / ステレオ / 320 kbps
長さ
6.240 秒(ループ)
リズム
周期 1.56 秒(約 38.5 bpm)を4拍
構成
大型動物(1.0)+ 中域の心音(0.7)+ 人間(0.5)
Unityインポート設定(4ファイル共通)
項目意図
Load TypeDecompress On Load再生開始の遅れをなくす。短いループなのでメモリ負荷は小さい
Compression FormatVorbis / Quality 1アバター容量を抑えつつ心音の低域を保つ
Force To Monoオフステレオのまま。空間定位を殺さない
Normalizeオン4種の音量感を揃える
Load In Backgroundオンワールド読み込みを止めない
Spatialize(3D)オン胸元から鳴っているように定位させる
How it works

2つのレイヤーで動いています

「ギミック自体のON/OFF」と「触れているかどうか」を別々のレイヤーに分けています。メニューでOFFにすれば、接触しても鳴りません。

HeartBeatの制御フローExpressionsメニューのトグルがパラメータ HeartBeat を切り替え、HeartBeatレイヤーがOriginオブジェクトのアクティブ状態を制御する。並行して、Contact Receiverがパラメータ HeartBeat_Contact を切り替え、HeartBeat_ContactレイヤーがAudioSourceの有効・無効を制御する。メニューのトグルExpressions MenuHeartBeatbool・同期・保存あり・初期ONHeartBeatレイヤーOn.anim / Off.anim頭が胸に触れるContact ReceiverHeartBeat_Contactbool・同期・保存なしHeartBeat_ContactレイヤーPlay.anim / Stop.anim→ Originを表示/非表示→ AudioSourceを有効/無効2つのレイヤーは独立。メニューがOFFならOrigin自体が消えるため、接触しても鳴りません。
Reference

パラメータと構成

アバターの同期パラメータを消費するのは2つ(bool 2つ=2 bit)だけです。

Expressionパラメータ
名前同期保存初期値役割
HeartBeatboolありありONギミック全体のON/OFF。メニューのトグルから操作します
HeartBeat_ContactboolありなしOFF頭が触れているかどうか。Contact Receiverが自動で書き換えます
調整できる主な値(Origin 上)
コンポーネント項目初期値説明
VRC Contact ReceiverRadius0.2頭を検知する球の半径(m)。大きくすると触れやすくなります
VRC Contact ReceiverPositionZ +0.03検知球を胸の前方へわずかに押し出すオフセット
VRC Contact ReceiverCollision TagsHead反応する部位。頭のみに限定しています
VRC Contact ReceiverAllow Self / Others両方オン自分の頭でも、相手の頭でも反応します
VRC Spatial Audio SourceNear0.12この距離までは減衰せず、そのままの音量で鳴ります(m)
VRC Spatial Audio SourceFar0.17ここを超えると聞こえなくなります(m)
VRC Spatial Audio SourceGain10音量。届く範囲が極端に狭いぶん、近接時の音圧を確保しています
AudioSourceAudioClipHB_Chimera1鳴らす心音。4種から選んで差し替えます
AudioSourceLoopオン触れているあいだ繰り返します
同梱ファイル
ファイル内容
HeartBeat.prefabギミック本体。Modular Avatarのコンポーネント一式を内蔵しています
HB_Chimera1〜4.mp3心音4種
HeartBeat.controllerAnimatorController(2レイヤー)
On.anim / Off.animギミックのON/OFF
Play.anim / Stop.anim心音の再生/停止
Menu.asset / Params.assetExpressionメニューとパラメータ。Prefabを使わず手動でマージする場合に利用します
Notes

導入前に確認すること

Contactと空間音声の仕様上、どうしても効かない場面があります。

相手のContactが無効だと鳴りません

相手側の設定やSafetyの状態でContactが切られている場合、頭が触れても反応しません。接触が有効な相手にのみ機能します。

Modular Avatarが必須です

メニュー・パラメータ・FXレイヤーの統合をModular Avatarに任せています。未導入のままアップロードしても機能しません。

Chestボーンを持つアバターが前提です

MA Bone ProxyがHumanoidのChestへ取り付けます。Chestが割り当てられていないリグでは追従先が見つかりません。

収録音は創作サウンドです

実在の生体データを収録・加工したものではなく、すべて合成した創作音です。医療・生体情報としての用途は想定していません。