妹でもわかるUnrealEngine4

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

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

ウィジェット

UE4.16の新機能で、自作のハードウェアマウスカーソルを出す

https://www.unrealengine.com/ja/blog/unreal-engine-4-16-released 「4.16のリリースノートの日本語版が出てたから見てたんだけど、その中にハードウェアのカーソルのカスタム化っていうのが書いてあって、さっそく試してみたのが上の写真」妹「このガブ太…

UMGのフォント輪郭線問題の追加調査

すごく太い かなり太い そこそこ太い「やっぱり半濁点がどうしても気になったから、さらにいろいろパラメータをいじってみてたんだけど、どうも一定の太さを超えると、完全に閉じた部分の表示がおかしくなるらしいことがわかった」妹「"ぽ"のクルってなって…

UMGの縁取りフォント機能を試す

「UMGの機能でフォントの縁取りが出来るようになってた気がするので、これも試してみた。ほとんど場合で縁取りした方が字が見やすくなる」妹「"ぽ"の、丸の部分が、なにか足りないような……」「とくに何かしたわけではなく、普通に幅だけ設定したはずなんだけ…

UMGのバインドとPreConstructイベントの併用

「タイミングを取れるように、じゃんけんぽんと掛け声を表示する必要があるんだけど、あいこの場合は文字が変わるから、そのへんをパラメータで切り替えられるようにしたい。でも変数へのバインドという形で作ると、これだと実行時には出てくるけど、編集中…

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

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

UMGの新機能・PreConstructを使った場合 #UE4

t.co「このブログで紹介されてるのを見て知ったんだけど、UE4.16からUMGにPreConstructというイベントが追加されたらしい。これが丁度欲しかったやつだったので、早速プロジェクトを4.16用にバージョンアップして導入してみた」「これがいままでのやつ。本当…

クリックした時のエフェクトは大事 #UE4

「無事アニメーションの作り方も思い出したので、ボタンをクリックした時のエフェクトを入れた。これがないと押せたのか押せてないのかわからないから、ものすごくストレスがたまる」妹「ボタンウィジェットには最初から反応して絵が変わるやつなかったっけ?…

UMGのアニメーション復習 #UE4

「今日はちょっとボタンのアニメーションをやる。UMGのアニメーションは前にもやったんだけど復習しながら」docs.unrealengine.com(1) どのウィジェットの、どのパラメータを動かすか考える(RenderTransform欄を使うのが望ましい) (2) アニメーション欄に新…

自作マウスカーソルをウィジェットとして表示する・第2弾 #UE4

※現在はもっといい方法が見つかっています imoue.hatenablog.comimoue.hatenablog.com imoue.hatenablog.com「自作のイラストを使ったマウスカーソルを作る、というのは前にもやったんだけど」妹「やった気がする」「今日やるのもだいたい同じ、ウィジェット…

不思議なマウスカーソルの挙動 #UE4

「ウィジェットを使う時にどうしても考えないといけないのがマウスカーソルの問題」妹「それはなんか前に少し調べたような気がする。自分で作ったカーソルを表示する方法とか」「今回あらためて調査したんだけど、実際問題としてよくわからなかった。これは…

UMGの自作ウィジェットにクリックイベントを作る

「ウィジェットは入れ子構造になってて、作ったウィジェットを、別のウィジェットの中にはめこむということも出来る。今回は画像と透明ボタンをセットしたウィジェットを作ってる。この時にちょっと困るのが、自作ウィジェットにはOnClickとかのイベントがな…

UMGウィジェットだけでゲームを作る実験中

「UE4で2Dゲームというと、Paper2DやSpriteStudioを使って、3D空間に2Dキャラクターを表示するのが主流だけど、ウィジェットだけでもゲームは作れるはずなので、それをやるとどういう問題が起きるのか、というのを確認している」妹「じゃん……けん?」「海外…

ゲームパッド(とキーボード)で、UMGのウィジェットを操作する動画

www.youtube.com「たしか前にゲームパッドで、ウィジェットの操作が出来ないという問題があったと思うんだけど」妹「ウィジェットはわからないことだらけだから、全部覚えてないけど、マウス操作じゃないと困ったことはあった気がする」「それでゲームパッド…

UMGのImageウィジェットで、タイリング表示から別の表示に切り替えた時に起こるバグ

