妹でもわかるUnrealEngine4

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

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

ブループリント

AtCoderの問題をUE4のブループリントで解いてみる実験

atcoder.jp「むしゃくしゃしたので、AtCoderというサイトの、プログラムコンテストに参加してたんだけど……」妹「最近ブログをさぼってると思ったらそんなことを」「よく考えると、あんまりプログラムって得意じゃない気がしたので、ちょっと練習しとこうと思…

UE4.20のブループリントによるエディタ拡張

www.youtube.com「今日もYoutubeでUE4の放送やってたんだけど、UE4.20のエディタ拡張が面白そうなので調べてる。基本的にはBlutilityの強化なんだけど……」妹「ブルティリティってなんでしたっけ?」「エディタ上でゲームを起動する前にブループリントを実行…

ルーレットの作り方(12) 出目の偏りをなくす

imoue.hatenablog.com「昨日このルーレットにはイカサマが横行してることがわかったので、修正していく。まず何が原因で偏ってるのか?」(1) 仕組みの問題(3周分+1周未満のランダムな角度で回す) (2) 1に使う乱数の精度が悪い (3) どのマスを指すかの判定…

ルーレットの作り方(11) 結果が均等であることを確かめる(なってないことがわかった)

imoue.hatenablog.com「前回ので理屈としては大丈夫なはずなんだけど、一応念のために調べとこうと思ったんだけど……これ均等になってないね」妹「なってなかったの!?」「まず確認方法なんだけど、ぐるぐるっと回して、出た何番の欄に+1、それを1000やっ…

ルーレットの作り方(9) 針の場所にとまったマス目を調べる

「コーン型のスタティックメッシュを、拡大縮小で奥行きゼロにするといい感じの針が出来たので、これを0の位置にセットして、その時針のある場所にあるマスの番号と文字を書き出すようにしてみた」「その結果昨日の計算は一部間違ってることがわかったので直…

ルーレットの作り方(5) ルーレットの着色

imoue.hatenablog.com 昨日までの話「今日はルーレットの……ルーレットのマス目? 、のようなところに色を塗っていく。とりあえず思いついた塗り方3種類を試した。設定はどれも11分割」妹「なんで11なの?」「塗りにくくてめんどくさい数だから」 2色で交互に…

ルーレットの作り方(3) 色が変だったのはメッシュの作り方を間違っていたせいだった

imoue.hatenablog.com「前回の、なぜか色が変わってしまう問題を解決しないことには、話が先に進まない。ということで色々調べてたんだけど……」「結局わからなくて、プレーンじゃなくてキューブとかでやったらどうかな、と思ってブループリントを見てたら気…

ForEachLoopによるコピーと参照の問題

つまり配列をForloopで渡したとき、Array Elementソケットから引っ張り出したやつは配列の中身のコピーになるっぽいのか。内部の値を編集するにはIndexだけ取り出して元の配列変数から参照Getする必要があると #UE4 pic.twitter.com/qzPGSr6Or9— 大福 (@dfk_…

TEXT型のCONTAINSの不思議な仕様

配列作成時の無限ループについて - UE4 AnswerHub「昨日ちょっと体調が悪かったからAnswerHub見てたら、Text型の配列のCONTAINSが上手く動かないという話を見かけて、実際試したら動かなかったのでText型だとまずいってのはわかったんだけど、何か気になるの…

Rotatorに角度を足し算する② それでも強引に足し算する方法

imoue.hatenablog.com imoue.hatenablog.com 昨日までの「昨日はCombine Rotationsノードを使うことで、角度をちゃんと変化させる方法をやったけど、実はもう少しちゃんとしてない方法もある」「こういう風にすると、普通に角度を足しても回転させることがで…

Rotatorに角度を足し算する

「昨日やったように、角度を変化させる時に普通に足し算で計算すると、途中で変な結果になる場合がある」imoue.hatenablog.com 昨日のやつ「ので、今日はそうならない用に足し算する方法。そういう角度関係のノードはヒストリアさんの記事で一覧になってて、…

SkySphereの太陽を動的に動かす

妹「太陽を動かす実験をやってたんだけど、上手くいったところと、いってないところがあるんだよ」妹「太陽を別の位置に動かすのはできた。最初なんか変だと思ったのは、どのライトを使うかの設定をしてなかったかららしい。あとライトの角度を変えた時にボ…

BoxTraceで真下に影を表示

妹「LineTraceでやってみてたんだけど、そうすると坂のところで変な感じになったから、BoxTraceに切り替えてみたら上手くいった」「坂だと表示位置がむずかしいのかな」妹「というか、Characterのカプセルコリジョンの設定で、坂に乗ってる時の足の位置が変…

2D的に影のできる場所をどうやって探すか

妹「ジャンプしてる時とかに、影をどうやって出せばいいかという問題があるんだけど」「どうやってというと」妹「空中にいるわけだから、足元じゃ駄目で、その下にある地面がどこか調べないといけない。LineTraceかなと思うんだけど、なんか大げさな気もする…

Math Expressionは、数学式じゃなく、C++で書かれている

妹「前回のやつだけど、MathExpressionノードがちゃんと出てないね……」imoue.hatenablog.com「言われてみればたしかに。やっぱり他の方法で載せた方がいいんだろうか」妹「でもブループリント多いと大変だよね……それはともかくとして、そのMath Expressionな…

