moyasiエフェクト館

主にエフェクト関係の記事を上げていこうかと思います。


エフェクトに関係する記事上げてきます
エフェクト関係の記事の内容は緩く募集中
自分がわかる範囲であれば書いていこうかなと。

【UE4】エフェクト版のMID(マテリアルインスタンスダイナミック)

f:id:tktknkyo:20180104215922p:plain

タイトル通り、エフェクト版のMIDについて(まだ不完全な部分もあります、ご了承ください)

【MIDについて】

そもそもMID(マテリアルインスタンスダイナミック)というのは

ゲーム中に動的に、マテリアル内のパラメータを変更する事が出来るというもの。

f:id:tktknkyo:20180104220237p:plain

考え方はDynamicParameterと一緒ですが

この変更をBPで行うというもの。

パラメータ数の制限などがなく、BPで数値を制御できるので、自由度が増します

ただし、設定が割と面倒です。

 

【マテリアル側の設定】

f:id:tktknkyo:20180104222023p:plain

まず、P_Fireを開き、そこに使われているマテリアルに変更を加えます

エミッタのRequiredをクリックしたあと、Materialに入っているマテリアルをダブルクリックして、マテリアルエディタを開きます。

f:id:tktknkyo:20180104221948p:plain

開いたら、オパシティに繋いである部分を、「Multply」に繋いで

Bには「Scalar parameter」(OPとなるノードです)

を接続して

f:id:tktknkyo:20180104222324p:plain

ParameterNameをOP(ここは、BPで数値いじる際に使うので、解りやすい名前を)

DefaultValueを1に

 

この変更を、ほかのエミッタでも行います

 

f:id:tktknkyo:20180104220438p:plain

今回は、スターターコンテンツにある、P_Fireを使い

条件を満たしたときに、色が透明になっていって消える処理を作ります。

 

f:id:tktknkyo:20180104220552p:plain

BPのイベントグラフではこのようになっています。

 

f:id:tktknkyo:20180104220656p:plain

また、今回はDistortionというエミッターは無効にしておいてください(マテリアルの作りが特殊だったので)

 

 

 

f:id:tktknkyo:20180104220828p:plain

まず、ActorクラスのBPを作り

その中に、P_Fireと、判定用のboxCollisionを追加します(BoxCollsionは、判定用のみなので、ほかの手段でも問題ないです)

 

【BPによる設定】

 

今回は、炎に当たった時に、炎が消えていく処理にしたいので

f:id:tktknkyo:20180104221044p:plain

炎より大きめのboxCollsionにします、そして、接触したら判定されるように

OnComponentBiginOverlapを追加します

 

f:id:tktknkyo:20180104221312p:plain

この判定用から、Create Dynamic Material Instance

のノードを順番に繋げます

今回のP_Fireは、エミッターを無効化したのを除けば、エレメントが5種類あるので

同じノードを複製して。

f:id:tktknkyo:20180104221525p:plain

Element Indexを0~4の順番に設定して、それらを5つ繋げます

ターゲットには、コンポーネントのP_Fire

SourceMaterialには、そのエレメントに登録してあるマテリアルを入れます。

f:id:tktknkyo:20180104221652p:plain

ドラッグ&ドロップしようとすると、このように表示されますが、きちんと登録されます。

 

f:id:tktknkyo:20180104222606p:plain

 

その後、タイムラインノードを追加し、トラックを追加します。

 

f:id:tktknkyo:20180104222854p:plain

F+という、左上のアイコンクリックしてトラックを追加

その後、黄色の部分で時間を指定して、カーブを作ります

このカーブの秒数は任意で構いませんが、今回は2秒かけて1→0になるようにしました。

 

これにより、タイムラインにfloat型の出力ピンが出てくるはずです。

 

f:id:tktknkyo:20180104223230p:plain

次に必要なのは、実際に数値をマテリアル側に渡すノードである、この「Set Scalar Parameter Value」というノード

アンダーラインを引いていますが、対象が「Material Instance Dynamic」(MID)です

そして、コンポーネントにMIDは入っていません

f:id:tktknkyo:20180104223735p:plain

 

この状態で、検索すると、ノードは確かに出てきますが

 

f:id:tktknkyo:20180104223825p:plain

違うノードが出てきます(これは、マテリアルコレクションに入れてある数値を変更するノード)

 

f:id:tktknkyo:20180104224013p:plain

なので、このノードを出す方法は

このように、MIDの情報が入っている場所から引っ張ってください。

 

f:id:tktknkyo:20180104224237p:plain

また、変数として、MIDを新たに作って、Getしてこれば同じノードを出すことも可能ですが。

今回の場合は、既にあるノードから作ったほうが楽です。

 

f:id:tktknkyo:20180104224650p:plain

この、新しく作ったノードに「Create Dynamic Material Instance」ノードのRetum Valueを全て引っ張ってきます

ParameterNameは、マテリアルに入れた、ScalarParameterの名前を入れます。

 

この状態で、BoxCollisionに触れると、だんだん透明になっていくのが分かると思います。

 

f:id:tktknkyo:20180104224959p:plain

このオレンジの部分が見えていますが、これはカスケードにある、lightの影響です

あくまで、マテリアル側の数値にしか変更を加えてないので、この様な例も残ってしまいます。

 

 

これで、できたとなりましたが、今のままでは出来てもやや、というかかなり問題が

エレメントの順番が変わると、設定し直さないといけない

あまり、効率的とは言えないと思われます。

f:id:tktknkyo:20180104230437p:plain

マテリアルを直接指定するのではなく

P_Fireから、直接マテリアルの情報を持ってくる方法、これであれば

順番が変わっても対処は必要無しに。

 

もっと効率化の方法ありそうなので、色々試したのですが、中々上手くは行ってくれませんでした。

自分はまだまだBPはそこまで詳しくないのもありますが...

 

 

 

 

 

 

 

 

 

 

 

【Effekseer】UV固定の利用

