ポートフォリオ








炎の斬撃
製作時間:約15時間
キャラクターのモーションに合わせたエフェクト制作の練習として作った作品です。
キャラクターとモーションは以下のものを使わせていただきました。
Mixamo https://www.mixamo.com/#/
キャラクター
・Maria WProp J J Ong
モーション
・Great Sword Idle
・Great Sword Slash

メッシュ作成
モーションは既製品のものを使ったため、そのモーションに合わせた斬撃の形にすることに注意しました。Blenderで読み込んだモーションデータを用いて剣の動きに合わせてカーブを作りそれに合わせてメッシュを形成しました。今回は少しゆがんだ半円形でしたがもっと激しい動きでも対応できます。
大学ではMayaを使ったモデリングも学んでいたので今回のような斬撃以外でも螺旋などといった造形も自分で作成、調整できます。


shader
shaderはshader graphを用いて作成しています。
斬撃に使ったshaderは汎用的に使えることを念頭に置いて作ったshaderであり、メインのテクスチャとマスク用のテクスチャ、そして歪み用のテクスチャの3種類を用意すれば使えます。(各種のテクスチャのタイリングもマテリアルで設定できます。)
マスクとディストーションはscroll_speedに数値を入れれば時間経過でスクロールします。
メインテクスチャに関しては細かいスクロールの調整をすることを考えて、shurikenのCustom Dataを参照にするようにしています。主にカーブで最初と最後はゆるやかにするなどといった形で制御しています。
そのほかソフトパーティクルやフレネル効果のオンオフと調整もできるので、大抵のエフェクトには対応できます。
上の画像のマテリアルで作ったのが下の斬撃になります。
UVテクスチャを右半分によせることでUVスクロールで端から斬撃が出てくるようにしています。マスクはUVの両端でグラデーションでテクスチャが消えるようにするためのものです。歪みに関しては今回はメインのほうが動いているので歪みのほうを動かさない方が斬撃が動くにつれて形を変えるのが表現できたと思います。
爆発
制作時間:約16時間
セルルック調の爆発エフェクトとして作りました。セルルックとして見えるようにShader Graphを使ったShaderの作成や、光からの爆発、煙などの変遷がきれいに見えるように気を付けました。
汎用シェーダーで対応しきれないトゥーン表現やディゾルブなどの表現は難しかったですがやりがいはありました。爆発と煙に使ったShaderは同じもので色の調整はもちろん明るい部分と暗い部分の割合などといったことも個々に細かく調整できるようにしています。


爆発と煙のメッシュ
爆発と煙に使っているメッシュはBlenderの機能を使って作りました。
メッシュをノイズでランダムに膨らませたもので、それをランダムに回転させて複数組み合わせることで煙や爆発の形にしています。
このメッシュを作ってて感じたのは自分の手で膨らませるよりもノイズ機能を使った方が速くてそれらしい形になるので、自分の手に拘るべきは使うノイズの選定と最後の微調整でいいと学びました。
弾道予測線
制作時間:約14時間
スクリプトを使ったエフェクト作成の練習で作りました。
射撃モードになるとまず着弾地点の空オブジェクトを大砲の前に作成。発射口と着弾地点の座標を取得して事前に設定した重力、弾道の高さなどをもとに弾道を演算してその形にLine Rendererを形成するようになっています。加えて放物線が伸びても予測線のテクスチャが伸びないようにLine RendererのTexture Scaleを調整するようにしています。
砲弾は物理演算で飛ぶようにしてあるので、発射すれば物理演算で弾道予測線通りに飛んで着弾地点に落ちます。



注意した点
ゲームにする時には後で細かく調整できることに気を付けるべきと考え、きちんと細かい設定をインスペクターからいじれるようにすることを心掛けました。作ったスクリプトは発射口や着弾地点などの管理、Line Rendererの調整などを行うTrajectory Rendererと上記のProjectile Prefab(砲弾エフェクト)につけることで砲弾を弾道予測線の通りに飛ばしつつ着弾時に爆発エフェクトを起こすProjectileの二つです。下から4つの数値をいじることで弾道の調整を後でできるようにしています。
ゲームに実装するときにどういった手順で行うかを自分なりに調べてやってみて、手順を調べてみた段階では予想してない問題がいくつも出てきて勉強になりました。
エフェクトとは関係ないですが砲台の向きを着弾地点の方向に向ける処理などこういう仕様にするにはここの数値をこういじるといた方法を考えるのが楽しかったです。
氷柱
制作時間:約9時間
複雑な形のメッシュを使ったエフェクトの作成の練習として作りました。
気を付けた点としては氷としての透明感を出すことと、冷気のエフェクトとして氷霧や霜の表現です。
氷や霜の部分はすぐにできたのですがオーラがなかなかうまくいかずに手間取りました。最終的にはメインテクスチャの調整はもちろんメッシュや歪みの強度など細かく調整してうまくできたと思います。



