妹でもわかるUnrealEngine4

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

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

アルゴリズム

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

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

カーリング的な物を作る(2) ストーンを曲げる

「石が曲がるようになった。減速処理も前回のから変わってるけど、はみ出しちゃったし、そんな重要な問題ではないので」妹「石が速い時は曲がらないんだよね」「実物はどうかわからないけど、今回の計算では微妙に曲がり続けてる。ただスピードがある時はち…

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

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

ブループリント製のマッチ箱脳(2)

「昨日の分に学習の仕組みと、あと現在のマッチ棒状況の表示機能を加えた。コレでニューラルネットワーク的なアレになったはず。今回はマッチ箱Aを整数型、マッチ箱B・C・Dを構造体として作った。ただ構造体は一部だけ書き換えるのが面倒くさいので、2つの整…

ブループリント製のマッチ箱脳(1)

問題とマッチ本数の初期設定 解答表示部分 アウトプットウィンドウに出てきた解答https://www.1101.com/morikawa/2001-03-12.html https://www.1101.com/morikawa/2001-04-02.html 「"マッチ箱の脳"の、初歩的なモデルをブループリント化してみた。といって…

妹にもわかりそうな人工知能の本

https://www.amazon.co.jp/dp/B00DT4DY0M/ https://www.1101.com/morikawa/2001-04-02.html妹「そういえば最近”マッチ箱の脳”という本を読んだんだよ。人工知能っぽいやつに興味があって、色々見て回ったんだけど、これが一番わかりやすかった」「妹にもわか…

2つのIntegerを組み合わせて、より大きな整数を作る(表示編)

「疑似巨大整数システムは一応データ的にはそれっぽくなってたけど、それっぽく表示も出来るようにしてみた。9999万9999までの数字を2つつなげた仕様。+5000万1 と -1000 を計算させて、正常に変化してるのを確認した。3000億超えの数字だから、通常の32bitI…

2つのIntegerを組み合わせて、より大きな整数を作る(改良版)

「昨日のやつを色々試していたら、問題が起きる場合があったので修正した」妹「今日のは後半がブランチになってるね」「上の桁と下の桁の数字を比較して判定してたんだけど、先に上の桁を変えると、下の桁を計算する時には判定結果が変わっちゃってるんだよ…

2つのIntegerを組み合わせて、より大きな整数を作る

「2つのIntegerをくっつけて、より大きな変数を作り出す実験をしてみた。ただし1つの変数が0~9しかないから、数としてはあんまり増えてない。理屈の確認用」妹「-100から始まって、次が-9-9?」「これは仮の表示だから、上の桁が0以外の時は下の桁の符号を…

OpenAssetOrgのアセットで2Dゲームを作る⑪ 敵キャラクターの移動

「敵の移動、っていっても、ただ横に動くだけのシンプルなやつなんだけど」 「こういうコンポーネントを作って、王様のPawnにくっつけた。今回の制作では色んな処理をコンポーネントとして作ってみたいという目標があるので、移動処理は全部コンポーネントに…

数字の足りない桁をゼロで埋める方法「Right」

妹「こういう感じで、時間とか表示する時に、数字がひと桁だったら0を入れて表示したいことって、よくあるんだけど……」妹「今回は色々考えた結果、文字列を加工したらいいのでは? と思って、そういうブループリントを組んだんだけど、もっと良い方法あるん…

Lerp をさらにもっといい感じにする Ease

妹「数字をいい感じにしたいんだよ。上手く説明できないんだけど、とにかくいい感じに数字を変化させたいというか」「それはEase的な話かなあ……」[UE4] 動きに緩急をつけるEaseノードの紹介 | historia Inc - 株式会社ヒストリア「AとBをAlphaのピンをつなぐ…

小さい時ほど数字を大きくする・Larp と NormalizeToRange 応用編

妹「小さい時ほど大きくなるような数字が欲しいんだよ。こう、スピードが遅い時は大きい数字になって、速い時ほど小さい数字になるのがいいんだけど」「なんだかよくわからんけど、たぶん昨日の応用の話のような気がする」 「Lerp は、A と B の数字を入れ替…

エビフライを反復横跳びさせる

「エビフライのジャンプ方法についてこのところ悩んでて、CharacterMovementを使うかとか、スプライン関数はどうかとか、色々考えてたんだけど、最終的にこの本のアルゴリズムを使うことにした」 アクションゲームアルゴリズムマニアックス : 松浦 健一郎, …

配列の中からランダムで1つ取り出す

「昨日の記事で出てきた、敵配列の中からランダムで1つ選ぶというやつ、あれって他の方法が速いんじゃないかと気になったので、今日はその動作速度を比較する実験をやった」SHUFFLEノードを使うパターン RandomIntegerInRangeノードを使うパターン 「実験に…

空中を自動的に障害物を避けながら飛ぶプラグイン「DoN AI Navigation」