f:id:tktknkyo:20180104070413p:plain

今回は、Effekseerの機能である、UV関係を

Effekseerでは、「描画共通」にある、UVという項目から設定します

f:id:tktknkyo:20180104070922p:plain

UVには、「標準」「固定」「アニメーション」「スクロール」「Fカーブ」

この5種類があります。

今回、なぜタイトルに「UV"固定"」なのかといいますと、恐らく最も用途が解りにくいと思ったのが理由です。

【UV固定あれこれ】

UVは、画像の座標と考えたらいいと思います。

例えば、解像度が256*256の画像を読み込んだ場合、UV固定にして大きさを256*256にすると、そのまま表示されます。

f:id:tktknkyo:20180104071339p:plain

これは、256*256解像度の

●状の画像を、256*128に設定したもの

256*256の画像の中から、256*128の部分のみ描画されるので

下半分が切り抜かれた形になります。

f:id:tktknkyo:20180104071734g:plain

この機能を使うことで、元の画像を弄ることなく、この様なレーザーに使えそうな描画などが可能になります。

UV固定は、元の画像を多少加工する様な処理になるので、元の画像を加工する事で同じことは可能です。

 

f:id:tktknkyo:20180104072241p:plain

こちらは、外側という項目を、繰り返しに設定し

X1024Y256に設定した場合です

1024は、256の4倍で、外側が繰り返されるので、4つに表示されます、これがいわゆるタイリング処理です。

発生数を誤魔化したりにも使えます。

 

f:id:tktknkyo:20180104072515p:plain

また、外側をクランプに変更すると、座標がXYZ0でも、中心位置からずれます

これは、繰り返しから、一番左のみ表示される為です。

 

f:id:tktknkyo:20180104072713g:plain

中心位置からずれるので、この状態で、Z軸回転ビルボードにして、Z軸を回転させると

回るだけでなく、動くようになります。

処理としては、中心点を軸に回っているだけになりますが

f:id:tktknkyo:20180104072928p:plain

UV固定によって、画像の白い部分が端にいったので

中心で回転させているだけでも、このように動いているように見えます。

 

f:id:tktknkyo:20180104074155g:plain

こういうのを1つのノードだけで作りたいときには、便利になるのかなと。

ただ、基本的に画像を加工しているだけなので、画像自体を加工すれば同じことができるのと。

UV固定で空白を開ける場合は、親子階層でも基本的に同じことはできるので

固定を使わないと出来ないことは、まずないのかなと。

 

【UV固定のタイリング】

 

UV固定を使う場合は、恐らくタイリングさせる場合の方が多いと思います。

f:id:tktknkyo:20180104074725p:plain

例えば、この様な縦横シームレスなテクスチャがあると仮定いします

この画像は、元々の解像度が高めですが

画像の解像度が高いと、画像の容量もかなり大きくなってしまいます。

なので、解像度が低くても誤魔化す為に主に使われます。

f:id:tktknkyo:20180104074945p:plain

こちらが、縦横2つづつ並べたもの

元の画像は一緒ですが

模様が細かくなっているのが分かると思います。

こうする事で、元の画像の解像度が低くても、誤魔化すことができます

f:id:tktknkyo:20180104075119p:plain

ただし、タイリングをしすぎると、繰り返しというのが見えやすいので、そこには注意が必要です。

 

【UVスクロール】

 

UV関係では比較的に使われやすいと思われるUVスクロール

UVスクロールとは、簡単に言えば画像の座標を常にスクロール(動かす)します。

 

f:id:tktknkyo:20180104075533g:plain

シームレスな画像であれば、このUVスクロールをかなり有効に発揮できます

ただ、これをみても、エフェクトにどう活かすのか?というのは

使ったことが無い方には、解りにくいと思います。

 

f:id:tktknkyo:20180104075727g:plain

これは、上のただ下から上にスクロールしている描画を

描画から、リングに変更し、頂点数を255に変更したものです。

 

f:id:tktknkyo:20180104075907g:plain

これは更に、内輪を0に変更したものです。

単純にスクロールしている状態では、そのままでは使い道なさそうですが

このように、リングと併用すれば、そのままでも使えそうな描画になります。

UVスクロールは、基本的に3Dモデルと併用する事で、綺麗な描画にする事が可能です。

リング機能は、簡易的な3Dモデルを作るもの、と考えてもらえばOKです。

 

【UVアニメーション】

これは、専用の画像が必要で

f:id:tktknkyo:20180104080812p:plain

このブログで配布している素材の一つである、この画像を使った場合

f:id:tktknkyo:20180104080908g:plain

この様な表示になります。

設定項目が若干ややこしいです。

f:id:tktknkyo:20180104081002p:plain

始点は、開始を始める位置ですが、変わった作りでなければ基本は不要かと

大きさは、画像全体の大きさではなく、1セルの大きさです

今回の例では、横5マス縦4マスで、画像全体のお起きが960*768なので

960/5=192

768/4=192

となるので、XとYに192と入力

1枚辺の時間は、何Fで次のコマに移動するかを設定

無限という項目にチェックを入れると、同じコマで固定されます。

UVをアニメーションさせる用途には使えませんが。

各コマ毎に配置した画像をランダムに再生したい場合などに使えます。

横方向と、縦方向はそのままです。

ループは、1週再生終わったあとにどうするかを設定します。

最初のフレームと最後のフレームでループしている場合に使えます。

開始枚数は、最初の再生を、どのコマから発生させるかを設定するもので

少々使いにくいですが、最初のフレームと最後のフレームでループさせる場合などに。

 

UVの標準は、読み込んだ画像をそのまま表示

UVのFカーブは、UV座標版のFカーブです。

 

 

 

 

 

【SD】ユーザーパッケージで効率化

f:id:tktknkyo:20180103194935p:plain

※今回は具体的な作り方でもなく、初歩的な事だと思うのでご了承ください

【そもそもユーザーパッケージについて】

