動的EmissionSystemのソースコード

完成図

この様にドット絵にリッチな表現を加えます
f:id:hiromunomymail:20210613014855g:plain

はじめに

今回はアニメーションの動きに合わせて

EmissionMapを設定できる方法をGitHubにまとめたのでその紹介記事です

ソースコード各種素材

github.com

今日の主役ですね必ずダウンロードしてください。

使う前の下準備

今回はデモにUnityちゃんを使うので必ずダウンロードしてProjectにいれてください。

unity-chan.com

実際に使う時はUnityちゃんのライセンス表記漏れが無いようにしましょう。

Animatorをアタッチする

今回はUnityちゃんのアニメーション中にEmssionさせるので Animatorをアタッチします   f:id:hiromunomymail:20210613143414p:plain

ControllerにはUnityChan(Sword)を指定しましょう。

EmissionMapをダウンロード

GitHubに上がってるEmissionMapのファイルをダウンロードしてUnityに取り込みましょう。 f:id:hiromunomymail:20210613150139p:plain

Unityに入れたら必ずTextureTypeをSpriteに指定しましょう。

使い方

GameObjectにChangeEmissionMapSystemをアタッチする

まずEmissionさせたいオブジェクトに
GitHubにUPされたChangeEmissionMapSystem.csをアタッチします。 f:id:hiromunomymail:20210613140415p:plain

Emissionさせたいゲームオブジェクトは現在上記の様に成ってると思います。

次にEmissionさせたい色をChange2EmissionColorで事前に指定しておきましょう。 f:id:hiromunomymail:20210613141655p:plain

次は初期化時の色をInisializeEmissionColorに指定しましょう。これは基本ブラックで良いと思います。

Animatonを設定する

f:id:hiromunomymail:20210613144117p:plain

まず上記の要領でAnimationWindowを表示させます。 f:id:hiromunomymail:20210613144438p:plain

次にAnimationをUnityChanAttack_6に指定しておきます。

f:id:hiromunomymail:20210613145143p:plain

AddPropertyからChangeEmissionMapSystem/EmissionMapを追加します

AnimatorでEmissionMapを指定する

ProjectViewからChangeEmissionMapSystem/EmissionMapにEmissionMapを指定します。

f:id:hiromunomymail:20210613151032p:plain

上記の様にGameViewでコマの動きを確認しながらEmissionMapを指定すると良いです。

EmissionMapを指定しましたら実際に実行してみましょう。 f:id:hiromunomymail:20210613151738p:plain

実行したら再度AnimationViewでAnimationを指定して

右三角の再生ボタンを押すとアニメーションが再生されます

これで完成です! どうでしょう上手く行きましたか。

終わりに

EmissionMapを指定するのが面倒なのがこのシステムの欠点ですが 上手く行ったでしょうか。

機会があればAnimatotionのファイル名を元にEmissionMapを指定するシステムを作りたいと思いました。

ではこれで最後ですお疲れ様です。

ライセンス

f:id:hiromunomymail:20210613110859p:plain