takomk2
(takomk2)
1
UE5.4の質問です
メニュー画面でのキャラクタ選択を実装するため、以下の様な処理を作成しました
・GameInstanceに、選択対象のキャラクタすべてを格納した配列と、現在選択中のキャラクタクラスを格納した変数を作成
・ウィジェットから、選択対象クラスを格納した配列を呼び出し、配列の各要素に対応するボタンの子ウィジェットを作成してScrollBoxに格納
→ボタンが押されると、ボタン側のBPからGameInstance側のキャラクタクラス変数を切り替え
これによって、キャラクタの切り替え動作自体は実装することができたのですが、
追加で、選択中キャラクタクラスの情報をリアルタイムで表示するように機能追加をしたく
→キャラクタの名称、性能、説明文を表示する
→画面右側の展示用アクタに、選択されたキャラクタのメッシュ情報を反映する
等々
特に性能情報などは、メンテナンスの手間を考えると、実際のキャラクタクラスの内容と連動させておきたいと考えています
現在試した方法として、対象のキャラクタクラスをスポーンして必要な変数情報を取得→即Destroy、という方法をやってみたのですが
プレイヤーキャラクタをスポーンすることによってカメラの表示ががそちらに持って行かれてしまい、うまくいきませんでした
現状のアプローチでうまくいく方法、あるいはもっと良い方法がありましたらご教授いただきたいです
プレイヤーキャラクタをスポーンすることによってカメラの表示ががそちらに持って行かれてしまい
AutoPossessの設定が入っているのでしょうか?
デフォルトではCharacter(Pawn)をSpawnしたからといって自動的にそちらが使われることはありません
個人的には、操作キャラクターの切り替えがあるのであれば、AutoPossessPlayerの設定はOFFにしておくべきだと思います
クラスに設定されているデフォルト値を取りたいのであれば、Get Class Defaults
ノードを使用すればよいです
デフォルト値を取るだけなら、Spawnする必要はありません
Meshの情報も、Componentの設定値を直接拾うのでなければ(Actorの変数を介するのであれば)こちらから取れるでしょう
ただ、プレビュー用のMeshを出したいのであれば、いっそのことSpawnしてしまうのもありかと思います
takomk2
(takomk2)
3
T_Sumisaki様
迅速なご回答ありがとうございます
ご指摘の通り、Player側のAutoPossesが設定されていましたので、そちらをDisabledにしたところカメラを取られることなくスポーンできました
また、ほとんどの変数についてはGetClassDefaultで対応できそうです
Meshについてはコンポーネントの設定値を持ってこようとしていたのでどちらで対応するか要検討ですが、どちらのパターンでも頂いた情報で対応できそうです
ありがとうございました
system
(system)
Closed
4
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.