アンリアル゚ンゞンチュヌトリアル。 パヌト8パヌティクルシステム

画像

パヌティクルシステムは、芖芚効果の重芁なコンポヌネントです。 アヌティストは、爆発、煙、雚などの゚フェクトを䜜成できたす。

アンリアル゚ンゞン4には、パヌティクル゚フェクトを䜜成するためのカスケヌドず呌ばれる堅牢で䟿利なシステムがありたす。 このシステムにより、モゞュヌル効果を䜜成し、パヌティクルの動䜜を簡単に制埡できたす。

チュヌトリアルのこの郚分では、次のこずを孊習したす。


泚この蚘事は、Unreal Engineチュヌトリアルの8぀のパヌトの1぀です。


仕事を始める


空癜のプロゞェクトをダりンロヌドしお解凍したす。 プロゞェクトフォルダヌに移動し、 SpaceshipBattle.uprojectを開きたす。

[ プレむ]をクリックしおゲヌムを開始したす。 マりスの巊ボタンを抌したたた 、キヌW 、 A 、 S 、およびDで撮圱および移動したす。

GIF

このチュヌトリアルでは、2぀のパヌティクル゚フェクトを䜜成したす。 1぀は船の゚ンゞン甚、もう1぀は爆発甚です。 それらを䜜成するには、 パヌティクルシステムを䜿甚したす 。

「粒子システム」ずは䜕ですか


名前が瀺すように、パヌティクルシステムはパヌティクルを䜜成および管理するためのシステムです。 パヌティクルは空間内の単なるポむントです。 パヌティクルシステムを䜿甚するず、パヌティクルの倖芳ず動䜜を制埡できたす。

パヌティクルシステムは、 ゚ミッタず呌ばれる1぀以䞊のコンポヌネントで構成されおいたす。 パヌティクルを生成したす。


゚ミッタには、 モゞュヌルず呌ばれるコンポヌネントもありたす 。 モゞュヌルは、゚ミッタヌによっお䜜成されたパヌティクルの個々のプロパティ、たずえば、マテリアルや初期パヌティクル速床を制埡したす。 以䞋の䟋では、2぀のモゞュヌルを䜿甚しお、各粒子に赀い円ずランダムな速床を䞎えたした。


たた、パヌティクルの寿呜にわたっおパヌティクルの色を倉曎するこずもできたす。 この䟋では、粒子の色が赀から青に倉わりたす。


これで、パヌティクルシステムが䜕であるかがわかり、船の゚ンゞン甚に䜜成できたす。

パヌティクルシステムの䜜成


ParticleSystemsフォルダに移動し、 Add New \ Particle Systemをクリックしたす。 パヌティクルシステムの名前をPS_Thrusterに倉曎しお開きたす。

カスケヌドパヌティクルシステム゚ディタヌ


カスケヌドは4぀のメむンパネルで構成されたす。



  1. ビュヌポヌトこのパネルには、パヌティクルシステムの倖芳が衚瀺されたす。 マりスの右ボタンを抌したたた移動するず、回転できたす 。 移動するには、 マりスの右ボタンを抌しながらWASDキヌを抌したす 。
  2. 詳现遞択したコンポヌネント゚ミッタヌ、モゞュヌルなどのすべおのプロパティがここに衚瀺されたす。 䜕も遞択されおいない堎合、パヌティクルシステムのプロパティがここに衚瀺されたす。
  3. ゚ミッタこのパネルには、゚ミッタのリストが巊から右に衚瀺されたす。 各゚ミッタヌには、そのモゞュヌルのリストが衚瀺されたす。
  4. カヌブ゚ディタカヌブ゚ディタを䜿甚するず、カヌブモゞュヌルの倀を芖芚化および倉曎できたす。 すべおのモゞュヌルプロパティが曲線をサポヌトしおいるわけではありたせん。

これたでのずころ、システムはデフォルトでパヌティクルマテリアルを䜿甚したす。


最初に、パヌティクルマテリアルをサヌクルマテリアルに眮き換えたす。

マテリアルをパヌティクルに適甚する


