凹みTips

凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

uLipSync が Unity 6 で動くかどうか調査してみた

はじめに

先日、Unity 6 が公開されました。

unity.com

unity.com

最近はあまり時間が取れず新機能は追えてないないですが、ひとまず手持ちのライブラリを Unity 6 でテストしてみようと思い、uLipSync で試してみることにしました。作業メモとなります。

パッケージエラー解決

playablegraph visualizer

アップグレードしたらまずは以下のエラー:

com.unity.playablegraph-visualizer は Timeline 対応のときにデバッグ用に入れたもので、皆さんのパッケージでは含まれておりません。更新も長らくないのでサポート外となったのかもですね。

github.com

Deprecated packages

Deprecated パッケージのエラーが出ます。やっぱりメジャーバージョンが上がると色々ありそうですね。

Visual Studio Code のパッケージは Deprecated になって Visual Studio パッケージへと統合されていたのですね。最近は Rider を使っていたので把握できていませんでした。。

VRM 関連は git のエラーになっていました...。もしかすると再起動した直後だったので別の何らかの更新とかち合ってるかもしれませんが...、git のダウンロードを求められたのでこちらは進めます。

これで無事 VRM 系も入り、コンパイルエラーもなくなりました。

ランタイムエラー解決

しかし実行すると以下のような Burst 関連のエラーが出ます。

IndexOutOfRangeException: Index was outside the bounds of the array.
Burst.Compiler.IL.Jit.JitCompilerService.<ResetOnDomainReload>g__GetFunctionPointer|59_0 (System.Int32 argIndex, Burst.Compiler.IL.Jit.JitCompilerService+<>c__DisplayClass59_0& ) (at <69b504cf34c54d688310e60f1ce29d2e>:0)
Burst.Compiler.IL.Jit.JitCompilerService.ResetOnDomainReload (System.String args) (at <69b504cf34c54d688310e60f1ce29d2e>:0)
Burst.Compiler.IL.Jit.JitCompilerService.ProcessCommand (System.String commandName, System.String args) (at <69b504cf34c54d688310e60f1ce29d2e>:0)
Burst.Compiler.IL.Jit.JitCompilerService.CompileInternal (System.String fullMethodName, System.String assemblyPaths, System.IntPtr userdata, Unity.Burst.NativeDumpFlags dumpFlags, System.IntPtr compilerCallbackPointer, System.IntPtr logCallBack, System.String compilerFlags) (at <69b504cf34c54d688310e60f1ce29d2e>:0)
Unity.Burst.LowLevel.BurstCompilerService:GetDisassembly_Injected(MethodInfo, ManagedSpanWrapper&, ManagedSpanWrapper&)
Unity.Burst.LowLevel.BurstCompilerService:GetDisassembly(MethodInfo, String)
Unity.Burst.BurstCompiler:SendCommandToCompiler(String, String)
Unity.Burst.BurstCompiler:DomainReload()
Unity.Burst.Editor.BurstLoader:.cctor()
UnityEditor.EditorAssemblies:ProcessInitializeOnLoadAttributes(Type[])

どうもコードと言うよりは Burst の JIT 周りっぽいので Burst のバージョンを上げてみます(1.6.6 -> 1.8.18)。

これで動くようになりました!

おわりに

動くようになったものの、現状 Unity 6 ユーザがどれくらいいるのか...、果たしてパッケージをこれらのバージョンにすべきかどうかはもう少し検討したほうが良さそうです。