読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

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

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

UE4.15

バージョンアップ後の最初のパッケージ化は遅い気がする(少なくともHTML5は) #UE4

「今回に限ったことじゃないんだけど、どうもバージョンアップした後のパッケージ化は遅い気がする」妹「4.15から4.16にしたから?」「そういう場合もだけど、今回は4.16のpreview4から正式版にしただけ。他にも4.15から4.15.1とかのマイナーアップデートの…

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

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

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

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

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

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

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

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

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

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

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

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

UE4.16Preview2でWebAssembly版がChromeでも動くように

forums.unrealengine.comforums.unrealengine.com「UE4.15.2と、4.16 Preview2の、ふたつのアップデートが出てた。このうち4.15.2の方はピンとくる修正はなかったけど、4.16のHTML5対応がよくなってた。Preview1の段階だとFirefoxでしかまともに動作してなか…

物理エンジンで2次元方向にしか移動させない方法 #UE4

「UE4の物理を使った時に、決まった方向にだけしか動かない方法がわからないという話を先日聞いたので、今日はその方法をチェックしておこうかと」妹「勝手に奥とかにズレないようにするってことだよね」「そうそう。これは2Dゲームの研究中に少しやったよう…

PlayerStartとAutoPossessPlayerの仕組み

「先日AnswerHubでPlayerStartと違うところにキャラクターが出てきちゃうという質問があって、それ結局なんでかはわからなかったんだけど、PlayerStartに関してはちょっとよくわからない部分があったんで、今日はそのへんの実験について」妹「PlayerStartの…

UMGウィジェットにポストプロセスは効かない

「ウィジェットを配置してて、ふと気になったので確認したんだけど、ウィジェットの表示にポストプロセスは効かないみたい。2値化を無視して元の色が出てくる」妹「それはポストプロセスマテリアルだけ? それともポストプロセスっぽいの全部?」「たぶん全…

UE4のエディタ便利操作5選……の動画紹介

www.youtube.com「海外の掲示版で紹介されてた動画なんだけど、小技の紹介動画的なもの。ブループリントとかマテリアルとかじゃなくて、エディタ操作に関するものみたい」妹「どんなのがあるの?」(5位) アクターを選択した状態でEndキーを押すと、地面にく…

UMGのテキストボックスに日本語を入力するテスト

「UE4って日本語の表示は出来てるけど、入力はどうだったかな……とちょっと気になったので、今日はそのテストをした。普通にウィジェット出して、入力したら別の用意してあるテキストエリアに表示する」「一応出来てるみたい。Windows以外ではどうなるかわか…

ポストプロセスマテリアルによる簡易LUT

「ルックアップテーブル(LUT)による色変換で、色々情報をもらったんだけど、今のところ中間色が出ないようなLUTを使う方法は見つかってなくて、それでポストプロセスの標準機能ではなく、マテリアルでそういう処理を組めばいいのでは? と思ってやってみたの…

ポストプロセスマテリアルを使った2値化+輪郭線

「LUTによる2値化は上手く行かなかったので、ポストプロセスマテリアルで作ったみた」妹「白黒じゃないんだ」「原理的にはこれ何色でもいいから、今回は淡い色合いにして、それにプラスして先日作った輪郭線のマテリアルも入れた。どっちもタイミングの設定…

ポストプロセス LUTの弱点・階調化フィルタ

「昨日はピクセルの場所に関係ないフィルタならいけるって書いちゃったけど、厳密に言うとそれでも駄目なやつがある。例えば上のスクリーンショットは2値化フィルタを書けたLUTを使ってるんだけど」妹「2値になってないね。グレーがいっぱいある」「グレー部…

ポストプロセスのカラーグレーディング

「ポストプロセスは色々面白そうなので、引き続き調査中」妹「これは画面の色調を変えたの?」「いやこれは変えない設定にしたつもりなのに、何故か変わっちゃってる件の調査」docs.unrealengine.com「この中のルックアップテーブル(LUT)というやつを試して…

ポストプロセスマテリアル実行のタイミング

After Tonemapping Before Tonemapping Before Translucency Replacing the Tonemapper「これは昨日作ったポストプロセスマテリアルの、空の網目模様を消したバージョンなんだけど、同じマテリアルでも実行のタイミングで全然見た目が違う、というのが今日の…

マテリアルによるトゥーンアウトライン研究(9) 外側にアウトライン生成するポストプロセスマテリアル

