妹でもわかるUnrealEngine4

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

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

UE4マーケットプレイスでスプリングセール中

www.unrealengine.com

「ちょっと一昨日からマーケットプレイスでセールをやってたらしい」

妹「なんか買うの?」

「それが……マーケットプレイスってお気に入り機能とかないから、いまいちどれがいい感じのやつだったかよくわからず。必然的にそれがセールになってるかどうかもわからず。すぐ要りそうなやつはその時点で買ってるわけだし。セール対象が膨大だから、それ全部チェックするのもなかなか大変」

UE4で神ゲ作る時に持っておきたいマーケットプレイスアセット | デジ・ゾエトロ-プ

pafuhana1213.hatenablog.com

unrealengine.hatenablog.com

qiita.com

qiita.com

「ということで実際に買ってみた人の記録を参考にする。見てたまたまセールしてたらラッキーだし、そうでない場合は何かにメモしておけば、必要になった時にすぐ買えるし、次のセールでチェックするのも簡単になる。ただ古い記事だとアセットが販売終了してたりとかってのもあるんだけど」

妹「販売終了したら買った人はどうなるんだろう?」

www.unrealengine.com

「これによると、ストアから買えないようになっても、購入済みの人はそのままダウンロードできるらしい」




このところ兄の体調不良により、更新がほぼ毎日じゃなくなっている気がします

ボクセルジマ

f:id:una_unagi:20180303232857p:plain

「今週のボクセル。今回もMagicaVoxel0.99を使用。ヒネるのがむずかしいテーマだったので、わりと直球に作った」

f:id:una_unagi:20180303233138p:plain

「最初は少なめのボクセル数で地形を作って、大きくして細かいところの書き込み。あと水面の下に何にもないと写りが悪かったので、1ボクセル分の海底をつけてある」

f:id:una_unagi:20180303233914p:plain

オブジェクトの構成
・島と海水
・水面の白いの
・船と人
・植物(たくさん)

「というオブジェクト分けになっている。水面はデコボコさせて光の反射で光らせるのが本当はいいんだろうけど、調整がむずかしそうだったので、ドット絵的な塗り型で海を表現している」

妹「陸地は角ばったままだけどいいの?」

「そのままの方が、大きいものと小さい物というスケール感が出るんじゃないかなと、わざとそのままにしてる。全部精密に作るには足り時間がなかったというのもある」

妹「植物がたくさんというのは」

「少し緑のモジャモジャしたところ。あれは同じ形の植物オブジェクトをコピーして配置してる。完全に同じだと気持ちわるいから、ところどころ回転させたりはしてるけど。同じオブジェクト内でボクセルをコピーしても作れるけど、あとから位置調整がしにくい。それともう1つメリットがあって」

f:id:una_unagi:20180303234325p:plain

f:id:una_unagi:20180303234339p:plain

「こういう風に1つを編集すると他も全部同じように変化するという仕組みがある。CopyとRefと、どっちのボタンでコピーするかで変わってくる。その後Pasteボタンを押すのはどっちも同じ

妹「リファ……レンス?」

「プログラムでいうと値渡しと参照渡しという違いになってる。あとRefでコピーした後に中身を回転させると他のも全部回転しちゃうので、今回のような場合はオブジェクト画面で回転させる必要がある」

カーリング的な物を作る(3) なぜTickのDeltaSecondsを使わないのか

妹「ちょっと質問があるんだけど、同じ結果が欲しいからTickの間隔に合わせないって言うけど、Tickの間隔でやっても結果って同じになるんじゃないの? 例えば1フレーム遅れたとしても、結局は次のフレームでそうなるだろうし」

「一番大きな理由は、フレームレートが変わるとストーンの曲がり方が変わるから」

f:id:una_unagi:20180301232953p:plain

「今の仕組みだと、計算の都度角度を変えながら直進するという仕組みだから、処理落ちでフレームレートが落ちると、曲がる回数も減って、カーブの軌道が微妙に変わってしまう。始点と終点が同じでも、途中のストーンと当たるかどうかが違ってくる。これはカーリング的に大問題」

妹「曲がるからかあ」

「あとは、ほぼ同時に2つの石にあたるみたいな時に、フレームレートによって、同時なのかほぼ同時なのか、変わってきたり。これもストーンが密集した場所だと、それぞれの飛び方が変わってややこしいことになる可能性がある」

妹「じゃあ逆にどういう場合だったらDeltaSecondsを使ってもいいんだろ」

シューティングゲームの弾とかだったら、判定の精密さより、見た目が安定してる方がいいかも。フレームレートによって速度が変わると弾避けれたりして、別の問題もでてくる。カーリングでもフレームレート低い方がスイープがしやすくなる可能性はあるんだけど……」

妹「ゴシゴシするやつね」

「最初に投げるとこはゴルフ的だけど、スイープはリアルタイムのアクション的にやりたい。ギリギリまでストーンを動かしたいから」

妹「どっちか片方を優先すると、もう片方があれなのかな」

「他にも方法はあって、見た目は見た目として、当たり判定を細かく計算するという方法でもいい。例えばFPS60のところが処理落ちで30しか出なかった場合、1フレームに2回ずつ動かして、当たり判定も2回やる。こうすると判定は完璧、見た目のスピードも変わらない」

妹「それがいいじゃん」

「でもそれをやるのは面倒くさいんだよ。UE4コリジョン判定も1フレームに2回以上の判定は想定してないから、自前で当たったかどうか計算しないとダメだろうし。カーリングは円だけで判定できるから簡単な方だけど、今回はそこまでスピーディーな物は求めてないのでやらなかった」