投稿記事

無料プランの記事 (62)

わんころのUE5勉強会 2023/03/27 21:43

【UE5】最近マテリアル系を触ってました

数日前、YouTube でコメントを頂き、雨のマテリアルを作成する動画を紹介して頂きました。ありがとうございます!

勝手ながら紹介させて頂きますが、Ben Cloward さんのこちらの動画です。
https://www.youtube.com/watch?v=fYGOZYST-oQ
Episode 13 ~ Episode 18 で雨の表現をするためのマテリアルを作成するチュートリアル動画となっています。

私はまだ Episode 17までしか確認出来てないため途中なのですが、動画の通り進めて一旦このようなマテリアルを作成出来ました。

Megascans の Surface から適当なマテリアルを取得し、上記の動画シリーズで作成したマテリアル関数をその中に組み込んでみた結果の動画です。

丸パクリしたものを入れただけですがもの凄いクオリティですね...
効果音などがあれば更に説得力のある表現になるんじゃないかと思います。
次の Episode18 でここまでのものを全部統合するような動画になってるそうなのでこの記事を書いてる間にさっさとやれよ!と思わなくもないです。

時間が出来た時に Episode18 を確認します。


動画の後半に青い波紋が広がるようなエフェクトも入れたのですが、これはまた雨のとは別のものです。

以前から興味のあった Blender を触りました。
と言っても基礎の基礎で、ビューポートの操作をほんの少し学び、エフェクトに使えそうなディスク形状のメッシュを作成しただけです。

UE5 で利用するためにマテリアルやテクスチャも必要だったので CLIP STUDIO を使って一つテクスチャを作成しました。

利用したブラシ:
火炎影ブラシ / Flame Silhouette Brush

超手軽に火の表現が可能な本当に素敵なブラシです!



マテリアルはこんな感じで割とシンプルですが、メッシュ外側の切れ目が目立つのでフェードアウトさせるとかした方がいいですね...

前回プロジェクトを新規にしたところからゲーム制作も再開したのでそちらも進捗があればこちらで報告していきます。


毎年花粉や鼻炎で年がら年中鼻水には尽きないのですが、今年は花粉がやばいのか目が痒いし鼻声が続く日が多くなりましたね。

ここ数日爆弾低気圧とやらで雨も続いて頭痛も酷いしなかなか辛いところです。

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

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

わんころのUE5勉強会 2023/03/20 23:01

【UE5】Enhanced Input:Player Bindable Input Config

2024-04-04 追記:
【注意】
この記事は UE5.3 で非推奨な機能となっており、Enhanced Input User Settings を使うよう記載がございました。
しかし、Experimental な機能も含まれていたため今後変わるかもしれません。



またまた Enhanced Input です。

今回の記事では Enhanced Input のプラグインが有効になっているとコンテンツフォルダで右クリック> 入力(Input)に出てくる Player Bindable Input Config(UE5.1 だとPlayer Mappable Input Config) について見ていこうと思います。


https://youtu.be/aBI8n3Il0sg
このファイルを使ったキーコンフィグの実装例を動画にて作成しました。

始める前に

以降、日本語の説明がついているので UE5.1 で操作しますが UE5.0.x と違う部分が出るかもしれません。
また、ソースコードを見れるスキルはないため Blueprint での操作・お話を前提としております。


Player Bindable Input Config / Player Mappable Input Config の名前について

※注:UE5.3 で非推奨な機能になっています。


UE5.0.x と UE5.1 で名前が若干違います。
(UE5.0.x では Bindable、UE5.1 では Mappable)

一応日本語用と英語用の名前も画像で載せましたが中身は同じです。

Enhanced Input を使う前の入力では「プロジェクト設定」> 「インプット」で軸マッピングやアクションマッピングという名前だったので、"マッピング" という名前の方がしっくりきますね。

UPlayerMappableInputConfig

このファイルは UPlayerMappableInputConfig になっていて色々中身を登録できるようになっています。

URL に PythonAPI と書いてますが使用できそうな関数や変数、簡単な説明が確認できます。

https://docs.unrealengine.com/5.0/en-US/PythonAPI/class/PlayerMappableInputConfig.html