SD既に使ってる方は、大体知ってそうな内容かとは思いますが、自分は最近知ったことなので、知らない人も居るのかもしれない、と思ったのでちょっと纏めます

 

f:id:tktknkyo:20180103195423p:plain

SDで新規でsbsファイルを作ったりすると、最初に左側のユーザーパッケージが作られます。

(厳密には、新規で作ったときで、sbsファイルで保存する前に作られます)

 

f:id:tktknkyo:20180103195736p:plain

そして、この▼をクリックすると、その下の(今の状態ではtestというファイル)が出たり隠れたりします。

この段階では何も意味をなしません。

 

f:id:tktknkyo:20180103195913p:plain

 

ここで、出力というノードを、繋げると

ユーザーパッケージの部分に、outputという名前のが出てきます。

f:id:tktknkyo:20180103200137p:plain

デフォルトではoutputという名前ですが、このノードには名前を入力する項目があり

ここに名前を入力すると、ノードに表示される名前と、ユーザーパッケージの部分に出てくる名前が連動します。

なので、ここには自分の解りやすい名前を入力しましょう。

 

【利用の仕方】

 

f:id:tktknkyo:20180103201340p:plain

この、testから、グラフ上にドラッグ&ドロップします。

 

f:id:tktknkyo:20180103201458p:plain

そうすると、outputで指定した名前の、ノードが出てきます。

ただし、ノードを配置する場合は、同じ場所では配置できないので注意。

 

ここで、outputに指定した名前がaaaaaなのに対して

ノードの名前がtestになっています。

f:id:tktknkyo:20180103201947p:plain

そしてaaaaaという名前は、出力ピン側に付いています。

 

この理由は出力ノードを複数配置すると解りやすいです。

f:id:tktknkyo:20180103202245p:plain

出力ノードを二つ配置すると

 

f:id:tktknkyo:20180103202343p:plain

出力のピンが二つになります、これは、ピンによって出力される情報が

それぞれの出力ノードの情報になります。

 

これはこれで需要ありますが、別々のノードで出したいという場合があると思います。

これのノードを別々にする為の機能というのも存在していて。

 

 

f:id:tktknkyo:20180103202750p:plain

 

出力ノードを含む、そのノードを構成しているノードを、すべて選択して(ドラッグで複数指定できます)右クリックをするとメニューが出てきます。

ここで赤枠で囲った部分をクリックします(左の()内は、選択されたノード数です)

f:id:tktknkyo:20180103203016p:plain

そうすると、この様な画面が出てきます、ここで設定した名前が

f:id:tktknkyo:20180103203144p:plainf:id:tktknkyo:20180103203212p:plain

この二箇所に表示されます(なお、ここで作られたものは別途sbsファイルにはならず、一つのsbsファイルの中に複数存在できるので、sbsファイル数が増えるという心配はないです)

 

こうすることで、出力ノード毎、別々のノードにしつつ、sbsファイル数も抑えることが可能です。

 

これによって作ったデータを出力ノードに繋げておくだけで、簡単に再利用が可能。

一手間加えることで、ノードを別々にする事も可能です。

 

 

f:id:tktknkyo:20180103203902p:plain

これにより、作ったsbsファイルを同時に開いておくことで

すぐに再利用する事が可能になります。

 

【パラメータ化】

正式名でないかもしれませんが、このパラメータ化というのは

普段使うようなノードにある、数値を弄れたりする部分です、一部のノードは、設定できないものもありますが

大体数のノードは、数値などを弄れる事ができますが。

この手段で出したノードは、数値を調整することができません、なので、数値を調整する為の手段を。

 

f:id:tktknkyo:20180103205112p:plain

まず、パラメータを調整したいノードを選択した後に

パラメータのエクスポーズ」を選択します。

f:id:tktknkyo:20180103205244p:plain

そうすると、この様な画面が出てくるので

パラメータしたい項目の左にチェックを入れると

右側に名前が出てきます。

この名前が、調整する際に表示される名前になるので、変更をしたい場合には、名前の上でダブルクリックして名前を変えることができます。

また、ここの名前が同じには出来ないので、被らないように、名前を設定する必要があります。

f:id:tktknkyo:20180103205608p:plain

こうすることで、設定したパラメータを他のsbsファイルに入れた時にも、設定出来るようになります。

 

ただし、このパラメータ化する際には注意が必要です。

f:id:tktknkyo:20180103205815p:plain

理由としては、パラメータ化をしてしまうと、このように編集ができなくなる為です。

これを解除する方法は

f:id:tktknkyo:20180103210313p:plain

パラメータのエクスポーズから、ここのチェックを外してOKを押すと、編集できるようにはなります。

f:id:tktknkyo:20180103210459p:plain

OKを押すと、この様な画面が出てきて、OKを押すと解除されますが

設定したパラメータがデフォルトに戻ります

f:id:tktknkyo:20180103210730p:plain

ここの、デフォルト値にリセットでも、パラメータ化は解除されますが

名前の通り、デフォルトに戻ります。

 

なので、パラメータ化する場合は

 

 

 

f:id:tktknkyo:20180103202750p:plain

この設定で、一旦分けてからやると便利です。

 

 

【SD】斬撃に使えるテクスチャを作ろう

f:id:tktknkyo:20180101173147p:plain

今回は、SubstanceDesignerを使ったテクスチャ制作を

具体例は、斬撃ブラーと呼ばれる元になるような、この様なテクスチャですね

 

f:id:tktknkyo:20180101173351p:plain

エフェクト部分の構成自体は省きますが

この様なエフェクトの元となります

ただ、テクスチャ1枚だけ作るのではなく、今回はUE4に入れる前提として

大まかな形となるマスク用テクスチャ

鋭い筋の形になるノイズ用テクスチャ

先端の一部を光らせる発光用テクスチャ

複数の色を与えるノイズテクスチャ

この4種類となります

 

f:id:tktknkyo:20180101175811p:plain

最終的な構造としては、こんな感じ、色が可笑しいと思われると思いますが

