この記事でのバージョン
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("移動できませんでした")
自分の場合はこれでエラーは出なくなりましたが、以下のページをみると
場合によってはこれでもダメなパターン(対処不能なパターン)もあるようです。