関数の名前や説明、そしてこのファイルのポップアップからなんとなくキーコンフィグに使えそうな雰囲気があります。

Player Bindable Input Config / Player Mappable Input Config を作成

コンテンツブラウザで右クリック> 「入力(Input)」から「Player Bindable Input Config」または「Player Mappable Input Config」を作成可能です。


作成後、何もせずにすぐ保存するとエラーが発生します。

「有効なConfigNameがありません!」と分かりやすく書いてくれています。このファイルを開いてみます。


先頭の「ConfigName:None」を指しています。なんでもいいので任意の名前を付ければこのエラーは解消されます。


とりあえず中身をこのようにしてみました。

Config Name:この構成を識別するための一意の名前のようです。サフィックスに分かりやすく _ConfigName とつけてみました。

Config Display Name:この機能に限らず「Get Display Name」という関数を使い、デバッグ用途で画面出力を行い確認することも多いですが、恐らくこれもそういう用途ではないかと思います。サフィックスに分かりやすく _DisplayName とつけてみました。

▼「Get Display Name」
https://docs.unrealengine.com/5.1/en-US/BlueprintAPI/Utilities/GetDisplayName/

Is Deprecated:このファイルが非推奨かどうかをマークするために利用するフラグのようです。新しく作成して以前のものは非推奨にとかそういう用途なんでしょうか。

MetaData:ポップアップには「アイコン、アビリティ、アセットなど、キーマッピングに関連する他の項目を格納するために使用できるメタデータ」と書いてあります。必要な情報をプラスで紐づける時に利用するんだと思います。

Contexts:IMC の配列です。このファイルの利用用途が主にキーコンフィグを扱いやすくするためにデータをまとめるためなので、キーコンフィグに利用したい IMC を右の入力欄(Priority)とセットで登録します。

配列で複数登録できるので、今回はプレイヤーの基本移動と弾を発射する IMC をそれぞれ登録してみました。

ファイルの準備は一旦こんな感じでいきます。

変数の作成


"Player Mappable Input Config" 型の変数をオブジェクト参照で追加し、変数名はそれぞれの頭文字を取って PMIC としています。

初期値には先程作ったファイルを設定しています。

Get Config Name/Get Display Name

先程サフィックスにそれぞれ _ConfigName / _DisplayName と付けましたがそれが出力されていることが分かります。

Get Mapping Contexts


PMIC 内で登録した IMC の一覧を取得できます。

戻り値は、"Input Mapping Context" が Key
Priority である "Integer" が Value のマップになっています。


これは先程設定したこの画像の下にある IMC と Priority のセットが返ってきます。

必要なキーを取得するための設定

ゲームによってはキャラの移動やマウスのカメラ移動など、キーコンフィグにそもそも使用されないキーが出てくることがあります。

キーコンフィグで利用したいキーだけ自分で設定し、必要な情報だけ取れるようにする設定です。
PMIC はこれを目的で利用する事がメインになると思いますが、利用するために少し準備が必要です。


キーの割り当ては IMC 内で行いますが、そのキー1つ1つに "Is Player Mappable" というフラグが存在します。

このフラグを ON にし、"Player Mappable Options" の中にある "Name" に好きな名前を登録すれば準備完了です。

今回の例ではジャンプに利用するスペースバーと、ゲームパッドAボタンのみ設定しました。
(Name は None や空欄になっているとエラーが発生します)

Get Player Mappable Keys:必要なキーだけ取得


先に BP を載せておきます。

PMIC から「Get Player Mappable Keys」を呼びます。
戻り値は Enhanced Action Key Mapping 構造体の配列です。
Enhanced Input の入力設定が詰まった構造体です。

画像のように構造体ピンを分割すると、Triggers や Modifiers など見覚えのある情報が表示されると思います。

今回の例では、この中の Key から「Get Key Display Name」を使って割り当てたキーを表示するということをしてみました。

結果はこの画像の右上の通り、ジャンプに利用するスペースバーと、ゲームパッドAボタンが出力されました。

"Is Player Mappable" にチェックを入れて設定した情報のみが出力されることが分かりました。