これは、強度を自由に調整出来るように組んでおくことで

斬撃のメインの色の中に、ひっそりとカラフルな色を入れる事で、見栄えを良くするためです。

どの位混ぜるかは、エフェクトを作る方のお好みで。

 

 

f:id:tktknkyo:20180101180137p:plain

まずは基本となるOP(オパシティ)の部分

この部分で、斬撃の大まかな形が決まります

 

f:id:tktknkyo:20180101180401p:plain

まずはリング部分を作ります

 

f:id:tktknkyo:20180101180453p:plain

パターンのこのノードでのCurveを1にすると完全な丸になるので

その後、Gradientを調整して、丸を二つ作ります

今回は、0.05と0.4

その後、この二つをブレンドノードで繋いで、減算します

中心がくり抜かれてリングになります。

 

f:id:tktknkyo:20180101180721p:plain

 

 

f:id:tktknkyo:20180101180749p:plain

パターンのこのノードでグラデーションを作ります
Rotationの項目があるので、90°と180°にして、向きの違うグラデーションを作り

ブレンドノードの乗算で合成します。

 

f:id:tktknkyo:20180101180945p:plain

トランスフォームにあるこのノードにて、丸同士のブレンドで作ったリングを加工することで、グラデーションになります。

そこでできた二つのグラデーションをブレンドノードの乗算で合成します。

 

f:id:tktknkyo:20180101181308p:plain

 

赤い部分は最初に作ったリングと同じ容量で、先程より細いリングを作り

リングを加工してグラデーションにします。

 

黄色部分は、先ほどの加工したグラデーションをトランスフォーム2Dで

幅を半分にして、タイリングを切る、その後オフセットで左側に寄せます

 

青の部分は、両方ブレンドノードで、左上の方は乗算

右下の方は加算にしています。

 

f:id:tktknkyo:20180101181614p:plain

先ほどできた形では、クッキリしすぎなので

ここでブラーノードを繋いで、ぼかします、ブラーの強度は10です

 

f:id:tktknkyo:20180101181713p:plain

トランスフォームのこのノードでブラーの後に加工します

この時点で、かなり形が出来上がります。

ただ、斬撃なので鋭さが欲しいので、後ろの方を少し尖らせます。

 

それが黄色の部分

 

f:id:tktknkyo:20180101181939p:plain

左上のノードは、自作したものでしたが、中身はこんな感じになってます

f:id:tktknkyo:20180101180453p:plain

このノードで丸の形を作ったあと、ブレンドノードで二つとも繋いで、乗算しています。

 

これで作った丸い部分を、トランスフォーム2Dのオフセットで位置を調整します。

 

青の部分は、作った二つを減算しています

丸の部分を、減算で削ることで、後ろ側になる部分が、細くなって鋭さを増します。

 

 

f:id:tktknkyo:20180101182811p:plain

 

次は、ノイズの部分になります

これがあることで、斬撃部分に、細い筋のような模様が入り、きめ細かく鋭く強そな描画になります

 

f:id:tktknkyo:20180101182747p:plain

 

f:id:tktknkyo:20180101182525p:plain

ノイズのこのノードを出し、Distanceを2の低めな数値にしてから

複製します

ランダムシードや、Disorderは、最後のブレンドノードまでやってからやったほうがいいと思います。

f:id:tktknkyo:20180101182835p:plain

調整のこのノードで白黒を反転させます

その後、作った二つのノイズを

ブレンドノードで加算

その後、同じのをブレンドノードにつないで、更に加算します。

 

この時点で、最初のノイズのノードを弄って、比較的に、不規則な形になるようにランダムシードなどを調整しておきます。

 

f:id:tktknkyo:20180101183040p:plain

 

ここは単純に基本的なノードが並んでいるだけです

最初のトランスフォーム2Dでは、幅を20%にしているだけです

こうする事で細長くなり、デフォルトでタイリング処理になっているので

5つ並ぶようになります。

その後の指方向ブラーは、角度を90にして、強度を20

こうすることで、上下方向にぼかします。

その後のブレンドノードでは乗算をすることで、全体的に暗くなります。

その後のトランスフォーム2Dでは、角度を90°動かして横にします。

 

f:id:tktknkyo:20180101183535p:plain

 

赤の部分は

f:id:tktknkyo:20180101183624p:plain

トランスフォームのこのノードを使うことで、斜めにすることで、タイリングを誤魔化します。

 

黄色の部分は

f:id:tktknkyo:20180101183713p:plain

ノイズのこのノードでノイズを追加して

f:id:tktknkyo:20180101183745p:plain

このノードで90°傾けます

それを、ブレンドノードで乗算します。

 

青の部分は、出来上がった二つのノードをブレンドで加算しますが

そのままでは強すぎたので、不透明度を0.7にして、若干薄めに合成します。

 

f:id:tktknkyo:20180101183919p:plain

その後トランスフォームのこのノードで加工したあと

ブレンドノードで加算します

今度もそのままでは強かったので、不透明度を0.75程度にしています。

 

f:id:tktknkyo:20180101184135p:plain

次に、エミッシブで光らせるこのパーツ

ノイズと、OP用のテクスチャでは、結構スカスカになるので

それを補いつつ、鋭い発光感もプラスするためのパーツです。

 

 

f:id:tktknkyo:20180101184243p:plain

ノード構成は左から一直線

一番左のは、OP用のをそのまま持ってきています。

 

1、ブレンドノードで乗算。

f:id:tktknkyo:20180101184356p:plain

2、このノードで極座標を解除

3、指方向ブラーで90°の強度20でブラーを掛ける

f:id:tktknkyo:20180101183919p:plain

4、このノードで再び極座標に戻す

5、ブレンドノードでScreen

f:id:tktknkyo:20180101184557p:plain

第一入力と第二入力は違うので注意。

これで完成。

 

f:id:tktknkyo:20180101184727p:plain

最後は、カラフルを与えるためのパーツですが

