🦔

[UEFN][Verse]v26.20 Verse API更新の雑感

2023/09/27に公開

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の記事を他にも書いているので御覧下さい。
https://zenn.dev/t_tutiya

最後まで読んで頂きありがとうございました。この記事がお役に立てたようであれば、是非LIKEとフォローをお願いします(今後の執筆のモチベーションに繋がります)。

#Verse #UEFN #Fortnite #Verselang #UnrealEngine

宣伝

「Unityシェーダープログラミングの教科書」シリーズ1~5をBOOTHで頒布中です。
https://s-games.booth.pm/

脚注
  1. creative_propもcreative_objectから派生している ↩︎

Discussion