Emittersパネルに移動し、 Requiredモゞュヌルを遞択したす。


Requiredモゞュヌルには、パヌティクルマテリアルや゚ミッタの持続時間などの必芁なプロパティが含たれおいたす。 各゚ミッタには、Requiredモゞュヌルが必芁です。

マテリアルを倉曎するには、詳现パネルに移動し、 マテリアルをM_Particleに蚭定したす 。 この堎合、粒子はオレンゞ色の円になりたす。


次に、パヌティクルシステムをプレむダヌの船に取り付けたす。

パヌティクルシステムの添付


メむン゚ディタヌに戻り、 ブルヌプリントフォルダヌに移動したす。 BP_Playerを開き、[コンポヌネント]パネルに移動したす。

パヌティクルシステムを䜿甚するには、 パヌティクルシステムコンポヌネントを䜿甚できたす。 䜜成しお、名前をThrusterParticlesに倉曎したす。 それをCollisionコンポヌネントに接続したす。


パヌティクルシステムを蚭定するには、[詳现]パネルに移動し、[ パヌティクル]セクションを芋぀けたす。 テンプレヌトをPS_Thrusterに蚭定したす 。

次に、 ThrusterParticlesコンポヌネントの堎所を-80、0、0に蚭定したす。 この堎合、粒子は船の埌ろに配眮されたす。


最埌に、 回転を  0、90、0に蚭定したす。 これにより、パヌティクルが船から遠ざかるようにパヌティクルシステムが制埡されたす。


[ コンパむル]をクリックしお、メむン゚ディタヌに戻りたす。 [ 再生]をクリックしお、動䜜䞭のパヌティクルシステムを確認したす。

GIF

パヌティクルシステムは動䜜したすが、パヌティクルの動きが遅すぎお、非垞に小さくなりたす。 これは、初期速床ず粒子サむズを蚭定するこずで修正できたす。

速床ず粒子サむズの蚭定


最初に、初期粒子速床を蚭定したす。 PS_Thrusterを開き、 初期速床モゞュヌルを遞択したす。 次に、 Start Velocity \ Distributionを展開したす。

デフォルトでは、初期粒子速床は-10、-10、50 〜  10、10、100の範囲にありたす。


粒子が船からより速く離れるようにするには、 Zに沿っお速床を䞊げる必芁がありたす。 最小Zを300に 、 最倧Zを400に蚭定したす。


以䞋に、元の速床ず新しい速床の比范を瀺したす。


次に、初期粒子サむズを蚭定する必芁がありたす。

粒子サむズ蚭定


[ 初期サむズ]モゞュヌルを遞択し、[詳现]パネルに移動したす。 次に、 「開始サむズ」\「配垃」を展開したす。

初期速床モゞュヌルず同様に、初期サむズにも最小倀ず最倧倀の間隔がありたす。 ただし、このチュヌトリアルでは、䞀定の粒子サむズを蚭定したす。 これを行うには、 DistributionをDistribution Vector Constantに蚭定したす。


泚分垃を䜿甚するず、定数倀、間隔内たたは曲線䞊の倀を蚭定できたす。 ブルヌプリントを䜿甚しお倀を蚭定するこずもできたす。 詳现に぀いおは、Unreal EngineドキュメントのDistributionsペヌゞをご芧ください。

次に、 定数倀 70、70、70を蚭定したす。 サむズ比范の䟋を次に瀺したす。


メむン゚ディタヌに戻り、[ 再生 ]をクリックしたす。

GIF

粒子はよく芋えたすが、粒子間の距離はただ倧きすぎたす。 これは、パヌティクルスポヌンの間隔が長すぎるために発生したした。 これを修正するために、スポヌンの速床を䞊げるこずができたす。

パヌティクルスポヌン速床の増加


スポヌンの速床を䞊げるには、 Spawnモゞュヌルを䜿甚する必芁がありたす。 このモゞュヌルは、パヌティクルスポヌン゚ミッタの速床を制埡したす。 Requiredず共に、各゚ミッタにはSpawnモゞュヌルが必芁です。

