妹でもわかるUnrealEngine4

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

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

マテリアルでワカメを動かす⑤ プロシージャルとは何なのか

imoue.hatenablog.com
前回の

「ところでマテリアルのGeneratedBandはどうやって見つけたの?」

妹「どうやって見つけたのかは覚えてないけど、公式のドキュメントにあったよ」

api.unrealengine.com

妹「これ」

「ドキュメントにあったのか。結構むずかしいよねこれ」

妹「半分ぐらいわかったよ。もう半分はまだわからんけど……ところでプロシージャルってなんなの?」

「これは何語だろう。UE4語ではなくて、もう少し広い範囲で使われてるのは間違いないんだけど。事前に計算して作る何か。今回の場合だとGeneratedBandが作るのはグラデーションのついたテクスチャ。つまりプロシージャルなテクスチャを作るノードということになる」

妹「プロシージャルなマテリアルではないんだ」

「この場合は言わなそうな気がするけど……よくわからない。他にもコンストラクションスクリプトでアクターを必要な数整列させるのとかも、プロシージャルって言われる」

妹「プロシージャルな何なの?」

「プロシージャルな……生成? 配置? 多分そんなような感じの言い方をする。何にしても計算をプログラムして作るわけだから、調整して作り直すとかは簡単に出来るし、データファイルが不要だから容量も少なくて済む。ただあんまり複雑な計算が必要な場合は時間かかるから、画像データとかで読み込んだ方がいい場合もある」

妹「UE4だけで済むから、他のソフトを色々しなくていいところが気に入ってる」

「Kritaにもプログラムで色々する機能がついたから、こういうのもプロシージャルな画像生成に使える。それで作るとUE4からは普通の画像テクスチャ扱いだから、簡単に調整できないという問題はあるけど」

妹「その場合でもプロシージャルっていうの?」

「プロシージャルではあるよ。ただUE4の中でやってないというだけで。3Dモデルとかも別のソフトでプロシージャルに作って、それをUE4に読み込む場合がある」

マテリアルでワカメを動かす④ 同じマテリアルだけどゆれのタイミングをずらす

f:id:una_unagi:20180401231121p:plain

imoue.hatenablog.com
前回の記事

妹「昆布……あるいはワカメの問題として、量産するとゆれ方が一緒になっちゃうというのがあって」

Timeは全マテリアルで共通だし、他のパラメータが全部一緒だとそうなるね」

妹「だからって1個ずつマテリアルインスタンス作るのもなんか変な気がするし。そこで色々調べたところ、この方法でいいんじゃないかなというのが見つかった」

api.unrealengine.com

妹「このActorPoositionWSというのを使えば、アクター毎に位置は違うわけだから、違うタイミングになるんじゃないかと」

「それはなりそう」

f:id:una_unagi:20180401231419p:plain

f:id:una_unagi:20180401231428p:plain

「適当に数字を混ぜてみただけだけど、ゆれ方のタイミングは変わる」

妹「ちゃんと効いてるみたいだ」

[UE4] 1つのマテリアルで色のバリエーションを増やしたい!|株式会社ヒストリア

妹「最初はこの方法がいいのかなと思ったんだけど。位置じゃなくてランダムだから、もっとハッキリ違いが出るんじゃないかと。でもインスタンスドメッシュ? というのでしか使えないみたいだから、今回予定してるのとはちょっと違う気が」

「これは使えなさそう。でもランダムにっていうなら、ActorPostionの数字をそのまま足さずに、適当な数字で割るとかでもいいかも」

妹「適当な数字とは?」

「例えば昆布を10cmおきに配置してたとすると、10で割っても結果が全部同じになるけど、7で割った余りとかだと、ばらつきが出てくるはず」

妹「ほうほう」

「あとはランダムに塗ったグレースケールのテクスチャに接続することでも、適当にランダムな値が得られそう」

妹「ふむふむ」

「ダイナミックマテリアルインスタンスを作って、そこにブループリントからパラメータを放り込むという手も」

妹「それはイヤ」

「イヤなんだ……」

マテリアルでワカメを動かす③ ゆれ方の違うマテリアルインスタンス

f:id:una_unagi:20180330231107g:plain

imoue.hatenablog.com
昨日までの

妹「今回はマテリアルインスタンスというやつを作って、テクスチャの絵とか揺れ方とか、違うのを作れるようにしている」

f:id:una_unagi:20180330231047p:plain

「これは昨日のやつよりジグザグに変形してとこがわかりやすいね。木だけど」

妹「なんか適当に数字を増やすとこうなった。原理が自分でもかなり不明なので、やってみないとわからない。ただ植木鉢までふにゃふにゃしてるのが変だから、これは揺らし方の設定を変えた方がいいのかと」

「そこは別の絵に分けるとかの方がいいと思うなあ。一応植木鉢部分だけくり抜いた白黒画像とか作って、Multiplyで混ぜるっていうのも考えられるけど、それは絵を分けるより大変そうな気がする」

妹「そういうものか……あとこの記事のタイトルなんだけど、わたしが今作ろうとしてるの昆布であって、ワカメではないんだけど」

「ん……おや? 無意識のうちにワカメって入力してた」

妹「最終的には昆布もワカメも作る予定だから、どっちでもいいといえばいいんだけど……」

「それ両方いるんだ」

妹「そりゃあいるでしょ」