(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

「Error: VerseRuntimeErrors: Unknown error in GetTransform()」というエラーが出て全てのVerseデバイスが動かなくなる場合の原因と対処法【UEFN】【Verse】


このエントリーをはてなブックマークに追加



この記事でのバージョン
Unreal Editor for Fortnite(UEFN) 26.30


はじめに

今回はタイトル通り、以下のようなエラーが出た際の原因と対処法です!

LogVerse: Error: VerseRuntimeErrors: Unknown error in GetTransform()



原因と対処法

原因はエラー文にもある通りGetTransform()というメソッドで、

Transformが存在しないのにGetTransformを実行すると上記のようなエラーが出ます。

また、直接GetTransformを実行していなくても、

MoveTo等の内部でGetTransformを使用してる場合も同様のエラーが出る事があります。

#エディタ上で設定する
@editable
Prop : creative_prop  := creative_prop{}

OnBegin<override>()<suspends>:void=
  #移動処理
  Prop.MoveTo(vector3{ X:=0.0, Y:=0.0, Z:=0.0}, rotation{}, 1.0)


そして厄介なのが、このエラーが出るとエラーが出たものだけでなく、

現状は全てのVerseデバイスが停止してしまいます。


対処法としては以下のようにGetTransformやそれを内部的に使ってるメソッド実行前に

有効かどうかのチェック処理を挟むという方法があります。

#エディタ上で設定する
@editable
Prop : creative_prop  := creative_prop{}

OnBegin<override>()<suspends>:void=
  #移動処理
  if(Prop.IsValid[], Transform := Prop.GetTransform()): #creative_propが有効か、GetTransform出来るかのチェック
    Prop.MoveTo(vector3{ X:=0.0, Y:=0.0, Z:=0.0}, rotation{}, 1.0)
  else:
    Print("移動できませんでした")


自分の場合はこれでエラーは出なくなりましたが、以下のページをみると

場合によってはこれでもダメなパターン(対処不能なパターン)もあるようです。