「研究の結果、だいたい納得のいくマテリアルが出来た」妹「これは外側に線入ってるの?」「多分そうなってる……と思う。虫眼鏡でじっくり調べたわけじゃないけど、線を太くしても中のキャラクタの大きさ変わらなかったから上手くいってるはず」ポストプロセ…

マテリアルによるトゥーンアウトライン研究(8) 内側と外側のどちらに線を入れるか

妹「線を内側に出すのと外側に出すのって、そんなに違うものなの? お絵かきソフトとかでやる時はあんまり変わんなかったと思うんだけど」「内側と外側というのは、より手前にある物体の表面に線があるか、奥にある物体の表面に線があるかという違いなんだけ…

マテリアルによるトゥーンアウトライン研究(7) 先行事例の研究

qiita.com「UE4を使ったトゥーンレンダリング(ノンフォトリアル)の事例はいくつかあるんだけど、説明が日本語で、かつ導入が簡単なのがEpicのシモダさんが作った物。ポストプロセスマテリアルがすぐ使える状態で公開されてる」「これは線がみやすいように…

マテリアルによるトゥーンアウトライン研究(6) 法線データの参照

「アウトラインを出す方法には、深度(奥行き)を使った方法の他に、法線を使った方法もあるらしい。法線が急に大きく変化してる場所は、ポリゴンの角度がきつい場所なんだから、そこに線を入れとけばいいという考え方」妹「法線ってなんだっけ? 聞いたこと…

マテリアルによるトゥーンアウトライン研究(5) シンプルすぎるアウトライン表示

「まずはサンプルのマテリアルを調べようかと思ったけど、必要のなさそうな部分がかなりあってわかりにくいかったら、まずは細かいことを考えずに深度から単純に線を引くようなマテリアルを作ってみた」妹「線でてないとこが結構あるね」「深度差のとこを100…

マテリアルによるトゥーンアウトライン研究(4) サンプルのマテリアルを別プロジェクトに入れてみる

「しばらく脱線してたけど、今日からはまたトゥーンアウトラインの方をやる予定」前回の記事 imoue.hatenablog.com「まずはStylizedRenderingのポストプロセスマテリアルを、テンプレートプロジェクトに移行する。これで線がどういう感じになるかの確認」「…

色んなポストプロセスマテリアルを見て回る

「ラジアルブラーのポストプロセスマテリアルは上手くいったけど、他にももっと色々良いのあるんじゃないかと思って調べてみた」docs.unrealengine.com unrealengine.hatenablog.com「まずマテリアルを使わなくても、標準のポストプロセスで出来ること、とい…

ポストプロセスマテリアルで中心以外をぼかす(8) マテリアルブループリント版のラジアルブラー

「妹がラジアルブラーのやつでもう少し綺麗にぼかしたやつが欲しいというので、マテリアルブループリントに移植したやつを作った。なかなか大変だった」妹「いいじゃんいいじゃん、こういう感じ」「今回は見栄えをよくするために、サンプルのSunTempleプロジ…

マテリアル用デバッグ命令

「マテリアルを編集してると、この計算合ってるのかな? と不安になることがあるんだけど、そういう時に便利なのがDebugなんとかという命令。例えばDebugFloat2Valueノードと使うと、Vector2の数字が画面に表示できる。ウィンドウが小さいと上手く表示されな…

ポストプロセスマテリアルで中心以外をぼかす(7) ラジアルブラーでぼかす

「海外フォーラムでラジアルブラーという、中心から広がるようなボカシ方の、カスタムマテリアルを見つけたから、今日はそれを試してみた。中心からだんだんボケていくというのは、こっちのイメージが近いんじゃないかと思って」妹「それはいいと思うけど、…

ポストプロセスマテリアルで中心以外をぼかす(6) Customノードでぼかしをかける

妹「こりゃ妹にはわかりませんな……」「やってることはマテリアルブループリントで作ってたのと同じで、周囲81ピクセルの色を均等に混ぜるやり方。昨日までのはプログラムといっても1行だけだったけど、ループをさせるとなるとなかなかそうもいかなくて。ブ…

ポストプロセスマテリアルで中心以外をぼかす(5) CustomノードからSceneTexture:PostProcessInput0を取得する