妹「……」「まだウィジェットで悩んでるの?」妹「Marginはわかったんだけど、なんだか不思議なことが」 Box表示 Image表示 + Tiling=Both に変更(タイリング表示) Box表示に戻す妹「こういう順番で操作すると、なんか……なんかおかしなことになるんだよ。タ…

UMGで画像の枠線部分に設定するMarginの値

historia.co.jp妹「前に一回見たんだけど、どこだったかわからなくなってた記事があって、長年探してたんだけど、ついに発見することが出来た」「ウィンドウみたいな画像の、枠線の大きさを変えずに拡大するやつ?」妹「それで早速やってみたんだけど、なん…

UMGウィジェットの表示がHTML5だと変わってしまう件(4) TTFフォントをOTF形式に変換してからアセット化

「とりあえずOTF形式のフォントを使えば大丈夫、ということが昨日わかったわけだけど、TTFしかないフォントもたくさんある。妹が使ってたやつもそう」妹「別のフォント探さないと駄目かな」「探してもいいんだけど、TTFからOTFに変換するという方法もある」j…

UMGウィジェットの表示がHTML5だと変わってしまう件(3) フォントがOTF形式なら正しく表示された

「バグ報告をしようと思って、最小限のデータだけの確認用プロジェクトを作ってたんだけど、そうすると何故か普通に表示できちゃったんだよ。どうやらフォントがデフォルトのRobotoのままだったからみたいで、昨日のプロジェクトもRobotoにすると問題なくな…

UMGウィジェットの表示がHTML5だと変わってしまう件(2) 何かがおかしいということはわかった

「どうも表示がおかしいのはフォント部分みたいなので、HTML5のフォント表示について、いくつかの設定を試してみたけど、同じだったり、そもそもブラウザでエラーになったり、どれも上手くいかない。それで新機能も試してみた」「4.14だったか15だったかから…

UMGウィジェットの表示がHTML5だと変わってしまう件(1) 状況確認

「シューティングゲームに得点表示を付けたいんだけど、ウィジェットに関しては以前妹が作ったゲームでちょっとした問題が起きてるのが未解決。また同じ問題が起きたら嫌だから、これを解決してから取り掛かりたい」妹「ちょっとじゃないよ! 大問題だよ!」…

UE4でSpriteStudioのロゴを表示する

「今日はSpriteStudioのIndie版を使う時の条件、最初にロゴの表示するやつの手順を確認をしようと思う。バージョンは、UE4.13.1、SpriteStudio5.7、SS5PlayerForUnrealEngine4 1.2.2」妹「ゲームを売り出す時に必要なんだっけ?」「無料でもゲーム作品を出す…

ポストプロセスやウィジェットで画面の色を変える実験

「ぷちコン応募時に上手く出来なかった宿題で、まずダメージ時に画面の色を変えたかったというのをやってみる」妹「ポストプロセスはわたしもやりたかったんだよ。ヒシャカイシンド? とか。でもなんか欲しい見た目になってくれなかったんでやめたけど」「こ…

UE4.13からPaper2DスプライトをUMGで表示できる……らしい

www.unrealengine.com「4.13の更新情報、日本語のやつが出てたんだけど、これによるとウィジェットの中にPaper2Dのスプライトを使えるようになったらしい。これ妹がほしがってたやつだよね?」妹「あ、さっきそれ見たよ。これほんとかな……C++専用とかじゃな…

UE4用のSpriteStudioプラグインが大幅強化

historia.co.jp「久々に妹向けのニュースが来たよ。SpriteStudioの新バージョン5.7用のプラグインが出てる。その5.7自体はまだ出てないみたいなんだけど……」妹「駄目じゃん!」「そのうち出るでしょ。今回はSpriteStudio側の新機能対応だけじゃなくて、UE4の…

UMGで同じウィジェットに複数のアニメーションを同時につけたい

妹「HPのハートを、ダメージを受ける毎に小さくするブループリントと、上下にふよふよ動くアニメーションがあるんだけど、何故かこれを同時に実行すると上手く動かないんだよ。動かすのに使ってるパラメータは別だと思うんだけど」「たしかに上手くいかない…

ウィジェットのスロット

妹「ひさしぶりにウィジェットを作ってたんだけど、このスロットっていうのは結局何なんだろ? それが置いてある場所というか、入ってるところのことなんじゃないかと思うんだけど。同じScaleBoxでも、それがCanvasに置いてあると、スロットのとこにはCanvas…

ウィジェットのイベントConstructが発生するタイミング・その2