メッシュの調整
このエフェクトを作るにあたっていろいろなメッシュを作りましたが拘った点としてはなるべく少ないメッシュの種類で表現をすることでした。オーラのメッシュはテクスチャが放射状に広がるようにした円形を組み合わせただけですが、最初の氷の風は90度見る方向を変えると曲がり方が変わって見えるように作ったものをいろいろな方向に回転させて一つのメッシュで複数の軌跡に見えるよう気を付けました。
氷のメッシュもまた突き出た部分は非対称なので回転させれば見え方が変わります。

ディゾルブ
氷の消える部分に関してはディゾルブですがこれもまたShurikenのCustom Dataで制御するようにできています。主にカーブを使って消え方を細かく調整する使い方をしています。
氷に関してはそのまま消えるようにしましたが、最後だけ緩やかにすることで余韻を強く残したりといったこともできます。ディゾルブ用のテクスチャを調整するよりもこういった形で制御するほうが後から調整しやすいので重宝しています。
バリア
制作時間:約7時間
バリアエフェクトの練習として作成。
キャラクターとモーションは以下のところからお借りしました。
Mixamo
https://www.mixamo.com/#/
キャラクター
・Paladin J Nordstrom
モーション
・Idle
・Standing 2H Magic Area Attack 02


バリア部分
バリア部分に関しては基本に忠実に球体のメッシュにテクスチャで作りました。
手前になる表側と奥になる裏側で違うエフェクトにした他、バリアの接地面がなじむようなソフトパーティクルやエフェクトなど丁寧に作りました。

パーティクル
今回一番試行錯誤したのはパーティクルの動きです。
最初の光の粒が集まるところはVelocity over lifetimeでもってランダムな動きをしながら中央にあつまる動きを、バリアが発生するときにはnoiseを使って動きを制御しました。
前者の動きに関してはきちんと最後には中央に行くようにしながらも、途中でしっかりわかる動きをさせるのに数字の調整に時間がかかりました。後者もnoiseのそれぞれの項目がどのような形で影響するのかを調べながら進め、Limit Velocity over lifetime なども絡めつつ進めるのは大変でした。

雷
製作時間:約8時間
雷エフェクト及びチャージ表現の練習。
雷の部分は4×4の連番アニメーション。



メッシュ
使用するメッシュやテクスチャの量は少なければ少ないほどいいので、雷のメッシュも氷の時と同様に一つのメッシュで見え方が変わるように作りました。X方向から見た場合とZ方向から見た場合で全く違う曲がり方をしており、さらに斜めからみた場合もまた変わるので同じテクスチャの雷でも同じ形の雷には見えないようにできたと思います。


電気の表現
雷を表現するうえで気を使ったのが放電の表現と雷が起きたときの現象の順番です。
まず雷が落ちてから光がはしり衝撃波と煙が続くといった一連の動き。雷が落ちた後の周囲が帯電している状態などがよくできたと思います。
火吹き
製作時間:約9時間
アニメ的な炎演出の作品。
メッシュを歪ませることでより複雑な表現をするための練習。
YouTubeにあったゲームエフェクト作成動画を参考に自分なりの再現を目指しました。


炎の表現のための工夫
炎はUVスクロールで一枚のテクスチャを移動、歪ませて動きを加えながらディゾルブで消すという形で表現しています。それに加えて同じ炎を上に広がるもの、横に広がるもの、下に広がるものと混ぜて表現しました。
ディゾルブで消える表現も根本から順に消えていくのは簡単だったのですが、それでいて炎が千切れるように消えていくのを表現するためにテクスチャを工夫するのが大変でした。
水のバリア
製作時間:約22時間
水の表現の練習として作成。
意識してShader graphの機能を活用するようにしました。
汎用shaderではできないメッシュの頂点の移動や複数のテクスチャの加工などを使い表現しました。

水の表現
水の表現に関してはさまざまな参考資料があり、今回はトゥーン表現にさせてもらいました。
水でできた狼の軌跡に水がはしり、はじけてバリアになるという形で表現するためにしたことはまずディゾルブシェーダーの改造です。単純に狼の軌跡通りにテクスチャが出てくるだけでは水のように揺らがせることができないので、一本線の上にさらにUVスクロールで動くノイズのテクスチャを乗算することで軌跡が揺れ動くようにしました。
その後一気に水のバリアができるシーンでは球体のメッシュに沿う形で斜めに走るメッシュで外側に飛ぶ飛沫を作成。接地面にも水の勢いを表現するための波形を入れるなどしました。
球体のメッシュの頂点を法線方向に動かすなどShader Graphでできる表現に挑戦しました。


水飛沫
個人的に一番悩んだのが水しぶきの表現でした。
水面の表現方法などは調べればいくらでも参考にできる資料が出てくるのですが、水しぶきのものに関しては連番アニメーションなどでのものが多くあまり参考にできませんでした。最終的には水面のテクスチャを飛沫の形にアルファでくりぬいてからディゾルブで消すという形におさめました。
バリアが散るときの水しぶきは波のテクスチャをY方向に伸ばしながらディゾルブで消すという形で表現しています。次は連番アニメでの表現に挑戦したいと思います。
こういったエフェクトをどういう形で表現するかを考えるのは難しくも楽しかったです。
