投稿記事

わんころのUE5勉強会 2023/08/17 21:44

自作ゲームの進捗18:時計のモデル作成とバグの修正などなど

皆様、こんばんは!

前回の更新からしばらく空いていましたが、少しずつ裏では進んでおります。規模を大幅縮小したためゲーム本編だけなら6-7割くらいは完成したんじゃないかと思います。

謎解き部分の連動や、それに伴うイベント周り、特に UI 周りが整えばいよいよ大詰めになってきそうです。

無料公開を予定しているのでさっさと作って公開したいという気持ちもあるのですが、最近手を入れ始めた UI 周りの仕様が特殊なのか馴染めない所があり苦戦しております。


そして何か進捗を出そうと思ってたんですが、脱出ゲームを作ってる手前、こんなの出てきます!を作成するたびに出してるとネタバレしてる感も出てしまい、ちょっと出しづらいな...と思いました。
折角なんで出すんですけどね...



以前の進捗で、時計の仕掛けをと思い Megascans から持ってきたモデルと針っぽい何かをモデリングモードで作成し、これを時計だと言い張ってたんですが、時計のモデルはやっぱり欲しいと思い Blender で作成してきました。



左が Blender で作成した素のモデルで、右側が UE5 に持ってきてマテリアルだけ変更したものです。
結構見た目の印象も変わり、これなら胸を張って時計と言えます!

Blender でモディファイアの配列を使ってオブジェクトを均等に円形配置出来るようになりました。



針の回転部分などは以前作ってたのでモデルを差し替えるだけでした。また、画面中央に点を置いてインタラクト可能な物に近づくと目玉のアイコンに変わるようにしました。

Collision に入ったらどこを向いていても目玉が出て不自然なので、対象のオブジェクトとの内積を取ってキャラの向きがある程度オブジェクトへ向いてる時に処理するように変更するか、Collison 内で Tick を有効にして LineTrace などでヒットした時に出すとかしようとは思ってます。


次はオプション画面あたりの実装を整えようと思ってます。
WidgetBP と少しくらいは仲良くなりたい...

それではまた!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2023/07/31 21:22

自作ゲームの進捗17:内部的な部分などを修正、追加など

皆様、こんばんは!

1週間ほど前からコロナに罹っておりまして色々終わっておりました。
まだ喉が若干痛かったり、異様な倦怠感を示していますがとりあえず PC で作業したりなど出来るまでは快復したので生存報告も兼ねて。

現在のプロジェクトですが、UE5.0.3 から UE5.1.1 へ移行しました。
現時点では目立った不具合らしきものが出てないので良かったです。
パッケージ化も行い、こちらも大丈夫そうな気配。

まだ移したばかりなので様子を見ながら進めてみます。



YesNoDialogue の作成。
該当BP へのイベント通知周りを少し考えないといけなくなったのですが見た目も結構気に入ってるのでどっかで使おうと思ってます。


UE5.1 に移した理由の一つに Overlay Material で楽をしたかったというのがありまして、選択中の StaticMesh を分かりやすくしたいなと思い早速実装。

SetOverlayMaterial を呼んで指定のメッシュにマテリアル設定するだけでお手軽に使えるので非常にありがたいです。



マテリアルは Opaque/UnLit で設定し、Fresnel ノードを使った簡易的なもので実装。これだけでも選択中というのが分かるのでいいですね~。

後は簡易的なインベントリ画面の作成や、内部的なところをあれこれ追加していきました。

画面で見せれるような場所があまりないので以前とほぼ変わってなさそうに見えますが、内部的な部分はちゃんと使いやすくなっていってます。


先日 UE5.3 Preview1 が公開されてちょっとだけ触ってみました。
UE5.2は殆ど触ってないのにもう UE5.3 が...早いですね~

かなり熱いですし熱中症なども含め、皆様もどうかご自愛下さい!
それではまた!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2023/07/12 23:30

自作ゲームの進捗16:ダイアルロック解除の仕掛け

皆様、こんばんは!

ここ最近眠気に負けすぎてしまい UE5 を触れてなかったのですが、少しでも取り戻すため作業を再開していました。


今回実装したのがダイアルロックの解除処理です。
以前 YouTube で紹介したことあったんですが、あの時に比べて出来ることも増えたため処理自体は結構スマートになったかなという印象です。

先日スーツケースを Blender で作成したのですが、それと連動する仕掛けも欲しいなと思っていたため、当初は普通の鍵で開けるタイプにしようとしてましたが、ダイヤルロックで解除する方式にしてみました。



キャラの視点からカメラの切り替えに使った「Set View Target with Blend」ですが、このスーツケースの BP に Camera Component(画像の DialLockCamera) を追加し、Camera Component を引数 "New View Target" へは直接繋げませんでした。

この "New View Target" は Actorのオブジェクト参照だったことを今回初めて知りました(Camera Actor 限定だと思ってた)

Camera Component から「Get Owner」を出すことで接続でき、カメラの切り替えが出来ました。かなり便利な関数ですね。

これなら別の Actor へ視点を移したりも結構簡単に出来そうだなと思いました。


そして、当初予定していた2つ3つの謎を解くという目標はほぼ達成しました。後はどうこの謎解きを連動させるかなどを考えていきます。


オプション画面の実装がまだ残っているので、これが結構厄介かもしれないです。

