スポンサーリンク

Unity実習25、エフェクトを作ってみよう

SnapCrab_NoName_2016-6-9_17-14-55_No-00.jpg

エフェクト作りです
どういうものかというのを本から引用

Unityには「Shuriken」と呼ばれるパーティクルシステムが搭載されており、エフェクトを作成することが出来ます。パーティクルとは、スプライトの粒で火や煙などの複雑で不規則な形状を表現する技法です。


Shurikenって手裏剣なんですかね?
覚えやすくていい
ここにきてパーティクルって言葉が出てきましたね、よくゲームの設定でいじれたりしますが、こういうことですか
スプライトについてはWikipediaへどうぞ
スプライト (映像技術)

やっていきましょう
エフェクトを作る準備
テクスチャをインポートします
ProjectのAssets内に UNIDRA_DATA/Data/MainGame/Effect をドラッグ&ドロップ
SnapCrab_NoName_2016-6-9_15-9-19_No-00.jpg

HierarchyでCreate > ParticleSystem を選択
ParticleSystemが作成されると、Sceneに白い光が現れます
右下のウィンドウではパーティクルの動きを制御できます
SnapCrab_NoName_2016-6-9_15-11-30_No-00.jpg

SnapCrab_NoName_2016-6-9_15-11-21_No-00.jpg

ヒットエフェクトを作る
ParticleSystemの名前を HitEffect に変更
Inspectorで基本項目の設定を行います
画像のとおりに設定して下さい(書くのが大変なので)
SnapCrab_NoName_2016-6-9_15-18-29_No-00.jpg

本より項目が増えたり減ったりしてますね、こういうものでしょうか
それぞれどんな設定なのか、本より引用、本にないものはこちらで書いてます

Duration: エミッター(パーティクルの発生源)がパーティクルを発生し続ける時間。パーティクルの寿命ではない。

Looping: 設定したDurationの時間になった時、ループさせるかという設定。

Prewarm: 予めパーティクルを発生させる。パーティクルはSceneに作成された時から発生するが、出始めを見せたくない時に使う。ループがOnの時のみ設定可能。

Start Delay: エミッターがシーンに作成されてからパーティクルが発生するまでの時間を遅らせることが出来る。PrewarmがOffの時だけ設定可能。

Start Lifetime: パーティクルの寿命。発生してから消えるまでの時間を指定します。※カーブ設定も可。

Start Speed: パーティクルの発生初速を設定。単位はm/s。※カーブ設定も可。

Start Size: パーティクル発生時の大きさを設定。※カーブ設定も可。

3D Start Rotation: If enabled, you can control the rotation separately for aech axis.

Start Rotation: パーティクル発生時の回転角度を設定。※カーブ設定も可。

Randomize Rotation Direction: Cause some particles to spin in the opposite direction. (Set between 0 and 1, where a higher value causes more to flip)

Start Color: パーティクル発生時の色を設定。※カーブ設定も可。

Gravity Modifier: Scales the gravity defined in Physics Manager

Gravity Multiplier: 重力の設定ができます。+で下向きへ、ーで上向きへ加速していく。

Inherit Velocity: エミッターが動いた際に動いた方向と速度に応じて、パーティクルの初期速度に加算します。次の項目のSimulationSpaceがWorldでないと効果がない。

Simulation Space: パーティクルが常にエミッターの位置から相対的な位置になる(Local)か、発生後はエミッターの位置を考慮しない(World)かの設定ができます。

Scaling Mode: Should we use the combined scale from our entire hierarchy, just this particle node, or just apply scale to the shape module?

Play On Awake*: エミッターが作成された時から自動的にパーティクルを発生させるかどうかを設定できます。

Max Particles: Durationで指定した時間内に発生するパーティクルの最大数を設定。


新しく増えたのは英語のままです、どういう意味なんだか
消えた奴も一応書いておきました

Emissionモジュールの設定
Emissionの欄をクリックするとメニューが現れます
画像のように設定
SnapCrab_NoName_2016-6-9_16-0-3_No-00.jpg

Rate: パーティクルの発生数を設定。Timeは1秒間の発生数、Distanceはエミッターが移動するとパーティクルが発生。
Bursts: RateがTimeの時に設定可能。指定の時間にパーティクルを発生させます。
(Time: 発生時間 Min: 最小数 Max: 最大数)

