妹でもわかるUnrealEngine4

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

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

ブループリント

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

初質問ありがとうございます! アイテムを取るごとに増える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のブループリントと構文木の図はよく似ている

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

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

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

アクターじゃないクラスを生成する方法

「AIの仕組みをUE4のブループリントで実装してみようと思ったんだけど、その前段階としてちょっと困ったことがあったんで、今日はそれのやり方を調査してた」妹「困ったこと?」「なんというか、アクターをスポーンさせるのは普通に出来るし、やり方も色んな…

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ゲームを作る(26) マウス押しっぱなしでの弾発射

「とりあえずUE4ぷちコン用のサプライズなネタも思いつかないことだし、とりあえず作ってたゲームの改良をしている」妹「矢の量を増やしたの?」「矢を増やしたというか、マウスクリックじゃなくて、マウスドラッグで発射するように変更した。押しっぱなしで…

水のマテリアル研究⑭ IFノードを使った色の塗り分け

「ニュース見てたら、この水あんまり見かけない感じのマテリアルだなと思って見てたんだけど、よく考えたらニュースだから普通に海の映像撮ってただけということがあって……」妹「わかる。わたしも本物の木はコリジョンがよくできてるなあと感心している」「…

GameModeとGameStateの、Baseとの違い

「GameModeと別にGameModeBaseが出来た問題を追いかけたんだけど、GameModeの方にはマルチプレイヤー対戦用の機能が入ってるらしい、ということしかわからなかった」妹「ソースコードとか言うのを調べてみては?」「調べた結果がそれなんだよ。なんというか…

どんなことがあってもY軸を固定するコンポーネント

「なんとなくコンポーネント作りたい欲が出てきたので、アクターにくっつけると、どんな時でも指定したY座標をキープするコンポーネントを作ってみた」妹「ヘンな欲……でもそれなんか意味あるの? 2Dゲーム用だとしても、物理とかだったら固定出来ると思うし…

クラスの継承とタグの扱い

「アクターに付けたタグの扱いについてちょっと勘違いしてて、クラスのデフォルトで設定したタグは、あくまでデフォルトで、配置した後に足したり消したり出来るから、個別に色々やっても大丈夫なことがわかった」「まず基本クラスにタグAとタグBの2つをつ…

GetAllActorOfClassからの絞り込み

「昨日のだとアクター全部を落下させる形になってしまうので、落下させるアクターと、させないアクターと区別する方法を考える」「一番簡単なやり方はこれ。Actorクラスじゃなくて、特定のクラスで絞り込む方法。一番ノードが少ないし、動作的にも多分速い。…

BlutilityはActorのカスタムイベントとして作る方が自由度高い

unrealengine.hatenablog.com妹「なんて読むの?」「ブルティリティ……かな。BlueprintUtilityを略した造語だと思うんだけど、とにかくエディタ上でブループリントが実行出来るというもの。詳しい手順は上記のブログがわかりやすい」妹「エディタ上で実行って…