それではまた!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2023/07/02 20:23

【UE5】C++を少しだけ勉強してみたのでメモ書き

皆様、こんばんは!

最近 Twitter では呟いてなかったですが、少し C++ を触っておりました。またやること増やして...とは思ったんですがどうしてもやってみたかったことがあって触ってみました。

自分なりに便利そうな関数を実装してまとめてみようと思い、出来ればプラグインにしたりなど、とりあえずよく分からないなりに進めてみようかなと。

※注: 意味不明なことを書いている可能性があります

四則演算


これは1年前にチャレンジしたものですが、四則演算を元々ある Increment Int のようにノード1個で更新するものを作成してみました。画像は Integer型ですが、Float型も用意しました。

できれば Add Pin をサポートしたいと思うのですが、まだ調べれてないので後日確認予定です。


引数に参照渡しを使う場合は UPARAM(ref) を付ける必要があります。

公式:ゲームプレイ要素をブループリントに公開する

「実行可能な関数およびオーバーライド可能な関数」に

関数シグネチャを作成する場合、リファレンスでパラメータ パスを作成すると、それがブループリント ノード上の出力ピンになることに注目してください。リファレンスでパラメータ パスを作成するには、 UPARAM() マクロを使います。

という記述と一緒にサンプルコードが記載されています。


配列の昇順/降順ソート


使うかわからないですが、配列内をソートするための関数です。Ascending フラグが True で昇順、False で降順になります。

公式:TArray:Unreal Engine における配列

配列は TArray を利用するようです。



TArray::Sort は引数なしの場合、デフォルトで昇順になるようです。

降順の指定方法がよくわからなかったのですが、TArray::Sort の項目(ソート)を見ると、文字列同士の長さを比較しているサンプルがあったので Intger型で置き換えてみました。

一応出力結果は大丈夫そうな感じでしたが、C言語では見たことない記述な上、合ってるのかどうかよく分かってないという...
こういう書き方はラムダ式と呼ばれているようでした。


平均値


引数で Integer型の配列を受け取り、その平均値を返す関数です。

配列内を全部足して、最後に要素数で割れば平均値になりそうなのでこんな感じにしました。

配列の長さは C++ だと Length ではなく、Num みたいです。


DateTime - DateTime

※ 若干挙動が怪しいので注意ですが、とりあえずメモ書き

日付と時間を DateTime構造体で返す「Now」という関数があります。
開始時間を「Now」で取得して変数に保存し、終了時間との差分を求めれば時間の計測などに使える便利な関数ですが、UE5 だとバグがあるみたいで Unreal Engine Issues に報告が上がっています(UE5.3 で修正されるようですね)


上記画像のように「Now」から引っ張り、減算ノードの入力ピンに繋いだ時点で、DateTime構造体からTimespan構造体に変換されてしまうようで、これがバグになってるそうです。

公式:FDateTime から "Operators" の - 演算子の項目を見ると、
FDateTime - FDateTime を FTimespan で返すものがあったのでこれも関数にしてみました。



それぞれの構造体は下記ヘッダにあるそうです。
#include "Misc/DateTime.h"
#include "Misc/Timespan.h"


試しに「Delay」の開始前に「Now」で取得した値を変数へ保存し、画像のように5秒後この値を出力すると4が返り、10秒を指定すると9が返ってきたので -1秒されてるようでした。

UE4 ではバグがなく普通に使えるそうなので、挙動の確認をしてみましたが、UE4 でも -1秒 された値が出てたので多分大丈夫ということにしました。




二つの差分を秒で返すという関数を作成してみました。分や時間、ミリ秒も作成。結果も同じだったので一旦よしとしました。

これも後日可能なら Add Pin をサポートしてみようと思います。


今のところ何かの値同士を計算するくらいしか行ってないんですが、かなり難しいですね...ややこしいというか、記述が独特というか...

前よりちょっとだけ理解は出来たような気はするので少し前進です。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2023/06/28 22:24

自作ゲームの進捗15:謎解きに利用するスーツケース

皆様、こんばんは!
最近 Blender を練習しております。

自作ゲームにどうしてもスーツケースや鍵が欲しくなったので Blender で作成してみようと思いました。

とりあえず基本的な操作方法を覚えながら、UE5 へ取り込みテストも行い、簡単な手順は確認できました。


素体のままだと味気ないので、テクスチャを作成するため UV展開というものを勉強してたのですが、動画やネットで調べてもいまいちピンときませんでした。

https://twitter.com/UE5wancoro/status/1671878741067448322?s=20

Twitter で呟いたこの右下の画像が UV展開をする前に赤い線を入れた場所でシームを入れたらこういう風に開くかな?というのを想像しながら書いたもので、Blender 上で試したらその通りになったので一気に理解が深まりました(良かった)



そして色々試した結果、今のところこんな感じになってます。

3Dモデルの知識が殆どないため専門用語や操作方法でかなり苦戦しています。基礎の基礎はなんとなく理解し始めてきているので少しずつ覚えていきたいと思います。

以前 UE5 のモデリングモードで作ったスマホも今なら Blender で作れそうですね!

これが終わったら鍵を作ろうと思ってますが、鍵の凸凹はこれより形状が複雑なのでどうなることやら...覚えることが増えると段々楽しい所が多くなってきていいですね!

それではまた!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

2 3 4 5 6 7 8

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索