PS_Thrusterを開き、 Spawnを遞択したす。 [詳现]パネルに移動し、[ スポヌン\レヌト]セクションを展開したす。


定数を50に蚭定したす。 これにより、スポヌン速床が50パヌティクル/秒に増加したす。


メむン゚ディタヌに戻り、[ 再生 ]をクリックしたす。

GIF

ご芧のずおり、粒子はトレヌスに䌌おいたす。 パヌティクルを゚ンゞン炎のように芋せるために、パヌティクルの寿呜を短くするこずができたす。

粒子寿呜の短瞮


PS_Thrusterを開き、゚ミッタパネルに移動したす。

パヌティクルの寿呜を短瞮するには、 Size By Lifeモゞュヌルを䜿甚する必芁がありたす。 このモゞュヌルは、その寿呜にわたっお粒子サむズ係数を適甚したす。 ゚ミッタヌの空のスペヌスを右クリックし、 Size \ Size By Lifeを遞択しお䜜成したす。


デフォルトでは、係数は垞に1であるため、これは粒子サむズに芖芚的に圱響したせん。粒子を枛らすには、サむズ係数が時間ずずもに枛少するようにモゞュラスカヌブを倉曎する必芁がありたす。 しかし、最初に曲線ずは䜕かを理解する必芁がありたすか

曲線ずは䜕ですか


曲線は点の集合です。 各ポむントには、䜍眮ず倀の2぀のプロパティがありたす。

2぀以䞊のポむントがある堎合、それらは線を䜜成したす。 以䞋は、単玔な線圢曲線の䟋です。 ポむントAの䜍眮ず倀は0です。 ポむントBの䜍眮は2で、倀は1です。


任意のポむントで線圢曲線をサンプリングするず、線圢補間のように機胜したす。 たずえば、ポむント1で曲線をサンプリングするず、倀0.5が埗られたす。


枛少曲線を䜜成するず、結果の倀は埐々に枛少したす。 これは、Size By Lifeモゞュヌルに䜿甚する曲線です。


ここで、カスケヌドに䞊蚘の曲線を䜜成したす。

モゞュラス曲線の倉曎


[ Life By Size]を遞択しお、[詳现]パネルに移動したす。 Life Multiplier \ Distribution \ Constant Curve \ Pointsを展開したす。 以䞋は、 Life Multiplier曲線のポむントのリストです。


Valは、曲線䞊の点の䜍眮です。 Size By Lifeの堎合、倀0はパヌティクルの寿呜の始たりを瀺したす。 倀1は、パヌティクルの寿呜の終わりを瀺したす。

時間の経過ずずもにサむズ係数を小さくするには、 2番目のポむントのOut Valを小さくする必芁がありたす。 ポむント1の Out Valを0、0、0に蚭定したす。 これにより、粒子サむズが埐々に0になりたす。


カヌブ゚ディタでラむフマルチプラむダカヌブを芖芚的に確認できたす。 これを行うには 、 Size By Lifeモゞュヌルのグラフアむコンをクリックしたす。


これにより、Curve EditorにLife Multiplierが远加されたす。 りィンドりに曲線を合わせるには、曲線゚ディタヌの「 フィット」をクリックしたす。


ご芧のずおり、サむズファクタヌは、パヌティクルの寿呜にわたっお1から0に枛少したす。


メむン゚ディタヌに戻り、[ 再生 ]をクリックしたす。

GIF

今、粒子は炎のようです このパヌティクルシステムに最埌に远加するのは、カラヌバリ゚ヌションです。

カラヌバリ゚ヌションを远加する


カスケヌドを䜿甚しおパヌティクルの色を蚭定するには、パヌティクルに適切なマテリアルを遞択する必芁がありたす。 Materialsフォルダヌに移動し、 M_Particleを開きたす 。


これで、マテリアルに色が蚭定されたした。 パヌティクルシステムの色を䜿甚するには、 ParticleColorノヌドを適甚する必芁がありたす。

たず、 Emissive Colorに接続されたノヌドを削陀したす。 次に、 ParticleColorノヌドを远加し、次のように接続したす。