www.drunkonnectar.com「UE4の標準のナビゲーションシステムは、空中を浮いて移動するキャラクターには向いてない。じゃあ標準じゃないナビゲーションシステムを使えばいいのではないか? ということで今日紹介するのはこの、DoN AI Navigation」www.youtube…

CanWalkOffLedgeで崖から落ちない、崖の上で折り返す

妹「さらに調査した結果、CanWalkOffLedgeをFalseにすると、床からはみ出しても落ちないというか、そもそもはみ出さないようになることがわかった」「アクションだと落ちるのが普通だけど、アクション要素の無いRPGだと落ちないのが普通だからね。街中なら柵…

レトロゲームプロジェクトの研究③Snake編

imoue.hatenablog.com「今日は妹が特に困ってないので、先日のレトロゲームプロジェクトの研究の続きを」妹「いや非常に困ってはいるんだけどね。複数コリジョンのやつとか……」 ゲーム内容 赤いブロックを上下左右に動かして、星型のアイコン(食料)にぶつ…

全然無限じゃないのに無限ループと言われる問題

妹「パンチのボタンを押した時に、アニメーション中の特定のタイミングでだけ当たり判定を出したいんだけど、なんか無限ループだと言われるんだよ。タイミング的に1秒もないだろうし、全然無限じゃないよね?」「なるほど、これは見事な無限ループですな妹「…

下からジャンプで通り抜けられる足場・番外編(3Dの場合)

妹「ところでこのすり抜ける足場って、2Dの場合はこれでいいとして、3Dでやると変なことにならない?」「3Dといっても色々あるけど、全方向に自由に動けるゲームだったらあんまりこういう足場はないだろうね。でも動ける方向が限定されてて、見た目3Dだけど…

下からジャンプで通り抜けられる足場・その2(台地型)

妹「すりぬけるやつは、なんとなくわかったんだけど、ブロックみたいなやつじゃなくて、盛り上がったかんじの足場はどうやるんだろ? マリオ3とかにあったんだけど。あれは横に行くと通れるし、でも上からだと乗れるし、なんだか複雑そうな感じがする」「こ…

下からジャンプで通り抜けられる足場・その1

妹「アクションゲームだと、足場ってのは下からは通りぬけられて、上からだと着地出来る感じになってると思うんだけど、これはどうやって作ったら良いんだろうか」「こういう感じの足場かな」妹「そんなやつ。コリジョンで考えると、下から行く時はオーバー…

ブループリントを実行するのにかかる時間を調べる

妹「イベントティックで、配列の中身をループさせてチェックするとかやっていいのかな?」「やってもいいと思うけど、なんで?」妹「茂みとかもそうだけど、アクションが起こせるアクターの近くに行った時に、それとわかるような演出を出したいんだよ。で、…

二次元配列の作り方・その2

関連記事imoue.hatenablog.com妹「昨日言ってた、横幅を足したり引いたりして上下に動かす案なんだけどさ、あれだと横にいきすぎた時のループ処理とか出来なくない? 現在位置がどうなってるかわからないから、普通に1足すと次の段にカーソルがいっちゃうよ…

数字の範囲ごとに分岐させる

妹「点数に応じてランク表示みたいなのをしたい。10万点以上なら上級者ですみたいな。とりあえず5種類ぐらい。ブランチノードをいっぱいつなげば出来るとは思うんだけど、なんかもっと良い方法ありそうな気がするんだけど」「それはC++だとSwitchで書けるん…

配列の中身をランダムに取り出す(Randomが返す範囲)

「そういえば、こないだブループリント見てて気になったんだけど、これって配列の中身からランダムにGETしてるんだよね?」妹「そーだよ」「でもこれだと最後の1個が絶対に選ばれないと思うんだけど。何度やっても絶対選ばれないアクターがあるはず。ここは…

二次元配列の作り方

妹「配列って、タンスみたいに入れるとこが並んでるイメージでしょ? あれってたしか縦と横それぞれに並んでるようなのもあった気がするんだけど、作り方がわからないんだけど」 「二次元配列ね。そういう物もあって、C++なら作れると思うけど、ブループリン…

アクタをちょっとずつ目的地に近づける方法・もっと簡単版

「よく考えると、昨日のブループリントだと残りの距離のことを考えてないから、残り2cmしかない時でも5cm先までいっちゃうという問題が残ってる」 妹「途中でBlockされるから別に平気なのでは?」 「Blockだとそうなんだけどね。Overlapにして高速移動させる…

アクタをちょっとずつ目的地に近づける方法

妹「ヒット問題が解決したのはいいんだけど、ルートにSceneがないとMoveComponentToが動かないなあ」 「そもそもなんでコンポーネント動かしてたの? この場合アクタごと動かしてもいいのでは」 妹「コンポーネントを動かしたかったわけじゃなくて、MoveComp…