ノイズをそのまま繋いだだけになります。

ここの部分は、エフェクト上で調整するのか、テクスチャ自体で調整するのかは、人による部分はあると思いますが

そこまで前面に出てくる部分ではないので、そこまでこって作るものでもないかな?と個人的には思います。

前面に出てきたらそれこそマズイですし...

 

f:id:tktknkyo:20180101184923p:plain

ノイズのこのノードを3つ配置して、ランダムシードをそれぞれ変えます。

α用の均一カラーは、グレースケールの真っ白にします

f:id:tktknkyo:20180101184958p:plain

チャンネルのこのノードでそれぞれを合成してカラフルにします。

 

 

f:id:tktknkyo:20180101185122p:plain

これで、全てのパーツができあたので、それを合成すれば完成するかなと

ただ、この部分は、UE4側でするのを想定しています。

 

 

 

 

 

 

 

 

 

 

 

【UE4】バリアーっぽいマテリアル

f:id:tktknkyo:20171231124739p:plain

今回は、こんな自分を守る防壁っぽいマテリアルのつくり方を

スクロールや、全体の光が強くなったり弱くなったりの明暗も付けていきます。

 

 

f:id:tktknkyo:20171231132408p:plain

今回作るマテリアルの全体図はこちら

f:id:tktknkyo:20171231150637p:plain

今回使用したテクスチャは、こんなシームレスなテクスチャ1枚です

そこまで複雑ではないかなと

この例では、一部パラメータ化してあるノードもありますが

必要そうな部分だけパラメータ化しておいてください。

 

f:id:tktknkyo:20171231132850p:plain

まずは、左上のこの部分

この部分で何をしているかというと、テクスチャを使い、マテリアル全体の模様を作っています。

白や水色の部分です

また、上のColor1とColor2の部分は、殆ど一緒です

 

f:id:tktknkyo:20171231133155p:plain

違う部分をあげるとすれば、この○で囲った3箇所です

具体的にどこを変える用なのかというと左から

・スクロール速度

・テクスチャのタイリング数

・色

この3つの要素です

また、「TextureSmple」をパラメータ化したノードがありますが

名前が同じであれば連動します

片方を変えると、もう片方も変わります

同様に、パラメータ化した定数ノードも

名前が同じであれば連動します

連動するのは、定数ノードではそこまで大きな意味にはなりませんが

テクスチャの場合は、同じテクスチャを使いつつ

UVsに違うデータを入れたい場合に重宝します。(インスタンス側でも連動します)

 

f:id:tktknkyo:20171231134036p:plain

まずはこの部分

赤の部分は、スクロールする為の数値を入れています

内容は、定数の0と、パラメータ化した定数をそれぞれ「AppendVector」で、RとGの2チャンネルの情報に合成しています。

AppendVector」このノードはAとBチャンネルの情報を合成します単純な足し算ではなく、チャンネル数を増やします

この場合0という1チャンネルと、0.3という1チャンネルを合成して

0と0.3という2チャンネルの情報にしています。

 

次に黄色の部分で、スクロールさせてます

Panner」がスクロールさせるノードで、Speedに接続した情報でスクロールさせます

で、なぜ態々2チャンネルの情報に事前にした理由は

RとGでXY軸が其々別にスクロールし、1チャンネルの場合、必ず斜めにスクロールします(同じ数値になるので)

今回の場合、上にのみスクロールしたかったので、Rを0に固定し、Gには0.3といれることで、上方向にスクロールします。

 

青の部分は、タイリングの部分で

タイリングさせる「Texture Coordinate」と乗算させる「Multply」に繋いだ場合、乗算した数値分タイリングします。

f:id:tktknkyo:20171231135109p:plain

つまり、ここの数値分タイリングします、当然定数ノードをつないでも大丈夫です

パラメータ化したノードであれば、インスタンス側でタイリング数を調整する事もできます

 

 

f:id:tktknkyo:20171231135507p:plain

 

次は、後半のこの部分

まずは赤い部分UVsに繋ぐ要素は、基本的に「Add」(厳密な理由までは解らないです、申し訳ない)

それを、テクスチャのUVsに接続、この時点で、タイリングとUVのスクロールがしているはずです

その後の「Multply」は、全体が明るすぎた為の調整なので、なくても問題ないです。

 

黄色の部分は、このノード全体の色を決めます

一番左のAllColorは、パラメータ化した4チャンネルの定数ノードで、なくても構いません、今回はインスタンス側でも、全体の色を調整しやすくするために入れてあります

基本的な色は、真ん中の定数ノードで指定しています

それを「Multply」で接続します、これでAllColorの数値を変えると、全体の色が調整できます。

 

青の部分は、出来上がった模様と色の要素を「Multply」で乗算しているだけです。

 

f:id:tktknkyo:20171231133155p:plain

あとは、上にあったようにこの部分を複製して、一部だけ変更します

 

 

f:id:tktknkyo:20171231140256p:plain

次に、下の方にある、色の明暗とある部分。

殆ど似たノードですが、赤の部分の数字だけ変えてあります

この部分は、色が強くなったり弱くなったりする部分を制御しているのですが

1パターンのみだと短調になるので

ここで差分を付けています、ここの数値は、色の明暗の変わるタイミングを制御していて

数値が小さいほど、遅く、高いほど早くなります

 

この部分は、殆ど左から右に繋いでいるだけです

一番左にある「TIme」ノードこれは、時間を数値で返してくれるノードで、延々と数字が増え続けます

その次に、定数とこの「TIme」を「Multply」で乗算します。

こうすることで、数値の増える速度が変わります

それを「Sine」につなぎます、これは三角関数です

f:id:tktknkyo:20171231140941p:plain

どんな用途なのかというと、UE4での説明ではこうなっています

Time」と併用する事で、-1~1の数値を緩やかに行ったり来たりするようになります

三角関数がよくわからなくても「Time」とつなぐことで、こういう結果になる、とだけ覚えてもらえばいいかなと。

 