この関数は、PMIC に登録さえできていれば「Add Mapping Context」で追加されていなくてもキーの情報が取得できる点が優れています。

ゲーム開始時には「Add Mapping Context」されていない IMC もキーコンフィグの対象になっている場合はこのファイルを使うと色々扱いやすいと思います。


Add Player Mappable Config(2024-04-04修正)

※注:UE5.3 で廃止され、この関数が利用出来なくなりました

書き忘れてたので追記。


「Add Mapping Context」では1つの IMC を追加できますが、この関数を使うことで複数の IMC を一気に追加することが可能です。

"Config" に「Player Bindable Input Config」または「Player Mappable Input Config」を指定するだけです。
(追加したい IMC と Priority はそれぞれアセット内で設定します)


キーコンフィグ以外の使い方になりますが、例えばゲーム開始時に追加する IMC が複数ある場合、このアセットに登録しておくことで「Add Player Mappable Config」を一回呼べば済むのでノードをすっきり出来るかもしれません。

ゲーム内で IMC を複数登録したり外したりを繰り返すような実装の場合は便利かもしれません。


最後に

最初このファイルの利用用途が分からなさすぎて、どういう使い方をするのかさっぱりでした。
色々検証している間に Is Player Mappable のフラグがここで絡んでたんだなと勉強になりました。

この情報を使えばキーコンフィグの処理をする際の準備も簡単に出来そうだなと思いました。

仕様変更に追いつけない...

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

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

わんころのUE5勉強会 2023/03/20 00:06

自作ゲームの進捗08:やりたいことが増えすぎたので規模を大幅に縮小

久々の進捗報告ですが、どちらかというと停滞しました。

まだまだ自分のスキルが足りないため、色々勉強するためサンプルプロジェクトや、以前から進捗報告をしていたプロジェクトで演出などを組んだりしながらスキルアップをしておりました。

確実にスキルは上がったのですが、当初目指してた規模よりも大きくなりすぎたこと、収拾がつかなくなりそうだったので思い切って新しいプロジェクトにしました。

停滞と言っても、以前作成したリソースはすぐ利用できるし、使い勝手が良くなかった部分もこの際リファクタリングしようと思っているので違うステージを作ってる感じですかね。



モデリングモードの CubeGrid ツールを使い移動可能な部屋や通路のプロトタイプをざっと作成し、そこに床や壁の配置だけ行いました。


また、通路を行ったり来たりする作業が出てくるため、通路の各地にテレポート可能なポイントを設け、キーを押すとその場所へすぐ移動できるようにしました。

かなり簡易的なツールですが、テレポートしたいポイントを配置するだけなので割と楽になったんじゃないかなと思います。

かなり殺風景になってしまいましたので、小物系の配置やメインとなる謎解きなど考えていこうと思います。

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

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

わんころのUE5勉強会 2023/03/03 21:32

テスト用のプロジェクトを仮作成

自作ゲームを作成し始めたことがきっかけで、ある機能を追加したいけどメインプロジェクトで作成してやっぱり要らなくなったら取り除くのが面倒そうな機能を実装するケースが出始めてきました。

そういう時、新規プロジェクトで必要な設定のみ行ってから実装して判断するという方法を取っていました。
そのようなケースが出るたび何かしらの設定を行う必要があるので素早くスタートしづらくとても面倒でした。

簡単な所だと UE5.0 で Enhanced Input を使いたい場合、Input Mapping Context や Input Action 他、プロジェクト設定など毎回する必要があったわけです。
(UE5.1 で Enhanced Input が標準でサポートされたので入力に対しては結構楽になったのは嬉しいですね!)


そんな訳で、なにか検証を行う用のテンプレートプロジェクトがずっと欲しかったのでようやく重い腰を上げて簡易版を作成してみました。

まだ欲しい機能はありますが、ざっと下記の内容に。

  • Game Mode
  • Game Instance
  • Enhanced Input 用の Player Controller
  • Save & Load の基本機能
  • Blueprint Interface
  • Common UI 周りの基本設定と表示
  • World Partition / Data Layer の基本設定 など

