UE4の勉強記録

UE4の勉強の記録です。個人用です。

「Unreal Engine 4.xを使用してRPGを作成する」の足りない部分を作成する 前のプロジェクトで自作した機能を追加する2

f:id:kazuhironagai77:20200809232024p:plain

<前文>

作ったゲームは売れるのか?

ここまで勉強して作成したゲームが売れなかったらどうしよう。と心配になっています。と言うか売れないような予感がします。英語の発音の区別が付くゲームはもう大体完成しているのですが、こっちは成果が凄い(30分位やるとLとRの区別がはっきりつく)のでこっちは売れそうな気がします。

ポケモンgoをやっていた時は電子データにこんなに価値があるのかと思いましたが、飽きたらどうでも良くなってしまいました。普段ゲームをしない私はゲームそのものに価値を見出せないんです。元々、3D graphicsの勉強としてUE4を勉強していたので3D graphicsから離れる気はないのですが、ゲームそのものは元々どうでも良いんです。

しかしここまで勉強した以上、商品として金銭と交換できる価値のあるものに仕上げたいです。しかし何を追加したら価値が生まれるのでしょうか?全然分かりません。MMOとかにすればいいのでしょうか?

そう言えば、AAAのゲームでもユーザーから嫌われて全然売れないゲームがありますね。ゲームを作成するのは結構な博打ですね。沢山作って売れたので元とるみたいな商法は出来ないですかね。マンガだって売れるかどうか分からないじゃないですか?沢山作成して結果売れたのが正解みたいな所があるじゃないですか。

ここでLast of ○○についての感想に対しての私見を述べようと思ったのですが、まだ自分の中でまとまっていません。ので来週書く事にします。

まだやる事は残っているので今週も勉強を始めます。

<本文>

今週も前のプロジェクトに追加した機能をch4_3に追加していきます。

1.機能の追加

1.1  ブログ(2月9日)の追加

この週のブログはこれまでのバグの直しを行っています。同じ様にやります。

1.1.1 同じ武器が何個も買える

試したら買えました。

f:id:kazuhironagai77:20200809232144p:plain

ブログでは同じ値段で売れるようにする事で解決しています。同じようにします。

出来ました。思ったより難しかったです。

以下にWeaponウィジェット内の武器を売るためのコードを示します。

f:id:kazuhironagai77:20200809232211p:plain

テストします。

まず短剣(小)と短剣(大)を購入しました。

f:id:kazuhironagai77:20200809232233p:plain

両方売ります。

f:id:kazuhironagai77:20200809232258p:plain

所持していた武器の記録が消えその代り、金貨が100になりました。

この週のブログに抱えている通り、武器を装備したままその武器を売ると、武器が無くなったにも関わらず装備したままになります。これは後で直します。

1.1.2 ワープすると購入した装備品が消えてしまう

これは消えないと思いますが試してみます。

f:id:kazuhironagai77:20200809232337p:plain

ワープしても装備品は消えません。出来ています。

1.1.3 盾なのに武器に装備されている。

試してみます。

f:id:kazuhironagai77:20200809232412p:plain

されています。直します。

f:id:kazuhironagai77:20200809232434p:plain

武器のタイプがweaponの時だけ装備出来るようにしました。この週のブログに防具の装備は後で作るとあるのでここでも同じようにします。

一応テストします。

f:id:kazuhironagai77:20200809232450p:plain

防具である盾は装備出来ません。

1.1. 武器の名称がボタンに被っている場合がある。

前に武器の名前を短くする事で解決したような気がします。その時の名前をそのまま引き継いでるはずなのではみ出したりはしないはずですが、一応確認します。

f:id:kazuhironagai77:20200809232528p:plain

一番長い名前の魔法の杖でもはみ出して表示される事はないので大丈夫そうです。

1.1. 5 Healerの状態表示がそのまま残っています。

これは完全に消してあります。

1.1.6 武器のイラストがない。

イラスト自体は追加してありますがマウスのカーソルを合わせてもイラストは表示されません。これを直しましょう。

f:id:kazuhironagai77:20200809232614p:plain

出来ました。

武器を売った時だけイメージが消えないのでそれを直します。

f:id:kazuhironagai77:20200809232639p:plain

テストします。

f:id:kazuhironagai77:20200809232656p:plain

直りました。

1.1.7 装備品の値段が分からない。

これも直します。

f:id:kazuhironagai77:20200809232756p:plain

出来ました。

組んだコードは下に示します。

f:id:kazuhironagai77:20200809232827p:plain

1.1.8 装備した時に今より何が強くなるのか不明。

この時のブログでは、どのように基礎ATK(武器を装備していない時にATK)を管理すべきかが決定していないので、云々と書かれていて直していません。

f:id:kazuhironagai77:20200809232857p:plain

装備画面での武器の表示を確認して終です。

装備画面で武器の値段を表示する必要はないですが、表示されています。

1.1.9 デザインの改善

武器の返品が可能ならデザインの変更が要らないのでは?と言う考察だけでした。

1.2 ブログ(2月16日)の追加

どんどんやって行きます。

1.2.1 ATKの値をGameCharacterクラスのATKで管理するのかFieldPlayerのSoldierbaseAtkするのか?

