MRが楽しい

MRやVRについて学習したことを書き残す

Particleのアタリ判定を設定してオブジェクトに力を加える

本日は Unity の技術調査枠です。
Particle のアタリ判定を設定してオブジェクトに力を加える方法を記事にします。
f:id:bluebirdofoz:20211112184620j:plain

前提条件

以下の前回記事の続きです。
bluebirdofoz.hatenablog.com

Particleで物体に力を加える

Particle で物体に力を加えるには Collision モジュール内の[Collider Force]項目の設定を行います。
docs.unity3d.com
f:id:bluebirdofoz:20211112184649j:plain

今回は[Collider Force]に[100]の値を設定しました。
[0]の場合は力が全く加えられないことになります。
f:id:bluebirdofoz:20211112184701j:plain

なお、Multiply 関連のサブ項目は以下の通り、Particle による力の掛け具合に影響を及ぼします。

Multiply by Collision Angle コライダーに力を適用するとき、パーティクルとコライダーの間の衝突角度に基づいて力を拡大します。グレージング角は正面衝突よりも小さな力を生成します。
Multiply by Particle Speed コライダーに力を適用するとき、パーティクルの速度に基づいて力を拡大します。高速で動くパーティクルは低速のものよりも大きな力を生成します。
Multiply by Particle Size コライダーに力を適用するとき、パーティクルのサイズに基づいて力を拡大します。サイズの大きなパーティクルは小さいものよりも大きな力を生成します。

物理演算を行うため、力を加える対象のオブジェクトには Rigidbody コンポーネントを設定しておく必要があります。
今回は地面がないので[Use Gravity]を無効化しておきます。
f:id:bluebirdofoz:20211112184806j:plain

動作確認

シーンを再生して動作を確認します。
f:id:bluebirdofoz:20211112184815j:plain

Particle がぶつかると、加わった力でオブジェクトが遥か彼方まで飛んでいきました。
f:id:bluebirdofoz:20211112184825j:plain

衝突対象の質量を変えてみる

オブジェクト毎にぶつかった際の勢いを変えたい場合は Rigidbody の[Mass]項目を変更して、物理演算における質量を変更します。
例えばオブジェクトの[Mass]を[1]から[10]に変更して再び動作を試してみます。
f:id:bluebirdofoz:20211112184835j:plain

質量が大きいオブジェクトは力を加えた際にゆっくりと移動します。
f:id:bluebirdofoz:20211112184844j:plain