スロープ付きの3つに別れた床

妹「当初考えていた床の仕組みがだいたいできた」「3つつながってるの?」妹「なんというか、こういう風に3つのライン? があって、その上を動いてるんだけど……」妹「横から見るとこうなっている。このライン同士を移動する方法をどうしようかと思って、それ…

Construction Scriptを、アクターのドラッグ中に実行させない方法

「昨日やったやつなんだけどね、あれやっぱり上手くいってなかったよ……」妹「えーーーー!!」imoue.hatenablog.com 実は上手く言ってなかったやつ「結局、マウスを離した時点では、グリッドからずれた位置にあって、その後直ってないんだよね、よく考えると…

プロシージャルでグリッドに合わせる足場……をさらに改良(失敗版)

※追記 この方法だと上手くいきません。よくみたらグリッドからズレてました。正しく対応する方法はこちらに imoue.hatenablog.com 昨日のやつを動かすとこうなるimoue.hatenablog.com妹「マウスでシュッと動かした場合は、動くんだけど、少しだけだと全然動…

プロシージャルでグリッドに合わせる足場

妹「前回の足場をいろいろ改良している」imoue.hatenablog.com 前回の足場妹「まず、今回のと違う形のメッシュにも対応したかったから、メッシュのバウンディングボックスの大きさを調べて、それを元に計算するようにした。これは上手くいってると思う」妹「…

プロシージャルな足場

妹「こういうのを、プロシージャルに作れるようにしたんじゃよ」「これは何なの?」妹「地面みたいなものなんだけど、なんというかね、普通に見えてる床とは別に、本当の床が置いてあるんだよ。見えないけどコリジョンのある。これを小さい床をいっぱいくっ…

リファレンス渡しに設定した時の動作(マクロ・イベント・関数の場合)

imoue.hatenablog.com「昨日の実験について、マクロの場合はリファレンス渡しに設定しなくても動くんじゃないか? という情報が寄せられた。実際試してみたら、設定しなくても普通に動いた。そこでそれぞれのケースについてリファレンス渡しの設定をしたりし…

値渡しと参照渡しは、兄にもよくわかっていない

妹「ちょっと前にボクセル作ってた時に、値渡しと参照渡しみたいな……って書いてあったけど、それなんだっけ? 聞いたことがあるかもしれないけどよくわからん」「それなら丁度いい記事があったよ。リファレンス渡しというのが参照渡しの事。単に言葉の訳し方…

GetGameTimeでプレイ時間は調べられる

imoue.hatenablog.com妹「ちょっと前の質問のやつなんだけど、あれ他にもなんかノードがあった気がする。たしかゲームタイム? とかいうやつが」docs.unrealengine.com妹「これこれ。Nowノードだとなんか色々ノード組み合わせる必要があるけど、これだと秒数…

クリアするまでにかかった時間を調べる

こんばんは! 表示の方はハイスコアの作り方と同じでいいと思います(たぶんどこかに情報が……)。タイムの計測は、プレイ開始時点と終了時点でそれぞれ現在時刻をGETしてその差を調べます。詳しくは記事で #peing #質問箱 https://t.co/jJ7BVwhqfh pic.twitt…

比較演算や論理演算を使った、複雑な条件分岐

初質問ありがとうございます! アイテムを取るごとに増えるint変数を作って、それと必要な個数を『>』とかで比較して、比較した結果の赤ピンをブランチノードにつなげる感じです。明日の記事でもう少し細かく #質問箱 #peing_unaunagi1 https://t.co/CmHCusO…

UE4.18の地味な改良チェック

forums.unrealengine.com「UE4.18の正式版が出てたので、例によってメインのやつじゃなくて、ずらっと書いてあるその他の更新内容の方をチェック」 Before After「まずベクトルの内積と外積を計算するノードが、記号から、crossとdotというアルファベット表…

複数のPawnが同じ入力イベントを受け取ることはできない(Actorならできる)

「AnswerHubの質問に答えてて気づいたんだけど、複数のポーン(Pawn)で入力を受け取るっていうのが出来ないっぽい」妹「あれ? 昔そういうのやってなかったっけ……」「それは全部複数のActorが入力を受け取る方法だったんだよ。Pawnではなくて」imoue.hatenabl…

アクターをサブレベルにスポーンさせる方法

「エディタで配置したアクターに関しては、昨日の方法で好きなサブレベルに移動させることが出来るんだけど、スポーンしたやつは全部パーシスタントレベル……つまり大本のレベルに所属してしまうという問題がある」妹「それだとサブレベルを読み直した時に弾…

サブレベルの作成と部分的なリセット

「サブレベルもちょっと使ってみた方がいいかなと思ったので、FPSテンプレートをベースにして、簡単な実験をやってみた。弾にあたって動くキューブだけサブレベルにうつして、任意のタイミングでサブレベルだけリセットする」妹「簡単そう?」「原理がわかれ…

リセット機能の作り方

妹「OpenLevelつかってリセットできるようにして、あとゲームが終わったときもこれで戻るんだけど、なんか読み込みに結構時間がかかって、その間についマウスをカチカチクリックしてタイトル飛ばしてしまうんだけど、これもっと速くできないもんかな?」「兄…