Velocity over Lifetimeモジュールの設定
これはパーティクルの速度をコントロールするモジュールです
まず、左の○にチェックを入れて有効にします
SnapCrab_NoName_2016-6-9_16-4-50_No-00.jpg

そうしたら開いて
右端の▼を押して、Random Between Two Constants を選択
無題

画像のように設定
これで、(X: 0.1 Y: 0.1 Z: 0.1)から(X: -0.1 Y: -0.1Z: -0.1)間の速度でエフェクトが発生するようになります
...どういうことなんでしょうね
SnapCrab_NoName_2016-6-9_16-10-31_No-00.jpg

Color over Lifetimeの設定
モジュールを有効にします
SnapCrab_NoName_2016-6-9_16-13-59_No-00.jpg

開いて、白いボックス部分をクリック
Gradient Editorが起動します
ここでは、任意の時間に任意の色および透明度(Alpha)を設定できます。
横軸はDurationで設定した時間
上のキーは透明度、下のキーは色の設定ができます
バーの上を選択して、キーを増やします
画像のように設定
無題2

右上のキーを選択して透明度を0に
無題3

左下のキーを選択して色を付けます
Colorを押して色パレットを呼び出したら、R: 150 G: 15 B: 15 に設定
右下も同じ色にします
無題4

これで色の設定は終わり

Size over Liferimeの設定
パーティクル発生から時間の経過による大きさの変化をコントロールします
モジュールを有効にして開いたら、Sizeにあるボックスをクリックします
SnapCrab_NoName_2016-6-9_16-42-8_No-00.jpg

するとInspectorの下にParticle System Curvesが現れるので、下にある様々な曲線の中から、左から6番目にある曲線を選びましょう
もっと細かく設定することもできるそうです
SnapCrab_NoName_2016-6-9_16-43-48_No-00.jpg

Rendererの設定
パーティクルの描画に関する設定です
有効にして開いたら、RendererModeの項目を Streched Billborad に変更します
これは、パーティクルの移動速度や距離に応じて、パーティクルを伸ばして描画する機能です
火花なんかは、赤い点が飛び出した後に尾が伸びてますよね、そんな感じです
Length Scaleの値を変更します
この値が大きいほど伸びていきますが、今回はテクスチャの素材に合わせて反転して伸ばしたいので負の値にするそうです、どういうことかな?
SnapCrab_NoName_2016-6-9_16-47-57_No-00.jpg

Shapeの設定
パーティクル発生源の形状を設定します
今回の発生源は大きさを持たず、中心の点から発生するので不要な項目になります
なので、モジュールの○のチェックを外します
SnapCrab_NoName_2016-6-9_16-54-47_No-00.jpg

マテリアルの設定
ProjectのAssets/Effect/Texture/tex_hitをHierarchyにあるHitEffectにドラッグ&ドロップ
SnapCrab_NoName_2016-6-9_16-56-45_No-00.jpg

すると、tex_hitのマテリアルが自動的に作成され、新たに作られたAssets/Effect/Materialsフォルダーの何かに作成されます
SnapCrab_NoName_2016-6-9_16-57-33_No-00.jpg

マテリアルを選択して、Inspectorで設定
Shaderを Particles > Alpha Blended に設定
Tint Color をRGBAすべて 128
SnapCrab_NoName_2016-6-9_17-0-39_No-00.jpg

設定をしたら、プレハブ化、Assets/Prefabに入れておきます
プレハブ化したらHierarchyにあるHitEffectは消しておきましょう

敵にヒットしたときにエフェクトを出したいので、EnemyCtrl.csを編集
ProjectにあるEnemyCtrl.csに UNIDRA_DATA/Data/MainGame/Scripts/Chapter15/EnemyCtrl.cs を上書き

上書きしたら、WargとDragonのプレハブで、InspectorのHit EffectにHitEffectのプレハブをドラッグ&ドロップ
SnapCrab_NoName_2016-6-9_17-9-57_No-00.jpg

敵に攻撃を当てた時に、しっかりとエフェクトが出ていればOK
SnapCrab_NoName_2016-6-9_17-14-55_No-00.jpg

きりが良いので今回はここまで
次回は他のエフェクトもくっつけていきます
関連記事

Leave a Reply


管理者にだけ表示を許可する

Comment

Leave a Reply


管理者にだけ表示を許可する