妹でもわかるUnrealEngine4

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

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

UE4.17

無料で地形をボクセルで加工出来るプラグイン「MarchingCubes」

www.youtube.comimoue.hatenablog.com「先日書いた記事で、無料のプラグインでもそんな感じのがあると教えてもらった」妹「これも地面を掘ったりなんだりするやつなの?」「そうみたい。機能差とかはよくわからないけど。今回はUE4.17用のサンプルプロジェク…

間接ライティングについて

「4.18でボリューメトリックライティングというのが追加されたみたいなんだけど、それは間接ライティングキャッシュの強化版で、でもよく考えると間接ライティングキャッシュがそもそもわからなかったので調べた」妹「わたしも知らない」「こういう光関係の…

Player0をキーボード操作、Player1をゲームパッド操作にする

「ローカルマルチプレイヤーの設定のところを見てると、Skip Assigning Gamepad to Player 1という設定項目がある。これにチェックを入れると、1p側がキーボード、2p側をゲームパッドという風に、入力を振り分けられるらしい」妹「逆にはできないの?」「で…

UseInverseSquaredFalloffによるライトの光り方の違い

ライトの調節をしてる時に、間違えてUseInverseSquaredFalloffというのを押したんだけど、明るさがすごく変わったから、なんで変わったのかの確認」docs.unrealengine.com妹「逆2乗?」「ライトの明るさの計算式の名前。内容としてはリアルなライトに近いと…

マルチプレイで画面分割をしないと、1P側カメラが有効になる

「画面が分割されるのはデフォルトの設定で、Use SplitScreenにチェックが入ってるからだった。なのでこれを外すと分割しなくなる」妹「そうするとカメラはどうなるの? 融合するの?」「融合はしなくて、1プレイヤー側というか、GetPlayerなんとかで0を指定…

本当にCreatePlayerするだけでマルチプレイになるのか試す

「ちょっとマルチプレイヤーの動作も試したくなったので調べてみたところ、基本的にはCreatePlayerをするだけでそれっぽくなるらしい」unrealengine.hatenablog.com 「2Dのサイドスクロールテンプレートに、ただCreatePlayerしただけ。2人目がでてきた。操…

SpriteStudioデータを3Dウィジェットとして表示する実験

「SpriteStudioのデータをUE4で表示する場合、SsPlayerコンポーネントで表示する方法と、UMGのウィジェットとして表示する方法があるんだけど、ウィジェットに出来るなら3Dウィジェットにだって出来るのではないか? というのが今日の実験」「できた。アニメ…

UE4用のSpriteStudioプラグインの導入が簡単になっている

github.com ※ UE4.17以降では、上記のシェーダファイルのコピーは不要になりました。 「今まではSpriteStudioプラグイン入れる時に、シェーダーファイルをUE4のインストール先にコピーしなきゃいけないっていうのがあったんだけど、それが4.17用からなくなっ…

3Dウィジェットと普通のウィジェットが重なった場合の追加実験

「昨日のウィジェットの重なりでちょっと気になることがあって試してたんだけど、設定がWorldだったら、操作判定のある普通のウィジェットに隠れてても、普通に押せるということがわかった。ボタンもカーソルのホバーに反応する」妹「Worldっていうのは、3D…

3Dウィジェットが物陰に隠れている場合の判定

「3Dウィジェットは3D空間にあるわけで、とうぜん隠れたりしてよく見えない場合がある。これの判定はどうなってるんだろうと思って調べた」「基本的にレイを飛ばして物体を探す仕組みと同じで、レイがウィジェットに届いたかどうかで、押せるかどうかが決ま…

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

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

3Dウィジェットにはポストプロセスマテリアルが効くし、ライトもあてられる

「3Dウィジェットってポストプロセスって効くのかな……と思って試してみたら、特に何もしなくても普通に効いた」妹「普通のウィジェットは駄目だったよね。なんというか、一番手前の手前に来る感じだし」「そういうモードもあるよ」「Widgetコンポーネントの…

3Dウィジェットをカメラに向ける

「3Dウィジェットは3D空間にあるから、向きによっては見えないこともある。平面ポリゴンにウィジェットを貼り付けたような感じ。違う角度からも見えるようにしたいので、今日はウィジェットを自動的に回転させる仕組みを作る」「FindLookAtRotationを使うと…

Widgetコンポーネントでウィジェットが表示されなくなる問題と解決法

「Widgetコンポーネントのパラメータを調整していたら、なぜかウィジェットが見えなくなって、しかも元に戻せなくなるというトラブルが発生した。DrawAtDesiredSizeという項目にチェックを入れると、なんかウィジェットが消えちゃう」妹「チェックを外せばい…

Widgetコンポーネントで、3D空間に文字を表示する

「メッセージウィンドウじゃなく、キャラクタに吹き出しを付けるみたいなやつを作ろうと思って色々試してみたところ、この3Dウィジェットという仕組みが良さそうだった」docs.unrealengine.com「Widgetコンポーネントというのを付けるだけで、画面の一番手前…

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

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

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

「サブレベルもちょっと使ってみた方がいいかなと思ったので、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 先日のやつ妹「これは……会話してるの?」「人間のまわりに透明コリジョンを置いておくと、通りすがりに声をかけられる感じになる。近…

大きさを変えてスタティックメッシュを作り直す

「昨日の問題に対処するべく、あとで拡大縮小するんじゃなく、スタティックメッシュそのものを小さくしてやろうという話」妹「えっ、これってそんな説明を要するようなやつなの?」「要しそう。基本的には大きさを調整したアクターをレベル上に置いて、スタ…

スタティックメッシュを縮小すると物理の動きがおかしい問題

「そういえば今回の妹の制作についての問題点とかは」妹「短時間で作るというのがあったから、そんなに難しいことはしてないけど、でも一箇所ヘンなことになったところがある。物が落ちてきたり跳ね返ったりするのを物理で設定したんだけど、これを普通にや…

Windows上での日本語入力関連の不具合追跡調査

「UE4.18で、日本語入力のトラブルが1つ解消されたらしい。MS-IME普段使ってないから、ちゃんと確認できてないんだけど」imoue.hatenablog.com妹「わたしは使ってるの?」「使ってない。なので、それ以外のWindowsの日本語入力関係の不具合がどうなってたか…

図解『Push-ups 60』の謎アニメーションの作り方

www.youtube.com「腕立て伏せのゲームを作ろうと思って、とりあえずポーズまでは作ったけど、それをどうやって動かすのかというのが問題だった」妹「普通にアニメーションとして作ったら駄目なの?」「上手くいかなかった場合はそうするつもりだった。Mixamo…

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

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

『ファンシーレイン』と『Push-ups 60』第8回UE4ぷちコンに応募した動画

www.youtube.com 妹のやつwww.youtube.com 兄のやつ妹「なんとか応募できた、これでTシャツが増える」「Tシャツ気に入ったの?」妹「夏になったから着てみたんだけど、着心地がいい。パジャマによし、普段着によし。なのでもう1枚欲しいんじゃよ。でも頑張…

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

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