接触で再生
VRChat Contact Receiverが Head タグ(プレイヤーの頭)を検知します。触れているあいだだけ再生され、離れれば止まります。
常時鳴りっぱなしにはなりません。相手の頭が胸に触れているあいだだけ、至近距離に閉じた音量で心音が再生されます。
VRChat Contact Receiverが Head タグ(プレイヤーの頭)を検知します。触れているあいだだけ再生され、離れれば止まります。
減衰は Near 0.12 m/Far 0.17 m。離れた第三者には届かないため、周囲の音を邪魔しません。
大型動物と人間の心音を1拍のなかで重ね合わせた創作サウンド。鼓動の重さと速さが異なる4種から、AudioClipを差し替えるだけで選べます。
Modular Avatarのコンポーネントを内蔵。アバターに入れるだけで、メニュー・パラメータ・FXレイヤーがアップロード時に自動でマージされます。
MA Bone ProxyがアバターのChestボーンへ実行時に取り付けます。素体が変わっても胸元の位置関係は保たれます。
Expressionsメニューにトグルが1つ追加されます。使わない場面ではギミックごと停止できます(初期状態はON・保存あり)。
Modular Avatarを導入済みのUnityプロジェクトなら、3ステップで動きます。
先に Modular Avatar をプロジェクトへ導入してください。これがないとメニューやパラメータが統合されません。
HeartBeat.prefab をHierarchy上のアバター配下へドラッグ&ドロップします。入れる階層はどこでも構いません — 実行時にChestボーンへ自動で移動します。
子オブジェクト Origin を選び、胸の中心に来るよう位置を合わせます。検知範囲が広すぎる/狭すぎる場合は、VRC Contact Receiverの Radius(初期値 0.2)を調整してください。
音の届く距離を変えたいときは、同じ Origin のVRC Spatial Audio Sourceにある Far(初期値 0.17)を触ります。
Origin のAudioSourceの AudioClip を、HB_Chimera1〜HB_Chimera4 のいずれかに差し替えてください。初期状態では HB_Chimera1 が設定されています。いずれも大型動物と人間の心音を素材に、「Chimera」シリーズとして制作した合成音です。鼓動の重さ・速さ・密度がそれぞれ異なります。ループ長は揃えてあるため、差し替えても継ぎ目は出ません。
落ち着いた低い鼓動が、乱れなく一定のリズムで刻まれます。シリーズ内で最も高音質です。
Chimera1と同じテンポ感のまま、より軽く自然な質感にまとめた別テイク。データ量を抑えた版です。
低く重い大型動物の鼓動を土台に、人間の速く高い心音を倍音のように重ねています。心拍数は大型動物側に合わせた、ゆっくり重い鼓動です。
大型動物の低い鼓動を土台に、中域の胴鳴りと人間の明るい倍音を層状に積み重ねた、シリーズで最も密度の高い音。Chimera3より少し速いテンポです。
| 項目 | 値 | 意図 |
|---|---|---|
| Load Type | Decompress On Load | 再生開始の遅れをなくす。短いループなのでメモリ負荷は小さい |
| Compression Format | Vorbis / Quality 1 | アバター容量を抑えつつ心音の低域を保つ |
| Force To Mono | オフ | ステレオのまま。空間定位を殺さない |
| Normalize | オン | 4種の音量感を揃える |
| Load In Background | オン | ワールド読み込みを止めない |
| Spatialize(3D) | オン | 胸元から鳴っているように定位させる |
「ギミック自体のON/OFF」と「触れているかどうか」を別々のレイヤーに分けています。メニューでOFFにすれば、接触しても鳴りません。
アバターの同期パラメータを消費するのは2つ(bool 2つ=2 bit)だけです。
| 名前 | 型 | 同期 | 保存 | 初期値 | 役割 |
|---|---|---|---|---|---|
| HeartBeat | bool | あり | あり | ON | ギミック全体のON/OFF。メニューのトグルから操作します |
| HeartBeat_Contact | bool | あり | なし | OFF | 頭が触れているかどうか。Contact Receiverが自動で書き換えます |
| コンポーネント | 項目 | 初期値 | 説明 |
|---|---|---|---|
| VRC Contact Receiver | Radius | 0.2 | 頭を検知する球の半径(m)。大きくすると触れやすくなります |
| VRC Contact Receiver | Position | Z +0.03 | 検知球を胸の前方へわずかに押し出すオフセット |
| VRC Contact Receiver | Collision Tags | Head | 反応する部位。頭のみに限定しています |
| VRC Contact Receiver | Allow Self / Others | 両方オン | 自分の頭でも、相手の頭でも反応します |
| VRC Spatial Audio Source | Near | 0.12 | この距離までは減衰せず、そのままの音量で鳴ります(m) |
| VRC Spatial Audio Source | Far | 0.17 | ここを超えると聞こえなくなります(m) |
| VRC Spatial Audio Source | Gain | 10 | 音量。届く範囲が極端に狭いぶん、近接時の音圧を確保しています |
| AudioSource | AudioClip | HB_Chimera1 | 鳴らす心音。4種から選んで差し替えます |
| AudioSource | Loop | オン | 触れているあいだ繰り返します |
| ファイル | 内容 |
|---|---|
| HeartBeat.prefab | ギミック本体。Modular Avatarのコンポーネント一式を内蔵しています |
| HB_Chimera1〜4.mp3 | 心音4種 |
| HeartBeat.controller | AnimatorController(2レイヤー) |
| On.anim / Off.anim | ギミックのON/OFF |
| Play.anim / Stop.anim | 心音の再生/停止 |
| Menu.asset / Params.asset | Expressionメニューとパラメータ。Prefabを使わず手動でマージする場合に利用します |
Contactと空間音声の仕様上、どうしても効かない場面があります。
相手側の設定やSafetyの状態でContactが切られている場合、頭が触れても反応しません。接触が有効な相手にのみ機能します。
メニュー・パラメータ・FXレイヤーの統合をModular Avatarに任せています。未導入のままアップロードしても機能しません。
MA Bone ProxyがHumanoidのChestへ取り付けます。Chestが割り当てられていないリグでは追従先が見つかりません。
実在の生体データを収録・加工したものではなく、すべて合成した創作音です。医療・生体情報としての用途は想定していません。