[UEFN][Verse]v26.20 Verse API更新の雑感
9月26日にv26.20が更新されました。VerseのAPI更新をざっと確認しまして、以下変更箇所についての雑感です(網羅出来てないかもしれないのでご注意ください)。
Persistence Deviceは追加されていない
APIとは関係ないんですが影響範囲が大きい話なので。
アップデート時に公式ドキュメントにPersistence Device(永続化デバイス)のページが増えたことで「ついに状態のセーブが可能になる!」と海外で騒ぎになったのですが、このページは今は削除されています。
実は、発表されているUEFNロードマップがついこの前の9月22日更新されまして、永続化処理の実装はQ3からQ4に延期されたばかりなのでした。恐らく、ドキュメントの取り下げを忘れていたのでしょう。
というわけで状態のセーブが出来るようになるのはまだ先になります。
MoveTo()/TereportTo()が全てのデバイスで使用可能になった。
今までデバイス毎にあったりなかったりしたMoveTo()/TereportTo()メソッドがcreative_objectクラスに追加されました。
全てのデバイスクラスはcreative_device_baseクラスを継承していて、creative_device_baseクラスはcreative_objectを継承しているので、これにより全てのデバイスがMoveTo()/TereportTo()を持つようになります[1]。
この変更に伴い、これまでデバイス毎に生やしていたAPIはカットになりました。デバイスによってはオーバーロードで独自の実装にしている物もあるようです。
デイシークエンスデバイスのように動かす意味が無いデバイスもあるので、この対応が適切なのかよくわかりませんが、まあ、管理が煩雑すぎるので辞めたのかな?
automated_turret_device/chair_device追加
automated_turret_device(自動タレットデバイス)とchair_device(椅子デバイス)が追加されていました。
自動タレットデバイスについては公式に告知が出てるんですが、椅子デバイス(要するに座れる椅子)の方は告知されていないので、試してみないと使えるのかどうか分からないですね。
switch_deviceにメソッドが追加
スイッチデバイスにメソッドが沢山追加されました。以下列挙しておきます。
SetState<public>(Agent:agent, State:logic):void = external {}
SetState<public>(State:logic):void = external {}
SetStateResetTime<public>(Time:float):void = external {}
SetStateResetTime<public>(Agent:agent, Time:float):void = external {}
GetStateResetTime<public>()<transacts>:float = external {}
GetStateResetTime<public>(Agent:agent)<transacts>:float = external {}
GetCurrentResetTime<public>():float = external {}
GetCurrentResetTime<public>(Agent:agent):float = external {}
logic型でスイッチの状態を設定できるSetState()が追加されました。agent不要版のAPIもあるのが助かります。
逆に言えば、agent必要版しか無いTurnOff()/TurnOn()/ToggleState()既存メソッドはAPIに直交性が無いという事になりますが……。これらのメソッドは今後は非推奨にした方がいいかも(あるいはいずれ無くなるかも)。
お知らせ
verse言語とUEFNの記事を他にも書いているので御覧下さい。
最後まで読んで頂きありがとうございました。この記事がお役に立てたようであれば、是非LIKEとフォローをお願いします(今後の執筆のモチベーションに繋がります)。
#Verse #UEFN #Fortnite #Verselang #UnrealEngine
宣伝
「Unityシェーダープログラミングの教科書」シリーズ1~5をBOOTHで頒布中です。
-
creative_propもcreative_objectから派生している ↩︎
Discussion