Programming Serendipity

気まぐれに大まかに生きるブログ

UE4で簡単なゲームを作るまでに詰まった個所まとめ

あとで何かに使えるかもしれないので書き起こし。

続きを読む

UE4でレースゲームプロトタイプ

を作りました。Win向けにビルドしてみたのでプレイしてみてください。(まだ無音です) ビルドを新しくしたら消すと思います。

RaceGame_windows.zip - Google ドライブ

基本操作はWSADで、Pでポーズで、落っこちたらRでリスポーンさせてください。

車は、UE4のテンプレの車をそのまま使っているので、挙動に癖があります。

  • ドリフトするときは、加速しながら行うと効果的
  • 姿勢が斜めの時にブレーキすると車体が不安定になりやすいので、アクセルオフで姿勢を整えてからブレーキを踏むと滑らかに走れる

…と、ちょっとアレですが。ゆくゆくはマーケットプレイスで買うなりしたい。

ステージはメキシコの実在の道路がベースになっています。といっても、まずは本当に道だけで、高低差とか風景とかは省略してます。作りこむとなったら、やっぱりここが大変になりそうだな…。

タイム的には…どうなんでしょう。自分は何回かやった感じでは大ミスがなければ4:10くらいでした。が、ガードレール等一切ないので転落するだけで10秒以上持っていかれます(笑)

しかしこれで、多少はUE4に慣れてきました。UE4についての感想はまた別記事で。

花粉がつらすぎる

どうもこんにちは。私は最近重度の花粉症に苦しめられていますがいかがお過ごしでしょうか。

いやぁ本当にきついっす。外出した後は必ずアイボンで目を洗って目薬が必須、家に訪問者が来ると数分ドアを開けただけで部屋の中は花粉に満たされ、くしゃみを連発…。周りを見回しても花粉症の人でもそこまでではない、という人が多いようで、私は相対的に重症のようです…。(仕事中もアイボンは必須アイテム…)

そうそう、最近プレイしてるゲームとしては、cuphead, getting over it, doki doki literature club, と、去年~今年あたりの話題作を中心にやってます。同時並行なので進みは遅いですが、どれも面白いですね。あとマリオオデッセイとかニーアオートマタとかも今更ながらプレイしてます。最近の日本のコンシューマは斜陽産業とか言われてますけど、こういうゲームをプレイしていると、まだまだチャンスはあるなと感じます。

とかいいつつ、自分はsteamでプレイできるゲームは基本steamでやってます。ニーアオートマタもおま国にならなかったようなのでsteamでのプレイです。コンシューマ機の起動&HDMIの繋ぎ変えその他もろもろが面倒くさいので…。

中でも最近よくやっているのはDirt Rallyですね。2015年発売のラリーのレースゲームなのですが、挙動・風景・サウンドどれをとってもリアルで、うまく走れた時の爽快感が最高です。ただし難易度は高く、現実のラリーと同じくワンミス即クラッシュなので、サーキットを走るレースゲームとは違って慎重に操作して、直線だけアクセル全開にします(実際のラリードライバーもアクセルブレーキちょい踏みを細かく大量に行うようです)。

このゲームの面白さに感動して、次に趣味で作るゲームはレースゲームにしようかと考えています。OpenGLもやってるんですが、味気なさ過ぎてモチベが下がりやすいんですよね…。もう少し切り抜けられる体力がついてからにしたい…。

ついでに、UE4で作ることにしようかと。勉強がてらで。というかもうすでに作り始めてるんですが、やっぱり新しい言語・ライブラリは使い始めが一番きついですね…。昨日もテンプレの車が自動的に左に旋回する挙動をしてたのを、プロジェクトを作り直しても治らなくて、英語で検索したらXboxコントローラを接続したままプロジェクトを開くと、抜いてからプロジェクトを開きなおすまでこのバグが永続するようで…。わかるか!

blueprintも模索しながらなのでぐちゃぐちゃですが、とりあえず安全第一よろしく完成第一を心に刻んで、クオリティは二の次で、経験を積みながらクオリティを上げていく、というのを忘れないようにします…。もう挫折はしないようにしたい…。

Y座標を無視して2つのオブジェクト間の角度を取る方法

Y(上下)を考えずに、3D空間上の2点間の角度を取得する方法です。

続きを読む

OpenGLでパックマン

github.com

ブランク空きすぎてモチベだだ下がりなので無理やり完成扱いにしました。

もはやプロジェクトの構造も忘れている…。思い出したけど

それにしても不思議なのはOpenGL側の頂点情報と当たり判定に使う情報にずれが出ること…。(↓の54~57行目)

https://github.com/srndpty/OpenGL_Pacman/blob/master/Pacman/src/Sprite.h

コードではキャラの中心座標からサイズ分足して上下左右の数値を出しているけど、 本来はサイズの1/2でないといけないはず…なのに今ので上手くいってる…。 OpenGL内部で座標の足し算が半分になっているんだろうか…。謎。

まぁ、次作ろう、次。