その後の「Abs」アアブソリュート、絶対値を取るノードです、絶対値は簡単に言えば正の数ですマイナスをプラスにします。

これを合わせることで-1~1の波が、0~1の波になります

 

その後は「Multply」に接続、Bにはノードは接続せずに0.5と入力

こうすることで0~1の波が半分になり0~0.5になります

 

更にその後「Add」に接続、Bにはノードは接続せずに0.5と入力

これにより0~0.5の波が0.5~1の波になります

 

f:id:tktknkyo:20171231140256p:plain

つまり、このノードのまとまりは、一定間隔で0.5~1を出力する為です

そして最初の数値により、その波の速度を調整できます。

 

 

f:id:tktknkyo:20171231141802p:plain

真ん中辺りにある、スクロールと明暗合成

とある部分

ここでは、Colorで作った模様と、色の明暗の部分で作った波をそれぞれ「Multply」でで乗算します。

 

色の明暗の部分で、最後に0.5を足した理由は、数値が0になってしまうと完全に真っ黒になり、明暗が激しくなりすぎたためです。

防御系のバフ的な物をイメージしたマテリアルなので、明暗によって完全に消えるタイミングがあるのは、不自然ではないか?との考えからです。

 

Multply」で繋いだあとは、その二つを「Add」で足し算します、これでスクロール速度と明暗のランダム性が出たと思います

 

f:id:tktknkyo:20171231142314p:plain

上の方にある、フレネル処理という部分

そもそも、ここが何のためかというと。

f:id:tktknkyo:20171231142417p:plain

この、表面が白くなってるのが解るでしょうか、ここを作るための処理です

f:id:tktknkyo:20171231142510p:plain

このように、たとえ角度を変えたとしても、周囲が白く見えます

これにより、輪郭がクッキリします

逆に、中心のみ薄くすることで、キャラクターと重なった時にキャラが見えにくくなるのを防いだりする事もできます

 

f:id:tktknkyo:20171231142646p:plain

まず、メインとなる「Fresnel」というノード

主に上の二つのピンで、このノードを操作します、ただこのノードの影響は非常に解りにくい&影響が非常に強く出る

事が多かったので、一度パラメータ化した定数ノードを繋げて、インスタンス側で調整するのをオススメします。

それらを、色を指定している定数ノードと「Multply」で乗算します。

 

f:id:tktknkyo:20171231143347p:plain

次は右上辺のなんか寂しい部分

左にある「Add」で、フレネル処理の部分と、スクロールと明暗合成の部分を加算します

で、その後にある「Depth Fade」のノードの解説を

これは不透明な地形などに、刺さった時の刺さり具合を軽減するもので

上のピンに接続したものを、下のピンに接続した情報で刺さり具合を軽減します。

f:id:tktknkyo:20171231143718p:plain

定数ノードの他、詳細の部分でも数値を指定できます

f:id:tktknkyo:20171231144253p:plainf:id:tktknkyo:20171231144415p:plain

これが比較です、左が数値0(無効化)

右が数値100(デフォルト)

です、ちょっと効果が解りにくい部分もあるかもしれませんが、理由がなければ、入れておいたほうが不自然さが解決される部分も出てきます

ただ、効果がわかりにくいからといって、極端に大きい数値を入れると、全体が半透明になるということになりかねないので、ご注意を。

 

オパシティとある部分のパラメータ化した定数ノード、これは全体のα値をインスタンス側で変えるためだけです

 

f:id:tktknkyo:20171231144926p:plain

最後に、リフラクションの部分

左の場外に出てるピンは、「TIme」ノードにつながってます。

上に上げたエディタ全体図を見てもらえばわかると思いますが

かなり遠い位置から引っ張ってきているので省略しました。

Sine、Absは明暗の部分でやったので省略

その後の「Multply」で、数値を調整する事で、リフラクションの強度を調整します。

 

その後の「componentMask」は、模様部分と、加算した情報を持ってきていてRGBチャンネルが入っているので、Rのみにして、1チャンネルにします(なくても問題はないです)

Add」や「Multply」が至る所にあるので、数値が1を超えている場合もあるので、この時点で「Clamp」で0~1の範囲に収めます。

f:id:tktknkyo:20171231145733p:plain

Clamp」の後に「Multply」を入れてましたが、考えたらこれ必要ないので消します。

Clamp」で0~1になったので、それをそのまま「OneMinus」にすると数値が反転します、これにより、リフラクションの効果も出ると思います。

 

f:id:tktknkyo:20171231150751p:plain

今回のフレネルですが

インスタンス側でパラメータを変えると、こんな表現なんかも簡単に出来たりしますので、球状のものにはかなり相性良いかなと。

 

 

 

戦闘エフェクト素材

2019年より、配布場所を変更しました、ご了承ください

Materialforward

