講師: 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
)を作成する