色々やっていますが、結局は、武器攻撃力と基礎攻撃力を足した総合的な攻撃力をGameCharacterのATKに保持させ、装備している武器名をGameCharacterのWeaponEquippedに保持させる事で結果的に基礎攻撃力も管理できると言う事です。だからThirdPersonCharacterのSoldierbaseAtkは要らないはずです。何かの計算、例えば武器を外した時やレベルが上がった時の計算を簡単にするためにThirdPersonCharacterのSoldierbaseAtkは使用されるだけです。

ここで問題にされているのは、レベルが上がった時のATKと武器を外した時のATKが正しく計算されているかどうかです。これを検討するためには武器を外す機能が必要ですがそれはまだ作成していません。

武器を外す機能は次の節で作成しているみたいなのでそっちを先にします。

1.2.2 素手を武具にしています。装備を外すボタンを作成して素手を武具から外します。

以下に示したように作成しました。

f:id:kazuhironagai77:20200809233008p:plain

f:id:kazuhironagai77:20200809233021p:plain

テストします。

f:id:kazuhironagai77:20200809233048p:plain

外すを押しました。

f:id:kazuhironagai77:20200809233106p:plain

攻撃値が下がり武器の表示が消えました。

この後色々テストしましたが、問題は出ませんでしたので前の問題に戻ります。

1.2.3 ATKの値もう一度

よくよく考えたら武器を外した時は前節で作成していました。レベルが上がった時のATKの計算を直します。色々考えましたがSoldierbaseAtkは計算しやすくするためにはやっぱり絶対必要です。ThirdPersonCharacterに設置するのがベストかどうかが不明ですがもうそこに作成しちゃったのでそれを利用する事にします。

結局、大まかなやり方は前回と同じになりました。以下に簡単に説明します。

UE4C++のRPGGameModeBaseに以下の関数を作成します。

f:id:kazuhironagai77:20200809233143p:plain

この関数はBlueprintImplementableEventを指定しているので実装はBP内で行います。

更にこの関数を実行する時は、

f:id:kazuhironagai77:20200809233207p:plain

キャラのレベルが上がった時です。

BP内での実装は、以下の通りです。

f:id:kazuhironagai77:20200809233243p:plain

テストします。

f:id:kazuhironagai77:20200809233300p:plain

短剣(小)を装備した状態で敵を倒しレベルが上がりました。レベルが上がったので攻撃値が1上がり61になっています。

武器を外します。

f:id:kazuhironagai77:20200809233318p:plain

武器を外しても攻撃値は1上がったままでいます。

1.2.4 装備している武具を売る事が出来ます。

実装方法を読んだら結構上手い方法でやっていました。正直感心しました。同じ方法でやります。

f:id:kazuhironagai77:20200809233354p:plain

テストします。

f:id:kazuhironagai77:20200809233412p:plain

出来ていました。

1.2.5 防具の装備

武器の装備をもう一回やり直しとか書いています。知ってたら武器の装備を作成した時に一緒に防具の装備も作成していました。

はあ。

やるしかないですね。

出来ました。結果だけ下に示します。

f:id:kazuhironagai77:20200809233450p:plain

防具を装備します。

f:id:kazuhironagai77:20200809233506p:plain

木の盾(小)を装備すると防御値が10上がり50に成りました。

今度は木の盾(大)を装備します。

f:id:kazuhironagai77:20200809233526p:plain

防御値が20上がり60に成りました。

「防具を外す」を押します。

f:id:kazuhironagai77:20200809233559p:plain

素の防御値である40に戻りました。

今度はレベルが上がった場合を調べます。

f:id:kazuhironagai77:20200809233618p:plain

木の盾(小)から木の盾(大)に交換します。

f:id:kazuhironagai77:20200809233644p:plain

レベルが上がった時に41となった基礎防御値は、防具を交換しても41のままのようです。

今度は防具を外してみます。

f:id:kazuhironagai77:20200809233704p:plain

防具を外した場合も、基礎防御値は41のままです。

今度は木の盾(小)を装備したままワープしてみます。

f:id:kazuhironagai77:20200809233729p:plain

ワープをしても基礎防御値は41のままです。大丈夫みたいですね。

今度は防具を売ってみます。

f:id:kazuhironagai77:20200809233751p:plain

装備している防具も赤く表示され売る事が出来ません。出来てるみたいです。

1.2.6 装備した時に今より何が強くなるのか不明

f:id:kazuhironagai77:20200809233825p:plain

これを追加すれば良いみたいです。

f:id:kazuhironagai77:20200809233842p:plain

出来ました。

1.2.7 デザインの改善

ポーズ画面を以下のようにしました。

f:id:kazuhironagai77:20200809233934p:plain

ボタンを選択した場合は、以下の様にボタンの色が変わります。

f:id:kazuhironagai77:20200809233959p:plain

金貨の量が増えた場合、はみ出してしまうかもしれません。後で直します。

道具屋でアイテムを買う場合のUIです。

f:id:kazuhironagai77:20200809234019p:plain

アイテムの効果や値段が表示されるべきですね。現在どんな道具を所持しているのかも不明です。キャラの現在の状態も表示されるべきです。

残りのUIも同じ様な図柄に変更しました。

2.まとめと感想

今週はここまです。時間が無くて結構大変でした。