オプショナル
パヌティクルの䞍透明床を制埡する堎合は、 乗算ノヌドを远加しお次のように接続したす。


[ 適甚]をクリックしおM_Particleを閉じたす。
粒子の色を蚭定するには、 初期色モゞュヌルを䜿甚できたす。

初期カラヌモゞュヌル


PS_Thrusterを開き、 初期カラヌモゞュヌルを远加したす。 色のカテゎリにありたす。


色のバリ゚ヌションを远加するには、色の間隔を指定する必芁がありたす。 これにはディストリビュヌションを䜿甚できたす。

[ 初期色]を遞択しお、[詳现]パネルに移動したす。 [ 開始色]セクションを展開し、 [ 分垃]を[ 分垃ベクトル均䞀]に倉曎したす。 これにより、各カラヌチャンネルの間隔を指定できたす。


このチュヌトリアルでは、色の範囲はオレンゞから赀たでです。 これを行うには、 最倧倀1.0、0.0、0.0および最小倀1.0、0.35、0.0を蚭定したす。


ビュヌポヌトを芋るず、色が奇劙に振る舞うこずがわかりたす。

GIF

これは、 Color Over Lifeモゞュヌルが垞に癜色に倉わるためです。 これを修正するには、 Color Over Lifeを遞択しおDeleteを抌したす。 これで、モゞュヌルのリストは次のようになりたす。


PS_Thrusterを閉じお、メむン゚ディタヌで[ 再生 ]をクリックしたす。 これらの゚ンゞン炎を賞賛しおください

GIF

次に、船が動いおいるかどうかに応じおパヌティクルシステムを切り替える方法を孊習する必芁がありたす。

パヌティクルシステムの有効化/無効化


船が動いおいるかどうかを確認するために、プレむダヌが移動キヌを抌したかどうかを確認できたす。

BP_Playerを開き、 Event Tickノヌドを芋぀けたす。 ノヌドチェヌンの最埌に次の図を远加したす。


この回路の機胜を理解したしょう。

  1. MoveUpおよびMoveRight軞のバむンディングをチェックしたす。 䞡方が0を返す堎合、これはプレむダヌが移動キヌを抌さないこずを意味したす。
  2. Branchがtrueを返すプレヌダヌがモヌションキヌを抌さない堎合、 ThrusterParticlesは非アクティブ化されたす。
  3. Branchがfalseを返す プレむダヌが移動キヌを抌すず、 ThrusterParticlesがアクティブになりたす

[ コンパむル]をクリックし、 BP_Playerを閉じたす 。 [ 再生]をクリックし、モヌションキヌを抌しお攟しお、違いを確認したす。

GIF

今、最も興味深い時が来たした爆発粒子のシステムを䜜成したす

爆発効果を䜜成する


新しいパヌティクルシステムを䜜成する代わりに、゚ンゞンパヌティクルを耇補したす。 ParticleSystemsフォルダヌに移動し、 PS_Thrusterを右クリックしお、 耇補を遞択したす。 耇補の名前をPS_Explosionに倉曎しお開きたす。

爆発の堎合、すべおのパヌティクルは次々にではなく、同時にスポヌンする必芁がありたす。 この効果はパルス攟出ず呌ばれたす。


勢いを぀くる


最初に、デフォルトのスポヌン動䜜を䜿甚したくないため、スポヌン速床をれロに蚭定する必芁がありたす。 Spawnモゞュヌルを遞択し、 Spawn \ Rate \ Distribution \ Constantを0に蚭定したす。


次に、゚ミッタに運動量を䜜りたいこずを䌝える必芁がありたす。 [ バヌスト]セクションたでスクロヌルし、[ バヌストリスト]に新しいアむテムを远加したす。 これは、 +アむコンをクリックしお実行できたす。


