妹でもわかるUnrealEngine4

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

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

ブループリント

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

Set Input Mode UI Onlyを使うと操作不能になる問題

「昨日発生した、ウィジェットを表示した時に、その時進んでた方法に進み続けてしまう問題を調査した」「これがTPSテンプレートのデフォルトキャラ(グレーマン)のブループリント。このInputAxisのところに数字が入り続けて、このイベント自体も実行させる…

NPCとの会話のシステム(4) クリックして話を進める

「分割したセリフを、クリックして読み進めるようにした。これがだいたいの完成型。ちゃんとDialogueっぽくなったはず」妹「最初のへんがなんかおかしいんだけど」「なんでかわからないんだけど、ウィジェットだけ入力を受け付けるようにしてるのに、キャラ…

NPCとの会話のシステム(3) 複数のセリフを1つの文字列から切り出す方法

「前回のは1行ごとに分けたけど、あれだと複数行のセリフに対応できないので、もう少し工夫を加える」 「前回は改行で区切ったけど、今回は何も文字がない改行だけの行で、ひと区切りになるようにした。言い換えると改行が2回連続した場合だけど。これでセ…

NPCとの会話のシステム(2) 長い文字列を配列に変換する方法

「昨日のやつに少し手を加えて、変数に設定した文字列の最初の行だけ表示するようにした」妹「1行だけ入れればいいのでは」「そうなんだけど、この特定の行だけ取り出す方法っていうのが、文字列を使って何かする時の基本になる」「これがウィジェットを表…

NPCとの会話のシステム(1) とおりすがりの会話

「先日の会話の話で、あれもっと簡単に作れるんじゃないかと思ったんで、少しテストをしてみている」imoue.hatenablog.com 先日のやつ妹「これは……会話してるの?」「人間のまわりに透明コリジョンを置いておくと、通りすがりに声をかけられる感じになる。近…

メッセージウィンドウの表示方法

妹「OCTOPATH TRAVELERやっててふと思ったんだけど、これって街の人と会話できるよね? どうやって作ってるんだろ」「どうやってというと……」妹「いやこれUE4製なわけでしょ? 文字を表示するのはいいとして、テキストノードを死ぬほど作って、それをごにょ…

ディスパッチャーを使ったら、Faild import for functionエラーが出た時の対処法(仮)

「ちゃんと動作はしてるんだけど、プロジェクトを開いた時の謎のエラーが気になる……」妹「何やったの?」「いや普通にディスパッチャーを作って、イベントをバインドして、UMGのアニメーションが終わったタイミングで色々やろうとしただけなんだけど。色々す…

UE4.17の新機能・途中で関数のピンを減らした時に赤い警告ピンが出るようになった

「4.17の正式版も出たので早速チェック」docs.unrealengine.com「昨日のデフォルト値以外にもブループリント周りで結構重要な変更があって、途中で関数のピンを減らした場合の扱い変わってる。Orphan pinという項目のところに書いてある」

UE4.17の関数のデフォルト値

「4.17で関数のデフォルト値が使えるようになるという話と、今までも使えたのでは? という話と両方を耳にしたので、どういう変更が加わったのか調べてみた」4.16の場合 ・デフォルト値はどんな型でも全部文字で入力(入力しても意味がなさそうな型も多々あ…

Morepork Games製の便利なMacroセット

forums.unrealengine.com「今日見つけたのはプラグインじゃなくて、マクロの形で便利なノードが使えるようになっているアセット。このアセットをプロジェクトのcontentsフォルダ以下のどこかに入れておくだけで使えるようになる。フォーラムに投稿された記事…

お互い手を出すだけのジャンケン

「ちょっと前に作ってたジャンケンの続き。CPU側の手が動くように、GameModeの中に処理を組み込んだ。これによってCPUも手を出せるようになった。今のところ手を出すだけで、特に何が起こるというわけではないんだけど」「今回はDelayを使って全体の流れを作…

UE4のブループリントと構文木の図はよく似ている

「今日は遺伝的プログラミングについて調べてたんだけど、なんかすぐにブループリントで実装できるサンプルが見つからなかったので小休止」妹「こないだ動画を見たやつ?」「あれは遺伝的アルゴリズムで、遺伝的プログラミングというのはその強化版みたいな…