前回の話imoue.hatenablog.com「……ということを書いていたところ、AddToViewportするまでConstructが働かないなら、むしろ最初にAddToViewportしちゃうという方法を教えてもらったよ」妹「最初からAddViewportするとウィジェットが一瞬見えちゃうんじゃない…

ウィジェットのイベントConstructが発生するタイミング

妹「ウィジェットのConstructイベントから、こういうブループリントに繋がってるんだけど、ここが呼び出されるのが表示の後だから、表示される前に配列の大きさを使えないんだよ。Constructって作成した時に呼び出されるもんだとばっかり思ってたんだけど」…

ImageウィジェットにSpriteは使えなさそう

妹「お店でアイテム買う画面を作ってたけど、あれアイテム増えてないから、お金が減ってるだけだから、ちゃんとアイテムも増やそうと思ってるんだけど、インベントリの画像にSpriteって使えないのかな?」「SpriteってPaper2Dで使ってるやつ?」妹「そうそう…

OnMouseMoveで自作カーソルを動かす……のはあんまり良くない

imoue.hatenablog.com「前にウィジェットでマウスカーソル作った時にOnMouseMoveがないか探してたんだけど、オーバーライドのところで見つかったから、今日はこれを使って自作カーソルの移動処理を作ってみました」「Canvasでカーソル作ってslotを経由したり…

OnKeyDownとOnPreviewKeyDownの違い

妹「結局のところOnPreviewKeyDownのプレビューというのはなんだったの? べつにOnKeyDownでも良かったの?」「OnKeyDownはそのウィジェットにフォーカスがある時だけ動くんだけど、OnPreviewKeyDownだとそれが子ウィジェットにフォーカスがあっても動く、と…

イベントでHandledを返して標準操作を無効化する

imoue.hatenablog.com「昨日の、フォーカス移動を自前のキー処理でやってても、カーソルキーとかでも動かせちゃう問題だけど、こういう風にすると対応出来る」「昨日のブループリントだと、A・S・Dの3つのキーのどれでもないキーが押された時、最後のブラン…

OnPreviewKeyDownイベントでウィジェットのフォーカスを制御する

妹「EventReply関係の話を探していたら、なんかウィジェットをキーボードを動かそうとしてる話を見つけたんだけど、その人がやってた方法はこうやってOnPreviewKeyDownイベントをオーバーライドしてたんだよ」「同じやり方を新しいウィジェット用に試したん…

Event Reply(イベント応答)を設定する

LogBlueprint:Warning: [compiler メニュー] 警告 Event Reply Return Value should not be empty. Return a reply such as Handled or Unhandled. LogBlueprint:Warning: [compiler メニュー] 警告 [0074.05] メニュー のコンパイルに成功しましたが、1 個…

キーボードだけでウィジェットを操作する・2

妹「昨日のやつにカーソルの上下移動を付け加えてみたよ。そして一番端からさらに端の方に動かそうとすると、反対側にワープするようにした」妹「だいたい昨日のと同じだけど、縦横に動くわけだから、兄がモニョモニョ言ってた二次元配列の作り方を参考にし…

キーボードだけでウィジェットを操作する

妹「アクションゲームだとマウス使わないのに、ウィジェットのだけとこだけマウスで押さないと駄目なのは困るから、自分で操作できるようなボタンを作った」妹「本当はボタンを押した時と押してない時の、へこんだような絵とかにしたかったんだけど、上手く…

自作マウスカーソルが遅れてついてくる問題

妹「気のせいかなとも思ったんだけど、昨日作ったカーソルって、本物マウスカーソルにくらべてちょっと遅れてるような気が」「遅れてる。元々マウスカーソルはゲーム側じゃなくて、WindowsとかのOSで制御してるんだけど、OSの仕組みの中でもめちゃくちゃ優先…

自作マウスカーソルをウィジェットとして表示する

※現在はもっといい方法が見つかっています imoue.hatenablog.com妹「カーソルの方もだいたいわかった。GetMousePositionScaledByDPIというのを使うと、DPIを計算した後の場所が出てくる。ような気がする」「あとカーソルの位置もかな。標準だと動かす側のCan…

ウィジェットを任意の場所に動かす方法・その2

「それでウィジェットの表示位置を指定する方法なんですけど……」妹「もう出来たよ」「そ、そうなんだ」妹「昨日までは動くかどうかわからなかったからあれだけど、動くとわかるとだいぶやる気が出てきた。そしたらなんか出来た」「ちなみにどういう方法で?…

