妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

マテリアルでワカメを動かす② どうにかしてゆらす

f:id:una_unagi:20180329235043g:plain

imoue.hatenablog.com

妹「そんなわけでゆれるようになった」

「どうやってるの?」

妹「どうやったのかはよくわからないけど、マテリアルの中身はこんな感じ」

f:id:una_unagi:20180329235604p:plain

妹「もっと簡単に書けるんじゃないかなもしれないし、なんか変な計算になってるところもあるかもしれないけど」

f:id:una_unagi:20180329235727p:plain

「一番左の部分は昨日やったやつだよね。シマシマの絵を作って、それに合わせて左右にずらすという」

妹「そうそう。ジグザグにゆらしてるところ」

f:id:una_unagi:20180329235916p:plain

「真ん中ので全体を左右に振るかんじで、大きく動かしてる」

妹「これも大事。上から下にグラデーションかけただけのデータがほしかったんだけど、これもGenerateBandで作れそうだったから作った」

「右のブロックで、そこにさらに三角関数を足して、振り方が直線じゃなくて緩急をつけた感じにしてると」

妹「三角関数を使うといいらしいという情報を見つけたから。よくわからないけど動き方は合ってるから、これでいいかなと」

「それを全部Multiplyでかけていって、最終的に各ピクセルがどれぐらい左右に動くかを決めてる、と。結構色んな仕組みが入ってる」

妹「マテリアルはどこつないでいいかわかりにくいから大変だった。ピンの色も白しかないし。だけどだいぶ昆布の雰囲気がでてきた」

「よく考えるとこれ、昆布じゃなくて草なのでは?」

妹「そこはまあ、昆布かどうかっていうのは気持ちの問題だから」

マテリアルでワカメを動かす① GeneratedBandでゆらし方を設定

f:id:una_unagi:20180328230911p:plain

妹「波ができたら、次はとうぜんワカメが必要なんだけど、なかなか手ごわい」

「それもマテリアルで作るの?」

妹「作るの」

f:id:una_unagi:20180328231042p:plain

妹「先日兄がやってた、テクスチャ画像でゆれ具合を設定するというやつで、最初はそういう感じでやってたんだよ。0.5を引いてから2を掛けて、-1.0~1.0の範囲になるから、それで左右にゆらそうかと。でもこれだと左右にハッキリわかれすぎて、ワカメが斬鉄剣でぶった切られたみたいになる」

「2色で塗ったらまあそうなるかも」

妹「そもそもお絵かきソフトで揺れ具合を調節すると、いちいちテクスチャ変えるの面倒だし、もっといい方法がないかと」

f:id:una_unagi:20180328231816p:plain

妹「その結果、GeneratedBandというノードを見つけた。これでシマシマで、グラデーションのかかった感じの画像と同じ効果がえられる気がする。その場で調整可能だし、なんか上手くいきそうな気配がある」

「そういうのがあるんだ、知らなかった……」

UE4.19.0でポストプロセスマテリアルがズレてる問題

f:id:una_unagi:20180328013000p:plain

「AnswerHubを見てて気付いたんだけど、4.19になってからポストプロセスマテリアルがおかしくなってる。なんかズレる」

f:id:una_unagi:20180328013028p:plain

「全部じゃなくて、カスタムノードで、SceneTextureLookupを使ってる部分だけずれる。使ってない部分はそのまま。ボカシ系とかだとこれ使わないとどうしようもないから、かなり影響範囲は広い」

妹「ズレたら困るのでは」

「とりあえずポストプロセスマテリアルを編集しなければ問題は起きない。編集するとズレるけど、その後一回プロジェクトを閉じれば大丈夫」

f:id:una_unagi:20180328013013p:plain
プロジェクトを開いてから、マテリアルを一切編集してなければ普通に

妹「それもまた不思議な……」

Wrong UV coordinates in Custom node - UE4 AnswerHub

「英語の投稿を調べると同じ症状があった。カスタムノードに手を加えることで正常に表示する方法も。ただこの人の話では4.18でも同じ事が起きてるらしいけど、うちだと4.18では起きなかった」

妹「書き直せばいいの?」

「仕様変更ならそうなんだけど、でもプロジェクトを開きなおすと直る仕様って変なので、やっぱりバグのような気がする。だとすれば直ればコレ要らないし、要らない関数を挟むと速度ダウンするから、当面は様子見でよさそうな。急ぎ場合はしょうがないけど。いちいちプロジェクト閉じて確認するのもなんだし」