テスト用とは言えメインの処理に統合やアセットの移行を行うことも想定しているので、出来るだけ参照が紐づかないように Blueprint Interface 周りは整えました。

例えば Game Instance や Player Controller などが持っている機能にアクセスするためテスト用ではキャストをしてましたが、Blueprint Interface 経由で呼ぶようにしておけば参照ビューア上では紐づかないため、アセットの移行で楽になることが期待できそうです。

後は Enhanced Input で「Add Mapping Context」する時に Input Mapping Context や Priority を指定しますが、これらも関数にまとめておき、Priority に関してはマジックナンバーを避けれるようにしてみました。

とりあえず PriorityList なる列挙型を用意し、その列挙型を Key とし、Priority である Integer型を Value に持つ変数をマップで持っておくことにしました。

手動で Priority を割り当てているとその内どれがどれだっけと追うのが大変なことになりそうですしね...。

とりあえずこれで環境構築をし直さないでいい所が増えたので、細かいところはまた自分なりにアップデートしていこうと思います。

効率の良いやり方ではなさそうですが、とりあえず自分の中では作業が少し楽になったので良しとします!

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

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

わんころのUE5勉強会 2023/02/28 07:30

WILD HEARTS を購入しました

久々の更新ですが今回は雑談枠です。
ω-Force の新作狩ゲー WILD HEARTS を購入しました。

ω-Force と言えば無双シリーズの印象が強いですが、私は討鬼伝というゲームがとても好きで、PV も面白そうだったし期待も込めて購入しました(開発のコアスタッフは討鬼伝のメンバーではないそうです)

新作ゲームは去年3月に買った Ghostwire: Tokyo 以来ですね。

良かった所

とりあえずソロプレイでストーリークリアまでプレイしました。
操作はキーボードとマウスで、PC ゲームをあまりやらないので操作に慣れてみたいと思いチャレンジしました。

戦闘シーン

戦闘はメイン武器と別に"からくり"という独自のシステムがあるためそれらを使いながらスピード感ある戦闘が楽しめました。

別ゲーなのでモンハンと比べると申し訳ない気持ちになりますが、やっぱり討鬼伝や WILD HEARTS の方が戦闘は遥かに楽しいと感じました。

クエストの討伐対象とは別の敵もエリア内に存在していますが 2vs1 というシチュエーションはありませんでした。
途中で2匹目が来たり、間違えて攻撃を当てたとしても空気を読んでエリアを横切っていくのでとてもありがたいですね。

また、戦ってるエリアから少し外れるとその敵が戦ってたエリアの所定位置まで引き返しプレイヤーを待ってくれてるので、ひと呼吸置きたい時などに活用できるのも個人的には優しい設計だと思いました。

ベースキャンプなどの設置物

野営地と呼ばれる場所だと低コストで設置できますが、それとは別にコストを掛けて自分でベースキャンプを自由に配置できます。

このベースキャンプはマップからファストトラベル出来るため自由に設置できるというのはいいなと思いました。

ボスが良く移動するエリアの付近や素材集めの付近など、一度設置しても解体すれば掛けたコストは戻ってくるのでかなり自由度は高かったです。

また、クエストを開始した後でも装備変更できるのが良かったです。
ベースキャンプと同じように、装備を変える設備があるためこれもコスト内であれば自由に配置可能でした。

クエストもマップから自由に受けれるので、クエストの受注場所に行って~という手間もなかったのでこれも良かったです。
ーーーーーーーーーーーーーーーー

武器「傘」が楽しい

他の武器も面白そうでしたが、他は使わなかったのでとりあえず傘のお話だけです。

全ての武器種で唯一パリィが出来る防御兼攻撃可能な武器で、発売前からこれ使ってみたい!と思ってました。

敵の攻撃を見切らないと被弾ばかりなので、かなり難しめの武器だと思いましたが、敵の攻撃を弾いた時に キィィィン! と甲高い音が鳴るのですがこれがまた気持ちいんですよ。
この音を聴くために使ってるといってもいいくらいです。
しかもパリィ出来ない攻撃がなかったのが凄かったです。

