この記事はKLab Creative Advent Calendar 2019の7日目の記事になります。

こんにちは!
KLabでCGデザイナーをしているaoと申します。

少し前まで2Dアニメーション系の業務を担当しておりましたが、
今年に入ってからUnityやmayaを使用した業務を頂く機会がありまして、
現在は3Dアクションゲームのエフェクト制作業務に携わらせて頂いています。

今回は

  • Adobe AfterEffect
  • MAYA
  • Unity

を使って、簡単に作れる突進エフェクトの作り方を紹介します。

Unity歴、maya歴共に1年未満の私が教えるエフェクトの作り方なので、
難しいことはしません!安心してくださいね。

というわけでこんな感じのエフェクトを作ります↓

image13

1.テクスチャの準備(AfterEffect)

まずはテクスチャを用意しましょう。
今回用意したテクスチャがこちら。
(テクスチャサイズは256×128で作成しています。)

image15

突進エフェクトなので、キャラクターが動いたときに出る『衝撃波』をイメージして平面のパスを切って描いていきます。
トゲの大きさがバラバラな方がそれっぽい気がします。

後々円形のメッシュに貼ることになるので、つなぎ目が目立たないようテクスチャがループするようにしておきましょう。

モデルに貼ってみたら、ちょっとイメージと違うわね…ということが良くあるので、とりあえずこんな感じかな?というところで終わりにしておきます。
何かあったら後で修正すればよいのです。

2.モデルの準備(MAYA)

テクスチャが出来たら次はmayaでモデルを作ります。

作り方

①シリンダーを用意します。
image21

②大きさや分割数をいじったら、上下のキャップと下半分を削除します。image22

③上下の頂点をそれぞれ動かして、おわん型のモデルが出来たら完成です!image23

先ほど作成したテクスチャをメッシュに貼り付けて見え方を確認します。

トゲの間隔を調整したい場合は、下の画像のようにUVの間隔を伸縮させてお好みの間隔に調整してください。

今回はUVを伸ばして配置した状態のメッシュを使用しました。

image24
image25

3.エフェクトを作る(Unity)

particleの形状を決める

テクスチャとモデルがそろったのでいよいよUnityでの作業に移ります。

1と2で作成したテクスチャ素材とメッシュ素材を取り込みます。
Project上にフォルダを作成し、そこに必要な素材をまとめておきましょう。
image16

次にMaterialを作成します。
image19 Project上で右クリック>Create>Materialをクリックで作成できます。

作成したMaterialのshaderを設定します。
今回は発光感のあるエフェクトにしたいので、Additiveを使用しました。
image2

Hierarchy上にParticle systemを作成します。
image18 Hierarchy上で右クリック>Effect>Particle systemをクリックで作成できます。

続いてInspector上で作業していきます。
RendererにmeshとMaterialをそれぞれの箇所に入れます。image8

・Render modeを『Mesh』に変更し、先ほど作成したメッシュを入れる
・Materialも同様に先ほど作成したMaterialを入れる

このときRendererAlignmentをviewからworldに変更しておきましょう。
デフォルトで設定されているviewのままだと、どの角度から見てもメッシュの形状が一定の見え方になってしまうためです。
image3


ParticleをZ方向に向かって衝撃波が広がるように動かしたいので、Particleの向きを画像のように設定します。
image26


ここまでの工程で横向きの衝撃波が発生するように設定できていればOKです!
image4

Particleの動きを付ける

Emitterの形状を決める

今回のエフェクトでは中央の1点から発生させたいので、デフォルトでOnになっているshapeのチェックは外しておきましょう。
image12

※Radiusの値を限りなく0に近い値に設定することでも同じような結果を得られますが、
 簡単なのでこちらの方法がおすすめです!

今回は同じ衝撃波を一度に4つ連続で発生させたいため、EmittionのBurstを使用します。
※Burst:一度にParticleを発生させたい場合に使用します。
image5


・Time:Particleを再生してから何秒後に発生し始めるか
・Count:発生させるParticleの数
・Cycle:何回発生させるか
・Interval:発生させる間隔

一度に4つの衝撃波が発生するようになりました!
image11

Particleの進む方向を決める

キャラクターが前に進む際に衝撃波が後ろに流れるようにしたいので、
『Velocity Over Lifetime』を以下のように設定します。
image9


Zにマイナス値を入れることで、発生した粒が後ろに進むようになります。
image1

Particleの動きに緩急をつける

勢いよく発生し、余韻を残すような動きにしたいので、今回はスケールのアニメーションを使って表現していきます。

Particleの発生時の大きさを設定します。

『Start Size』『Size Over Lifetime』を以下のように設定します。image17

image20

デフォルトのLifetimeが5秒に設定されているので、今回はもう少し勢いを付けるために0.2秒に設定します。

image10

これで一旦衝撃波が出来上がりました!
動きの緩急や大きさを調整する前と調整した後を比較するとこんな感じです。

(左:調整前、右:調整後)

モーションの長さやキャラクターの動きに合わせて衝撃波の発生タイミングや個数を調整してください。

Particleの色を付ける

徐々に消える動きを付けたいので、
『Color Over Lifetime』を使って時間経過と共に薄くなるように設定します。
image6

4.完成!!

これで突進エフェクトの完成です!
image13

ーーーーーーーーー

いかがでしたでしょうか?
かなりざっくりな説明になってしまいましたが、作ってみようかな?と思ってくれる方がいらっしゃると嬉しいです。

エフェクトに関してまだまだ未熟な私ですが、KLabには技術力の高い先輩がたくさんいるので、今はいろんな方にお世話になりつつ自分ももっと成長して行きたいなと思っています。
もしまたこんな機会があれば、次はもう少しレベルアップした内容の記事が書けるようにしたいですね!

最後まで読んでいただきありがとうございました!