配布場所はここになります、上のメニューから「Aeeet(素材」のリンクによりDL可能です、サイトは色々改良予定なので、細かい場所は変わる予定です、ご了承下さい・・

 

gooブログの方に上げていた、エフェクト素材配布をこちらに移行します

Ver1.05で235種類

1セル192*192の、横5マス

15FPSの、RPGツクールVxAceやMVの標準規格です

使用ソフト:Effekseer

 

利用規約

使用可能範囲

・ゲームの素材として使用し、そのゲームを配布する

 (有償、無償問わず、ツクール外でも使用可能)

・動画などの使用も可能

利用不可範囲

・素材として使用する場合でも、暗号化などをしない利用

 (Pngなどの形式で、そのまま使用できる状態で含めないこと)

素材としての二次配布(素材としての配布はNG、改変したものでもNG)

・作者偽装

その他

・efkprojやefk形式での配布はこのブログでは行いませんが

 Effekseerの公式サイトには、投稿しているものもありますので必要であればそちらをご確認ください

 

・Effekseerの公式に上げてあるものに関しては、そちらに従ってください

・ツクールへの組み込み済みは、今の予定では行いません、ご了承下さい

・使った場合のクレジット表記は必須ではありませんが、書いていただく場合は

 ・moyasiエフェクト館

 ・tktk

 http://tktknkyo.hatenadiary.jp

これらの表記をお願いします(上からブログ名、作者名、ブログURL)

表記は必須ではありません、表記する場所はお任せします。

 

DLリンク(goo.gl/DYvpXi

こちらのリンク先ではありません

上にある「Material Forward」からDLしてください

クレジット表記で、配布場所がここに記載されている場合、可能であれば「Material Forward」の方に変更していただけると幸いです。

Material Forw

 

f:id:tktknkyo:20171231074816g:plainf:id:tktknkyo:20171231080527g:plainf:id:tktknkyo:20171231080533g:plainf:id:tktknkyo:20171231080539g:plainf:id:tktknkyo:20171231080522g:plainf:id:tktknkyo:20171231080517g:plainf:id:tktknkyo:20171231080511g:plainf:id:tktknkyo:20171231080453g:plainf:id:tktknkyo:20171231080459g:plainf:id:tktknkyo:20171231080505g:plainf:id:tktknkyo:20171231080449g:plainf:id:tktknkyo:20171231080444g:plainf:id:tktknkyo:20171231080439g:plainf:id:tktknkyo:20171231080423g:plainf:id:tktknkyo:20171231080429g:plainf:id:tktknkyo:20171231080434g:plainf:id:tktknkyo:20171231075022g:plainf:id:tktknkyo:20171231075015g:plainf:id:tktknkyo:20171231075009g:plainf:id:tktknkyo:20171231074953g:plainf:id:tktknkyo:20171231074958g:plainf:id:tktknkyo:20171231075004g:plainf:id:tktknkyo:20171231074947g:plainf:id:tktknkyo:20171231074941g:plainf:id:tktknkyo:20171231074934g:plainf:id:tktknkyo:20171231074915g:plainf:id:tktknkyo:20171231074921g:plainf:id:tktknkyo:20171231074929g:plainf:id:tktknkyo:20171231074911g:plainf:id:tktknkyo:20171231074858g:plainf:id:tktknkyo:20171231074847g:plainf:id:tktknkyo:20171231074821g:plainf:id:tktknkyo:20171231074826g:plainf:id:tktknkyo:20171231074836g:plainf:id:tktknkyo:20171231074811g:plainf:id:tktknkyo:20171231074803g:plainf:id:tktknkyo:20171231080926g:plainf:id:tktknkyo:20171231080932g:plainf:id:tktknkyo:20171231080936g:plainf:id:tktknkyo:20171231080941g:plainf:id:tktknkyo:20171231080946g:plainf:id:tktknkyo:20171231080952g:plainf:id:tktknkyo:20171231081000g:plainf:id:tktknkyo:20171231081006g:plainf:id:tktknkyo:20171231081015g:plainf:id:tktknkyo:20171231081020g:plainf:id:tktknkyo:20171231081026g:plainf:id:tktknkyo:20171231081030g:plainf:id:tktknkyo:20171231081035g:plainf:id:tktknkyo:20171231081040g:plainf:id:tktknkyo:20171231081046g:plainf:id:tktknkyo:20171231081053g:plainf:id:tktknkyo:20171231081101g:plainf:id:tktknkyo:20171231081110g:plainf:id:tktknkyo:20171231081122g:plainf:id:tktknkyo:20171231081126g:plainf:id:tktknkyo:20171231081132g:plainf:id:tktknkyo:20171231081138g:plainf:id:tktknkyo:20171231081144g:plainf:id:tktknkyo:20171231081150g:plainf:id:tktknkyo:20171231081200g:plainf:id:tktknkyo:20171231081208g:plainf:id:tktknkyo:20171231081218g:plainf:id:tktknkyo:20171231081225g:plainf:id:tktknkyo:20171231081230g:plainf:id:tktknkyo:20171231081236g:plainf:id:tktknkyo:20171231081241g:plainf:id:tktknkyo:20171231081247g:plainf:id:tktknkyo:20171231081253g:plainf:id:tktknkyo:20171231081349g:plainf:id:tktknkyo:20171231081355g:plainf:id:tktknkyo:20171231081400g:plainf:id:tktknkyo:20171231081405g:plainf:id:tktknkyo:20171231081412g:plainf:id:tktknkyo:20171231081417g:plainf:id:tktknkyo:20171231081422g:plainf:id:tktknkyo:20171231081428g:plainf:id:tktknkyo:20171231081432g:plainf:id:tktknkyo:20171231081437g:plainf:id:tktknkyo:20171231081443g:plainf:id:tktknkyo:20171231081449g:plainf:id:tktknkyo:20171231081454g:plainf:id:tktknkyo:20171231081501g:plainf:id:tktknkyo:20171231081506g:plainf:id:tktknkyo:20171231081511g:plainf:id:tktknkyo:20171231081516g:plainf:id:tktknkyo:20171231081520g:plainf:id:tktknkyo:20171231081525g:plainf:id:tktknkyo:20171231081536g:plainf:id:tktknkyo:20171231081543g:plainf:id:tktknkyo:20171231081552g:plainf:id:tktknkyo:20171231081558g:plainf:id:tktknkyo:20171231081602g:plainf:id:tktknkyo:20171231081608g:plainf:id:tktknkyo:20171231081614g:plainf:id:tktknkyo:20171231081618g:plainf:id:tktknkyo:20171231081624g:plainf:id:tktknkyo:20171231081630g:plainf:id:tktknkyo:20171231081635g:plainf:id:tktknkyo:20171231081639g:plainf:id:tktknkyo:20171231081648g:plainf:id:tktknkyo:20171231081652g:plainf:id:tktknkyo:20171231081657g:plainf:id:tktknkyo:20171231081701g:plainf:id:tktknkyo:20171231081707g:plainf:id:tktknkyo:20171231081715g:plainf:id:tktknkyo:20171231081723g:plainf:id:tktknkyo:20171231081728g:plainf:id:tktknkyo:20171231081735g:plainf:id:tktknkyo:20171231081739g:plainf:id:tktknkyo:20171231081746g:plainf:id:tktknkyo:20171231081752g:plainf:id:tktknkyo:20171231081758g:plainf:id:tktknkyo:20171231081804g:plainf:id:tktknkyo:20171231081810g:plainf:id:tktknkyo:20171231081815g:plainf:id:tktknkyo:20171231081822g:plainf:id:tktknkyo:20171231081833g:plainf:id:tktknkyo:20171231081838g:plainf:id:tktknkyo:20171231081843g:plainf:id:tktknkyo:20171231081851g:plainf:id:tktknkyo:20171231081858g:plainf:id:tktknkyo:20171231081908g:plainf:id:tktknkyo:20171231081914g:plainf:id:tktknkyo:20171231081920g:plainf:id:tktknkyo:20171231081928g:plainf:id:tktknkyo:20171231081935g:plainf:id:tktknkyo:20171231081940g:plainf:id:tktknkyo:20171231081946g:plainf:id:tktknkyo:20171231081954g:plainf:id:tktknkyo:20171231082001g:plainf:id:tktknkyo:20171231082011g:plainf:id:tktknkyo:20171231082019g:plainf:id:tktknkyo:20171231082027g:plainf:id:tktknkyo:20171231082038g:plainf:id:tktknkyo:20171231082046g:plainf:id:tktknkyo:20171231082054g:plainf:id:tktknkyo:20171231082104g:plainf:id:tktknkyo:20171231082111g:plainf:id:tktknkyo:20171231082118g:plainf:id:tktknkyo:20171231082124g:plainf:id:tktknkyo:20171231082131g:plainf:id:tktknkyo:20171231082137g:plainf:id:tktknkyo:20171231082143g:plainf:id:tktknkyo:20171231082153g:plainf:id:tktknkyo:20171231082201g:plainf:id:tktknkyo:20171231082206g:plainf:id:tktknkyo:20171231082213g:plainf:id:tktknkyo:20171231082217g:plainf:id:tktknkyo:20171231082223g:plainf:id:tktknkyo:20171231082228g:plainf:id:tktknkyo:20171231082233g:plainf:id:tktknkyo:20171231082237g:plainf:id:tktknkyo:20171231082244g:plainf:id:tktknkyo:20171231082250g:plainf:id:tktknkyo:20171231082300g:plainf:id:tktknkyo:20171231082309g:plainf:id:tktknkyo:20171231082316g:plainf:id:tktknkyo:20171231082320g:plainf:id:tktknkyo:20171231082326g:plainf:id:tktknkyo:20171231082329g:plainf:id:tktknkyo:20171231082333g:plainf:id:tktknkyo:20171231082337g:plainf:id:tktknkyo:20171231082344g:plainf:id:tktknkyo:20171231082351g:plainf:id:tktknkyo:20171231082357g:plainf:id:tktknkyo:20171231082405g:plainf:id:tktknkyo:20171231082409g:plainf:id:tktknkyo:20171231082413g:plainf:id:tktknkyo:20171231082417g:plainf:id:tktknkyo:20171231082421g:plainf:id:tktknkyo:20171231082426g:plainf:id:tktknkyo:20171231082430g:plainf:id:tktknkyo:20171231082434g:plainf:id:tktknkyo:20171231082439g:plainf:id:tktknkyo:20171231082444g:plainf:id:tktknkyo:20171231082449g:plainf:id:tktknkyo:20171231082453g:plainf:id:tktknkyo:20171231082457g:plainf:id:tktknkyo:20171231082501g:plainf:id:tktknkyo:20171231082508g:plainf:id:tktknkyo:20171231082513g:plainf:id:tktknkyo:20171231082518g:plainf:id:tktknkyo:20171231082523g:plainf:id:tktknkyo:20171231082532g:plainf:id:tktknkyo:20171231082538g:plainf:id:tktknkyo:20171231082544g:plainf:id:tktknkyo:20171231082552g:plainf:id:tktknkyo:20171231082559g:plainf:id:tktknkyo:20171231082604g:plainf:id:tktknkyo:20171231082610g:plainf:id:tktknkyo:20171231082616g:plainf:id:tktknkyo:20171231082626g:plainf:id:tktknkyo:20171231082635g:plainf:id:tktknkyo:20171231082640g:plainf:id:tktknkyo:20171231082733g:plainf:id:tktknkyo:20171231082738g:plainf:id:tktknkyo:20171231082745g:plainf:id:tktknkyo:20171231082749g:plainf:id:tktknkyo:20171231082757g:plainf:id:tktknkyo:20171231082804g:plainf:id:tktknkyo:20171231082811g:plainf:id:tktknkyo:20171231082817g:plainf:id:tktknkyo:20171231082821g:plainf:id:tktknkyo:20171231082827g:plainf:id:tktknkyo:20171231082835g:plainf:id:tktknkyo:20171231082840g:plainf:id:tktknkyo:20171231082846g:plainf:id:tktknkyo:20171231082852g:plainf:id:tktknkyo:20171231082858g:plainf:id:tktknkyo:20171231082902g:plainf:id:tktknkyo:20171231082909g:plainf:id:tktknkyo:20171231082917g:plainf:id:tktknkyo:20171231082923g:plainf:id:tktknkyo:20171231082928g:plainf:id:tktknkyo:20171231082934g:plainf:id:tktknkyo:20171231082940g:plainf:id:tktknkyo:20171231082946g:plainf:id:tktknkyo:20171231082954g:plainf:id:tktknkyo:20171231082958g:plainf:id:tktknkyo:20171231083008g:plainf:id:tktknkyo:20171231083012g:plainf:id:tktknkyo:20171231083024g:plainf:id:tktknkyo:20171231083032g:plainf:id:tktknkyo:20171231083039g:plain