パリィに失敗した時の硬直では回避など含めて少し操作できない時間が出来るのでリスクとリターンのバランスが良かったです。

武器強化のツリー

武器の強化はツリー形式で行われます(途中で属性武器に派生したりなど)

基本的に上から下に強化していけば攻撃力等が上がって強くなるのが多いですが、強化時にその武器が持つ継承可能なスキルがあり、そのスキルを継承するために目的の場所まで派生してから...というツリーを上に行ったり下に行ったりとルートを決めながら強化出来るようになっていました。

こう聞くと自由度が高そうに思いますが、欲しいスキルは殆ど決まってるのでルートは概ね一定でした。

また、強化素材はその分どんどん使っていくと思いますが、強化したものをキャンセルし、そこに掛けた素材が返却されるというシステムが採用されてました。これはかなり熱いなと思いました(敵を倒しに行く時間をかけなくていい仕組みなのが嬉しい!!)

ーーーーーーーーーーーーーーーー

良くなかった点

全体的に楽しかったですが、良くなかった点もあります。
これはあくまで個人的に感じた点です。

ストーリー

特に期待していたわけではありませんでしたが、予想通り良くはなく...という感想です。

PC版でのプレイですがパフォーマンスが出なかった

UE5 も重いなーと感じるくらいには PC のスペックはよくはないんですが、ゲーム内で落とせる設定を全て落とし、PC(OS)で設定できる部分も多少変更してみましたが快適に!とはいきませんでした。

マルチも何度か入ってみましたがソロと違い何倍も重たかったです。
パリィが出来る武器なのに、フレームレートが極端に落ちるためタイミングが全然合わせられず、マルチは違う武器の方がいいのでは!?と思えるくらいには重かったです。

発売して一週間ほどで CPU の使用率が高くなるバグなどがあったそうでそれに対応したアップデートで修正が入ったようですが余計にひどくなりましたw

つよつよ PC の方は問題なくプレイ出来てるそうなので、要求スペックはかなり高めなのかな~と思いました。
(プレイに影響が出るレベルでしたが) PC のスペック不足ということで見なかったことにします。

敵がすぐにエリア移動する

一定の体力を削った時に敵がエリア移動するんですが、割とすぐ移動する印象がありました。そしてその移動距離が長いので追いかけるのが大変でした。

先程のベースキャンプが自由におけるという部分ですが、コストがかなり高いため余分に置けても1-2個?くらいでした。

素早く移動できる手段の一つ飛蔓(とびかずら)と呼ばれる2点間を結ぶロープウェイみたいなものがあり、これもコスト内でいくつか置けるんですがもうちょっとコストを下げて複数設置出来るようになったらな~と思いました。

あまり設置できすぎてもというのはあるので、丁度いいのかもしれませんね。

吹っ飛び後の無敵時間が短い?

地面から飛び出た攻撃を食らって吹っ飛び、そのあと着地付近の地面からもう一回攻撃を出してくる敵がいるんですが、格ゲーのコンボのように流れるように入ってくれるんでそれだけで1乙というのを何度か経験しました。

一部のからくりで回避ができるようになるまではちょっと大変でした。


全体を通して

良かった良くなかったは細かいところでまだありますが、概ねこんな感じの感想でした。

良くない部分が目立つ感じはしましたが、全体的な評価としては個人的にかなり高めです。買ってよかったと思いました。

次は WO LONG の発売が控えているのですが、体験版もとりあえずやっておかねば...

これを書いてて思ったんですが、やりたいゲームを挙げていくと
- WILD HEARTS
- WO LONG
- 零~月蝕の仮面~
- ライザ3

がやりたいゲームの一部なんですが、コーエーのゲームばっかじゃないですか!?
コーエーのゲーム、キャラが可愛いしカッコいいの多いんでついつい気になっちゃうんですよね...

分かっていたことですがゲーム始めると本当に他の作業をほっぽり出して夢中になってるので怖いところです。


久々にゲームを堪能した気がして凄い楽しかったです!

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

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

6 7 8 9 10 11 12

限定特典から探す

記事のタグから探す

月別アーカイブ

記事を検索