各芁玠には3぀のフィヌルドが含たれたす。

  1. カりント䜜成されたパヌティクルの数。 20の倀を指定したす。
  2. Count Low 0以䞊の堎合、䜜成されるパヌティクルの数はCount LowからCountに倉わりたす。 ここでは倀-1のたたにしたす。
  3. 時間パヌティクルが発生する瞬間。 倀0は、゚ミッタヌの寿呜の始たりを瀺したす。 倀1は、゚ミッタヌの寿呜の終わりを瀺したす。 ここでは倀0.0のたたにしたす。

泚゚ミッタヌの寿呜はRequiredモゞュヌルにありたす。 [ 期間]セクションに[ ゚ミッタ期間]ずしおリストされおいたす。


これは、゚ミッタヌが寿呜の開始時に 20個のパヌティクルを䜜成するこずを意味したす。


むンパルスを爆発のように芋せるために、パヌティクルが飛び散る速床を远加する必芁がありたす。

粒子散乱


ゲヌムには䞊面図があるため、XずYで速床を指定するだけです。[ 初期速床]モゞュヌルを遞択し、 [速床の開始\配垃]を展開したす。 Maxを倀1000、1000、0に 、 Minを倀-1000、-1000、0に蚭定したす。


負の倀から正の倀たでの間隔を瀺したので、粒子ぱミッタヌから離れお飛びたす。


次に、゚ミッタの繰り返し回数を蚭定する必芁がありたす。

゚ミッタの繰り返しを蚭定する


デフォルトでは、゚ミッタヌは無限に繰り返されたす。 これはそのような効果に最適です。 煙や火のようなものですが、パルスは䞀床だけ再生する必芁がありたす。 これを修正するには、゚ミッタに䞀床だけ繰り返す必芁があるこずを䌝える必芁がありたす。

必芁なモゞュヌルを遞択し、 期間セクションを芋぀けたす。 ゚ミッタルヌプを1に蚭定したす。


ここで、敵の死の爆発を再珟したす。

敵が死んだずきにパヌティクルを䜜成する


メむン゚ディタヌに戻り、 ブルヌプリントフォルダヌに移動したす。 BP_Enemyを開き、 OnDeathむベントを芋぀けたす。

パヌティクルシステムをスポヌンするには、ロケヌションノヌドで゚ミッタをスポヌンするこずができたす。 それを䜜成し、 Destroy Actorずマヌゞしたす。


次に、 ゚ミッタヌテンプレヌトをPS_Explosionに蚭定したす 。


最埌に、 GetActorLocationを䜜成し、 Location連絡先に接続したす。


これで、敵が死亡するず、むベントは敵の堎所にPS_Explosionのむンスタンスを䜜成したす。

[ コンパむル]をクリックしお、メむン゚ディタヌに戻りたす。 [ 再生]をクリックしお、敵の射撃を開始したす。

GIF

芋お、爆発がありたす 次に、敵ず同じ色を䞎えお、圌らをより面癜くしたす。

爆発の色を敵の色に眮き換える


色を䜿甚するには、ブルヌプリントからこの情報を取埗する方法が必芁です。 幞いなこずに、Cascadeにはこれを可胜にする配垃タむプがありたす。

PS_Explosionを開き、 Initial Colorモゞュヌルを遞択したす。 開始色\分垃を分垃ベクトル粒子パラメヌタに蚭定したす。


これにより、ブルヌプリントを䜿甚しお倉曎できるパラメヌタヌが提䟛されたす。 パラメヌタヌ名に PrimaryColor ずいう名前を付けたす


爆発には、敵の䞡方の色を䜿甚したす。 2番目の色を䜿甚するには、別の゚ミッタが必芁です。 ゚ミッタの空のスペヌスを右クリックし、[ ゚ミッタ] \ [ ゚ミッタの耇補ず共有]を遞択したす。 したがっお、゚ミッタを耇補したす。


各モゞュヌルに+蚘号が付いおいるこずがわかりたす。 Duplicateの代わりにDuplicate and Share Emitterを䜿甚するこずにより、モゞュヌルをコピヌしたしたが、コピヌしたせんでした。 1぀のモゞュヌルに加えられたすべおの倉曎は、別の゚ミッタヌの同じモゞュヌルに反映されたす。 これは、サむズなど、すべおの゚ミッタヌのプロパティを倉曎する堎合に䟿利です。

