講師: hantabaru1014さん


マレット(棒)の先端がキューブに触れている間、音が鳴る楽器 これの、当たり判定の部分を作る
<aside> 💡 今回はMultiAudioClipPlayerコンポーネントとAudioOutputコンポーネントによって音が鳴る仕組みになっている MultiAudioClipPlayerコンポーネントは、Tracksに登録されているClipが合成された音が常になる仕組み 今回は、キューブがマレットに触れている間、そのClipのVolumeを1にすること音を鳴らしている 音を鳴らすにはAudioOutputコンポーネントが必要だが、ワールドに64コしか同時に音が鳴らせない制約があるので、このようにAudioOutputコンポーネントの数を節約する工夫が必要

</aside>
<aside> 💡
SineWaveClipコンポーネント サイン波の音を発生させる Frequencyに周波数(Hz)を指定する

</aside>
<aside> 💡 ValueCopy<T>コンポーネント Sourceに指定した値をTargetにドライブする BooleanValueDriver<T>コンポーネント StateによってFalseValueまたはTrueValueの値をTargetFieldにドライブする 今回の場合、PlayスロットのActiveがBooleanValueDriver<float>のStateにドライブされる Stateの値によって、SoundsスロットのMultiAudioClipPlayerコンポーネントのTracksの0番目のVolumeに0または1の値がドライブされる つまり、Playスロットがアクティブ状態なら音が鳴る、という仕組み

</aside>
マレットに子スロットを作成する
名前を「LogiX」にする

OnCollisionStartノード(Physics)を作成する
OnCollisionEndノード(Physics)を作成する



<aside> 💡 OnCollision系のノードは、当たる側と当たった側それぞれにColliderが必要 加えて、どちらかのColliderのTypeがStatic以外である必要がある(Staticは当たり判定の処理をおこなわないので軽量) 当たり判定の処理は重いので、今回はキューブに比べて数が少ないマレットの方をActiveにしている

</aside>

マレット/SphereスロットのSphereColliderコンポーネントのインターフェースノードを出す
OnCollisionStartノードとつなぐ

GetSlotノード(Slots)を作成する