投稿記事

無料プランの記事 (64)

わんころの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 で作れそうですね!

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

それではまた!

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

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

わんころのUE5勉強会 2023/06/17 22:56

自作ゲームの進捗14:謎解きに使う時計を作成

皆様、こんばんは!

少し空きましたが、本日は久しぶりの進捗です。
謎解きゲームではよく見かける時計の針を合わせるものを作成しました。



連動する仕掛けはまだ未作成ですが、長針と短針をそれぞれ回して指定の時間へ合わせば正解判定が出るようになってます。

本体は Megascans でいい感じのものはあったのですが、針は探せなかったのでモデリングモードで針っぽいものを作って代用してみました。裁縫の針のような見た目ですがとりあえずこれで...



レベル上で長針・短針の初期時間と、正解時間を入力できるようして判定しました。画像では初期が11時50分、正解が6時25分となっています。


何時は0~11、何分は0~59の間で変数が変動するように。
良いやり方は分からなかったので、長針短針でプラス/マイナス方向への回転しょりで計4通りの処理を書いてます。

右回りで変数が +1 ずつ増えていき、12で割った余りで短針を、60で割った余りで長針を表しています。

左回りで -1 して上記のように余りを求めるとうまく求められないので、短針では11を足してから12で割った余りを、長針では59を足してから60で割った余りを求めることで、左回りの場合を計算しています。


右回りか左回りかは入力アクションの Action Value が 1.0 か -1.0 で返ってくるので引数で渡して使っています。
(IA_Mystery_LeftRight は Axis 1D で設定)

次は図柄を合わせるなどすると開くトランクケース的なものか、それに代わるものを作成しようと思います。


FF16 の体験版をプレイしたんですが製品版がかなり楽しみになる作りでした。操作が他のアクションゲームと比べるとボタン配置が独特で混乱してましたがクオリティがかなり高かったです。

次は Lise of P をプレイしようと思います。見た目が Bloodborne 感があるのでこれも楽しみでございます。

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

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

3 4 5 6 7 8 9

限定特典から探す

記事のタグから探す

月別アーカイブ

記事を検索