ウィジェットを任意の場所に動かす方法・その1

「ウィジェット動かす方法がわかりました」妹「動いたの!? もうこれ全然動かないから、ActorとTextRendererでなんとかしようかと思ってたよ。まあそうすると今後は日本語が出なかったんだけど……」「色々見てたらカーソルの動きに合わせてウィジェットを動…

引き続きウィジェットいじってみたけど特に進展はなかった

妹「あの後別のウィジェットとして同じ様にテキストのあるやつを作ってみたんだけど、やっぱりデフォルト値を無視して空っぽになっていた。最初はこんな風になってなかったというのがやっぱり勘違いで、元々こんな動作だったのかな」「この問題はウィジェッ…

ウィジェットブループリントのデフォルト値が上手く反映されない問題

妹「キャラクターのセリフを吹き出しで出そうと思ってて、色々やってるんだけど、なんだかそれ以前の問題が起きてしまった」「"ここは"って言われても……ここはどこなの?」妹「どこかを書こうとしてるんだけど、それがさっぱり反映されないのが問題なんだよ…

体力をハートマークで表示する・その3

妹「もしゼルダみたいにハートが1/4ずつ減らせるようにしようとしたらどうなるの? HPを0.25ずつ減らすの?」「そうじゃなくて、HPの計算を4倍にする。最大HPと、くらうダメージと。10段階あるんだったら同じように10倍する。とにかく1が最小の単位になるよ…

体力をハートマークで表示する・その2

「昨日の続きの、どういう仕組みで表示を切り替えるかって話なんだけど、HPが1の時はハート1がTrueで、ハート2がFalseでって、全部分岐作ってもいいけど原始的すぎる。基本的には計算で、HPの上限が増えたりしても対応出来るようなブループリントにしたい………

体力をハートマークで表示する・その1

妹「ぷちコンのやつ作り始める前に何やってたのか思い出してたんだけど、なんかウィジェットで体力表示を作ろうとして行き詰まってた気がする」「今だったらウィジェットの調査が進んだから作れるのでは?」妹「いや全盛期だったらそうかもしれないけど……」…

ラブ・エネミーのゲームオーバー演出の作り方

妹「そういえば兄が作ってたゲームの、GameOverの字がグルグルって出てくるやつはどうやって作ってるの?」「あれはウィジェットなんだけど、ウィジェットを動かす方法は知ってる?」妹「画面外から動かしてくるのは見たことある」「それとだいたい同じ原理…

ウィジェットをきっちり真ん中に置く方法

妹「ウィジェットを真ん中に置くのってどうしたらいいのかな。今のところ目分量で、だいたい真ん中のあたりに置いてるんだけど」「ど真ん中ならそこにアンカーを置けるのでは?」妹「ど真ん中ではなくて、上下にはずれてるんだけど。それにアンカーだけ置い…

SizeBoxやScaleBoxを使ってスコア表示を作る

SizeBox使用前 ↓SizeBox使用後 「VecticalBoxとHorizontalBoxを使ってテキストを並べてるんだけど、SCOREとHIGHSCOREで文字数が違うし、点数の部分も違うわけだから絶対どこかがずれてたんだけど、スコアのテキストをSizeBoxでラップすることによって、そこ…

ウィジェットの大きさを画面に合わせる その2

「昨日のやつで色々試していたら、ScaleBoxだけじゃなくSizeBoxも重要なことがわかった」「画面全体をScaleBoxに入れてしまえば、全体的に拡大出来るのでは? と思ってたんだけど、それをやると中にいれたCanvasPanelが思ったのと違う大きさになってしまって…

ウィジェットの大きさを画面に合わせる

妹「点数表示するウィジェットとか作ったんだけど、これ画面サイズを変えても大きさがちゃんと変わらないから、変なとこにかぶって邪魔になる……」「それは基本的にはアンカーとScaleBoxを使って対応すればいいと思う」「まずアンカーだけど、"アンカー"って…

ウィジェットはキーボードで操作出来るのか?

妹「ウィジェットってキーボードで操作出来ないのかな? ゲーム中はキーボードかゲームパッドを使うわけで、そうするとメニューとかもキーボードで操作出来ないと困ると思うんだけど」 「うーん、ざっと見た感じ出来そうだよ。UE4.6から出来るようになったと…