妹でもわかるUnrealEngine4

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

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

水中表現を考える

妹「水中って、どうやったらいいのかな? 重力とか見た目とか違うような」

「重力はハシゴに乗った時みたいに、水にOverlapしてる時だけ動き方変えたらいいと思う。浮くようにするか、沈むようにするか、それとも止まった状態になるか、それぞれのパターンがあったはず」

妹「じゃあ見た目は? 水に手前に絵が来るとおかしくなるよね?」

「水の中の絵か。例えば3Dだとこんな風になってる」

f:id:una_unagi:20151024214137p:plain
f:id:una_unagi:20151024212938p:plain

「これはARKっていう、海外のゲームなんだけど、UE4で作ってある。基本的には水の表面に、青と灰色の中間ぐらいの色を半透明で重ねて水を表現してる。場合によっては奥行き方向に何枚もポリゴンの層があったりして、遠くの物ほど見えにくくすることもある。そしてカメラが水中が入った時になんらかのエフェクトをかけてる」

妹「なんらかではわからんのですが……」

「まあこれ普通に売ってるゲームだから、サンプルとかじゃないんでどうやってるか具体的な方法はわからない。このサイトの説明はもう少しシンプルな画面効果だと思うけどわかりやすい」

もんしょの巣穴blog [UE4] キャラクターを泳がせる

妹「これ3Dだよね? 2Dのアクションゲームでもこんな感じでやるの?」

「そういえば2Dゲーム作ってたんだっけ。そしたらこんな感じとか」

f:id:una_unagi:20151024214100p:plain

「Shantae: Risky's Revengeという、これも海外のゲーム。これは多分UE4製じゃないと思うけど、ちょうど手近なところにあったので。どのゲームでも半透明のスプライトを上から重ねてるってことは同じだと思う。上の写真ではキャラクターの下半身やと岩壁の一部が水につかってる、カメラが水中に入るというのはあまり表現しない。元々が断面図的な感じだから、外から見る視点になる」

妹「半透明のを重ねるっていうけどさ、キャラクターがいなくても重なってるわけだよね? なんというか、それやると元の絵と色が変わっちゃうんじゃない? こういう色にしようと思って背景を描いたとして、その上に別の色を重ねるわけだから」

「あー、それはこういう色にしようと思って背景を描いたりしないことが多いかな。石だったら灰色、土だったら茶色で、水がないものとして普通に描いていく。お絵かきソフトのレイヤで仮の水を表示したりして、重ねた時どんなかんじになるか見ていく」

妹「それってものすごくむずかしいのでは……」

「この色って決めて、半透明も込みでピッタリ同じようになるって計算すると大変だけどね。だいたいの雰囲気だけで良ければそんなにむずかしい話じゃないよ。水の色どうするかとかは多少悩むところだけど」

妹「そういえば水の色は青と灰色の中間ぐらいって言ってたけど、それはどういう根拠でそうなってるの?」

「根拠っていうか、色々調節してそれっぽく見えたものを採用しただけだと思う。ただその世界に合う合わないってのはあるね、水が青く見えるのは空の色が反射してるからという話だから、曇り空の世界だったらほぼ灰色っていうのが自然だろうし、濁った水なら不透明にするとキャラが見にくくなってそれっぽい。水が綺麗で透き通った感じを出すなら灰色要素と透明度を減らしていい」

妹「やっぱりむずかしい……」

「色をまったく変えずに、水面のところに白い線描いて、泡をブクブクさせるだけって水中って表現することもある。そのへんはやっぱり色んなゲーム見て研究するのが一番手っ取り早いと思う」

妹「でもゲームの画面見ても、何色の背景に何色の水を重ねるのかよくわからないんだよ」

「そこはプレイヤーキャラクターを中心に見る。たいていは地上のも水中のも同じ色だから、元のより青っぽくなってたら青系の色とわかるし、キャラクターが水の色に近くなってるほど不透明度高め。これもお絵かきソフト使って色々試してれば、そのうちレベル上がってくるよ」