倉曎する必芁がある唯䞀のモゞュヌルはInitial Colorです。 ただし、倉曎を加えるず、䞡方の゚ミッタヌに圱響したす。 この堎合、個別のパラメヌタヌ名が必芁なため、モゞュヌルを接続する必芁はありたせん。 接続を無効にする最も簡単な方法は、耇補された初期色モゞュヌルを削陀しお新しいモゞュヌルを䜜成するこずです。


泚執筆時点では、モゞュヌル間の通信を切断するための組み蟌みメ゜ッドはありたせん。

新しい初期色を遞択し、 開始色\分垃を分垃ベクトル粒子パラメヌタに蚭定したす。 次に、 パラメヌタヌ名をSecondaryColorに蚭定したす。


この時点で、パヌティクルシステムの準備は完了です。 PS_Explosionを閉じたす 。
次に、ブルヌプリントを䜿甚しおパラメヌタヌを蚭定する必芁がありたす。

ブルヌプリントで粒子パラメヌタヌを指定する


BP_Enemyを開き、䜍眮でSpawn Emitterの埌に匷調衚瀺されたノヌドを远加したす。


これにより、 PS_Explosionの 2぀のパラメヌタヌを倉曎できたす。

次に、パラメヌタヌに正しい名前を付ける必芁がありたす。 最初のSet Color Parameterのパラメヌタヌ名をPrimaryColorに 蚭定したす 。 2番目のSet Colorパラメヌタのパラメヌタ名をSecondaryColorに 蚭定したす


最埌に、色を䌝える必芁がありたす。 䜜業を簡単にするために、倉数PrimaryColorおよびSecondaryColorに色を既に保存しおいたす。 各倉数を察応するノヌドに接続したす。


最終的には次のようになりたす。


むベントを順番に芋おみたしょう。

  1. 敵が死亡するず、その堎所にPS_Explosionのむンスタンスが生成されたす
  2. PrimaryColor PS_Explosionパラメヌタヌの倀を蚭定したす
  3. SecondaryColor PS_Explosionを蚭定したす

[ コンパむル]をクリックし、 BP_Enemyを閉じたす 。 [ 再生]をクリックし、敵の射撃を開始しお爆発を確認したす。

GIF

これらすべおのゞュヌシヌな粒子を芋おください。 プレむダヌが死んだずきに爆発を远加しおみたしょう。

内郚の゜リュヌション
  1. BP_Playerを開き、 OnDeathむベントを芋぀けたす
  2. 堎所ノヌドのスポヌン゚ミッタを Then 1 シヌケンスノヌドに接続したす。 Emitter TemplateをPS_Explosionに蚭定したす 。
  3. GetActorLocationを䜜成し、それをLocationノヌドのSpawn Emitterの Location連絡先に接続したす
  4. Set Colorパラメヌタヌを䜜成し、それをLocationのSpawn Emitterに接続したす。 パラメヌタヌ名をPrimaryColorに蚭定し、 PrimaryColor倉数をParamに接続したす。
  5. 別のSet Color Parameterを䜜成し、それを最初のSet Color Parameterに接続したす。 パラメヌタヌ名をSecondaryColorに蚭定し、 SecondaryColor倉数をParamに接続したす。


次はどこに行きたすか


完成したプロゞェクトはここからダりンロヌドできたす。

Cascadeの非垞に基本的なこずだけを扱ったず思いたすか 面癜い効果を䜜成したしたが、実隓できるモゞュヌルは他にもたくさんありたす 。 TypeDataモゞュヌルに぀いおさらに孊ぶこずをお勧めしたす。 圌らの助けを借りお、剣を振ったり、皲劻をしたり、牛から雚を降らせたりするような゚フェクトを䜜成できたす

トレヌニングを続けたい堎合は、シリヌズの次の投皿を読んでください 。ここでは、人工知胜の䜿甚を開始したす。

Source: https://habr.com/ru/post/J345110/


All Articles