「とりあえずCustomノードから、PostProcessInput0の数字を調べることに成功した。そのままだとちゃんと計算出来てるのか、それともマテリアルが無効になってるのかわからなかったから、とりあえず✕3して、明るくなるようにした」SceneTextureLookup(uv, 14,…

ポストプロセスマテリアルで中心以外をぼかす(4) Customノードのテスト

「Customノードというのは、マテリアルの中身をプログラムとして書けるノードのこと。普通のブループリントでいう数学式(MathExpression)ノードのような働きをする。といっても数学式ノードも使ったことなかった気がするんだけど」妹「使ったことないね」「…

ポストプロセスマテリアルで中心以外をぼかす(3) もっと真面目に画面をぼかす

「昨日は4つのピクセルの色を平均する、というやり方でぼかしてたけど、今日はなんと9x9で81ピクセルの平均を取るやり方にした。とはいえ81回分もノードを組み合わせるのはやってられないので、マテリアル関数を使って整理した」 全体図 指定された近辺9ピ…

ポストプロセスマテリアルで中心以外をぼかす(2) 画面をぼかす

「グラデーションのかかった円の処理は出来たから、次は画面をぼかす仕組みを作る。円を描くノードがなかったのと同じで、ぼかすというノードもないので、またどうにかして計算式を作る」・現在表示中のピクセルから1つ上のピクセルの色を取得 ・現在表示中…

ポストプロセスマテリアルで中心以外をぼかす(1) マテリアルによる円の表示

妹「ポストプロセスのやつなんだけど、ひょっとしてこれ使うと画面の中心以外をぼかすっていうのが出来たりしない?」「できると思うけど、何に使うの?」妹「ロックオンしてる時とかに、そこ以外あんまり見えない感じの演出をやりたいと思ったことがあるん…

マテリアルによるトゥーンアウトライン研究(3) SceneTextureノードの色々

SceneTexture:SceneDepth(を6000で割った物)「ポストプロセスマテリアルの中では、色以外の情報も色々操作できる。だいたいSceneTextureというノード経由で、各ピクセルごとの情報を調べることが出来る。あんまり使わなそうなのもあるけど、上の画像は、そ…

マテリアルによるトゥーンアウトライン研究(2) ポストプロセスマテリアルとは何か

「StylizedRenderingサンプルは全体的にイラスト風の表示になってるけど、おおまかにわけると3つの処理に分かれてる」・色の塗り方をアニメ風に(セルシェーディング)→普通のマテリアル ・画用紙っぽい質感→ポストプロセスマテリアル ・黒の輪郭線→ポスト…

マテリアルによるトゥーンアウトライン研究(1) とりあえず眺めてみる

「マテリアルを使い方もだいぶわかってきたから、今度はちょっとトゥーンレンダリングというやつをやってみようと思う」妹「ゼルダみたいな?」「ゼルダのは色の塗り方というか、光のあたり方を調節してるやつだと思うんだけど、どちらかというと輪郭線の方…

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

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

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

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

ブループリント製のマッチ箱脳(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 「"マッチ箱の脳"の、初歩的なモデルをブループリント化してみた。といって…

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

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

UnrealEnginePythonをちょっとだけ試す

github.com「UnrealEngineでPythonが使えるプラグインがあると聞いたので、ちょっと試してみてた」妹「パイソン? ストⅡに出てくる?」「その人はパイソンでなくバイソンですね……Pythonというのは、プログラミング言語の一種なんだけど、海外ではとても人気…

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

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

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

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

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

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

UE4のIntegerの上限と下限

「ちょっと気になることがあったんで、王様のスコアを1億点ずつにしてみた」妹「マイナス……になってる?」「スコアはInteger型で管理してるけど、これが上限を超えるとマイナスになってる。これはコンピューターの仕組み的な物で、32ビットの場合2147483647 …

OpenAssetOrgのアセットで2Dゲームを作る(29) 意味はないけど得点するようになった

↓ここに最新版をアップロード http://unaunagi.github.io/apps/game2d/「今日はあんまり進んでないけど、とりあえず敵を倒すと点が入るようにしたバージョンを遊べるようにした。ただ……なんか動作が遅い気がする。敵と矢が多すぎたかも」妹「多すぎると駄目…

OpenAssetOrgのアセットで2Dゲームを作る(28) BuildStringによる文字の結合

「フォントはOTFフォントなら問題なさそうということがわかったので、スコア表示も入れる。加点の仕組みがないからずっと0点のままだけど」妹「BuildStringというのは?」「文字の結合はAppendノードを使ってもいいんだけど、BuildStringを使う方がノードの…

OpenAssetOrgのアセットで2Dゲームを作る(27) 敵の種類と数を増やす

妹「そういえば盾もった王様って、最初しか出てこないんだけど。バグなのでは?」「そういうわけじゃないんだけど。ランダム生成は普通の王様だけだから、初期配置の3人だけ盾もってる」「いっぱい出るようにした」妹「多い……」「こっちは矢が大量に撃てる…