【SDK3】指で触って弾けるピアノのワールドギミック【UdonGraph】
※更新履歴 2021.7.14 追従の挙動及びUIを改善したver2.0を公開しました。(VRCSDK3-WORLD-2021.07.12.18.53_Public以降のSDKが必須です) 上書きimportからのプレハブ置きなおしで動作するはずですがうまくいかない場合はフォルダごと削除してimportしなおしてください。 指で触って弾けるピアノのギミックです。 デフォルトでは3オクターブ設定しています。音はグローバルで聞こえます。同時に複数人で触れるので連弾もできますが、他の人が弾く音の聞こえ方にはラグがあります。 プレイヤーの指のボーンにオブジェクトを追従させ、鍵盤との接触判定で音を出す仕組みになっています。できるだけ軽くしましたがそこそこの負荷があるので人数が多いインスタンスでは使いにくいかもしれません。 以下のワールド作成時に使用したギミックをちょっと使いやすく整理したものです。体験したい方はこちらへ↓ https://vrchat.com/home/launch?worldId=wrld_80088dfb-434a-4c37-ac61-bc163fdcca8c 不具合等ありましたらこちらまで↓ @It__was__rainy
【使い方について】
・SDK3は最新のものの使用を推奨します。(2021.4.26時点のSDKで作成しています。これより前のSDKでは動作しない可能性があります。) →ver2.0はVRCSDK3-WORLD-2021.07.12.18.53_Public以降のSDKが必須となります。 ・unitypackageをインポートし、「Prefab」フォルダ内のプレハブをシーンに置いてください。 ・鍵盤を複製したり、audioclipを差し替えたりすれば、音階の範囲を広げたり音色を変更したりできます。自由に改変してください。 ・改変の有無を問わず再配布はしないでください。
【unitypackageの詳細】
・Materialフォルダ モデルに使っているマテリアルです。デフォルトで使用しているもののほかに、各音階ごとに色分けしたものを作っています(黒鍵分は1つだけ)。お好みで使用してください。 ・Prefabフォルダ 置けば使えるプレハブです。置くだけでもいいですし、既存のピアノモデルの鍵盤に重ねてメッシュを非表示にして使うのもおすすめです。 【Piano】…鍵盤本体です。 【R(L)_fingers】…プレイヤーの指に追従する球です。 【ToplaySwitch】…上記の球を表示/非表示するスイッチです。 →ver2.0より不要になったため削除しました。 【Guide】…遊び方の説明です。 ・sliderにはワールドのBGMや環境音を設定しておくと音量調整ができます。 ・KeyboardGuideは1オクターブ分の鍵盤のメッシュを表示/非表示するtoggleです。既存のピアノモデルに重ねて配置するときに、色付きマテリアルを設定しておくことで鍵盤に色を付けられるようになります。 sliderとKeyboardGuideは不要であれば削除して構いません。 【Settings】…どの指に球を追従させるかを選択できるtoggleです。球を表示した状態だとUIパネルへビーム飛ばせないので(オブジェクトが邪魔するため)、非表示にした状態で操作してください。 →VRChatの更新に伴いこのあたりの挙動は改善されたようです。 ・Soundフォルダ 鍵盤の音のmp3ファイルがまとめてあります。各ファイルの命名は結構適当ですが、数字が大きいものはより高い音です。 ・Udonフォルダ ギミックに使用しているUdonGraphです。【Sound_Piano】…鍵盤の音を鳴らす仕組みです。 【R(L)_(指の名前)】…プレイヤーの各ボーンを取得して球を追従させる仕組みです。 【ToplaySwitch】…指に追従する球の表示/非表示を切り替える仕組みです。 →ver2.0では不要になったため削除しました。