bdunderscore / modular-avatar

Other
514 stars 66 forks source link

MA 1.10.0-rc.4 で、アバターアップロード時にVRCFuryのビルドが失敗する (AAO/VRCFury併用) #1118

Closed kleusbalut closed 1 month ago

kleusbalut commented 1 month ago

環境:

PlayModeでは問題ないのですが、VRCSDKでのアバタービルド/アップロード時に、 VRCFuryの"armaturelinkservice.apply on avatar root"の部分でエラーが発生し、Build Failedになります。

MA 1.10.0-rc.3にダウングレードしたところ発生しなくなりました。

anatawa12 commented 1 month ago

VRCFuryの"armaturelinkservice.apply on avatar root"の部分でエラーが発生

エラーの内容を貼ってください

kleusbalut commented 1 month ago

VRCFuryのダイアログが出ている際に下記のWarningがでて、Build Failedになります。

Exception: Head bone could not be found because avatar's rig is not set to humanoid
VF.Feature.ArmatureLinkBuilder.GetLinks (VF.Model.Feature.ArmatureLink model, VF.Model.Feature.ArmatureLink+ArmatureLinkMode linkMode, VF.Builder.VFGameObject avatarObject) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Feature/ArmatureLinkBuilder.cs:472)
VF.Feature.ArmatureLinkBuilder.Apply () (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Feature/ArmatureLinkBuilder.cs:37)
System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <27124aa0e30a41659b903b822b959bc7>:0)
Rethrow as ExceptionWithCause: Failed to build VRCFury component: ArmatureLinkBuilder.Apply on SPS/------
Head bone could not be found because avatar's rig is not set to humanoid
VF.Builder.VRCFuryBuilder.ApplyFuryConfigs (VF.Builder.VFGameObject avatarObject, VF.VRCFProgressWindow progress) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:268)
VF.Builder.VRCFuryBuilder.Run (VF.Builder.VFGameObject avatarObject) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:87)
VF.Builder.VRCFuryBuilder+<>c__DisplayClass1_0.<SafeRun>b__1 () (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:37)
VF.Builder.VRCFuryAssetDatabase.WithAssetEditing (System.Action go) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryAssetDatabase.cs:96)
VF.Builder.VRCFuryBuilder+<>c__DisplayClass1_0.<SafeRun>b__0 () (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:34)
VF.Builder.Exceptions.VRCFExceptionUtils.ErrorDialogBoundary (System.Action go) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/Exceptions/VRCFExceptionUtils.cs:30)
UnityEngine.Debug:LogException(Exception)
VF.Builder.Exceptions.VRCFExceptionUtils:ErrorDialogBoundary(Action) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/Exceptions/VRCFExceptionUtils.cs:32)
VF.Builder.VRCFuryBuilder:SafeRun(VFGameObject) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:33)
VF.Hooks.VrcPreuploadHook:OnPreprocessAvatar(GameObject) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Hooks/VrcPreuploadHook.cs:25)
VRC.SDKBase.Editor.BuildPipeline.VRCBuildPipelineCallbacks:OnPreprocessAvatar(GameObject)
VRC.SDK3.Builder.VRCAvatarBuilder:ExportCurrentAvatarResource(Object, Boolean, Boolean, String&, Action`1, Action`1)
VRC.SDK3.Builder.VRCAvatarBuilder:ExportAvatarBlueprint(GameObject)
VRC.SDK3A.Editor.<Build>d__106:MoveNext() (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:2193)
UnityEngine.UnitySynchronizationContext:ExecuteTasks()

ダイアログはこちらです image image

anatawa12 commented 1 month ago

ありがとうございます #1093 が悪さしていそう...

bdunderscore commented 1 month ago

適当にSPSをAnonちゃんに置いただけでは再現しませんので、もう少し詳しくお願いします。

bdunderscore commented 1 month ago

VRCFuryは最新が1.1065.0で、いろいろと実装が変わっているようですが、最新版でも発生しますか?

kleusbalut commented 1 month ago

試しに VRCFury 1.1065.0、MA 1.10.0-rc.4 にバージョンアップしてみましたが、やはり同じような部分でエラーが出ますね。

MAのバージョンを1.10.0-rc.3 にダウングレードすると当該部分はエラーにならずにビルド成功します。

image

Exception: Head bone could not be found because avatar's rig is not set to humanoid
VF.Service.ArmatureLinkService.GetLinks (VF.Model.Feature.ArmatureLink model, VF.Model.Feature.ArmatureLink+ArmatureLinkMode linkMode, VF.Builder.VFGameObject avatarObject) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Service/ArmatureLinkService.cs:583)
VF.Service.ArmatureLinkService.ApplyOne (VF.Model.Feature.ArmatureLink model, VF.Builder.VFGameObject avatarObject, System.Boolean saveDebugInfo, System.Collections.Generic.ISet`1[T] avatarHumanoidBones, VF.Service.FindAnimatedTransformsService+AnimatedTransforms anim, System.Collections.Generic.ISet`1[T] doNotReparent, VF.Service.ObjectMoveService mover, System.Collections.Generic.ISet`1[T] pruneCheck, VF.Utils.VFMultimapList`2[A,B] animLink) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Service/ArmatureLinkService.cs:133)
VF.Service.ArmatureLinkService.Apply () (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Service/ArmatureLinkService.cs:53)
Rethrow as ExceptionWithCause: Failed to build ArmatureLink from SPS/-------
Head bone could not be found because avatar's rig is not set to humanoid
VF.Service.ArmatureLinkService.Apply () (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Service/ArmatureLinkService.cs:66)
System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <27124aa0e30a41659b903b822b959bc7>:0)
Rethrow as ExceptionWithCause: Failed to build VRCFury component: ArmatureLinkService.Apply on Avatar Root
Failed to build ArmatureLink from SPS/--------
Head bone could not be found because avatar's rig is not set to humanoid
VF.Builder.VRCFuryBuilder.ApplyFuryConfigs (VF.Builder.VFGameObject avatarObject, VF.VRCFProgressWindow progress) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:259)
VF.Builder.VRCFuryBuilder.Run (VF.Builder.VFGameObject avatarObject) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:91)
VF.Builder.VRCFuryBuilder+<>c__DisplayClass1_0.<SafeRun>b__1 () (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:39)
VF.Builder.VRCFuryAssetDatabase.WithAssetEditing (System.Action go) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryAssetDatabase.cs:115)
VF.Builder.VRCFuryBuilder+<>c__DisplayClass1_0.<SafeRun>b__0 () (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:36)
VF.Builder.Exceptions.VRCFExceptionUtils.ErrorDialogBoundary (System.Action go) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/Exceptions/VRCFExceptionUtils.cs:35)
UnityEngine.Debug:LogException(Exception)
VF.Builder.Exceptions.VRCFExceptionUtils:DisplayErrorPopup(Exception) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/Exceptions/VRCFExceptionUtils.cs:45)
VF.Builder.Exceptions.VRCFExceptionUtils:ErrorDialogBoundary(Action) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/Exceptions/VRCFExceptionUtils.cs:37)
VF.Builder.VRCFuryBuilder:SafeRun(VFGameObject) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Builder/VRCFuryBuilder.cs:35)
VF.Hooks.VrcPreuploadHook:OnPreprocessAvatar(GameObject) (at ./Packages/com.vrcfury.vrcfury/Editor/VF/Hooks/VrcPreuploadHook.cs:25)
VRC.SDKBase.Editor.BuildPipeline.VRCBuildPipelineCallbacks:OnPreprocessAvatar(GameObject)
VRC.SDK3.Builder.VRCAvatarBuilder:ExportCurrentAvatarResource(Object, Boolean, Boolean, String&, Action`1, Action`1)
VRC.SDK3.Builder.VRCAvatarBuilder:ExportAndTestAvatarBlueprint(GameObject)
VRC.SDK3A.Editor.<Build>d__106:MoveNext() (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:2182)
UnityEngine.UnitySynchronizationContext:ExecuteTasks()

VRCSDK側のエラー文も載せておきます

The VRCSDK build was aborted because the VRCSDKPreprocessAvatarCallback 'VrcPreuploadHook' reported a failure.
UnityEngine.Debug:LogError (object)
VRC.SDKBase.Editor.BuildPipeline.VRCBuildPipelineCallbacks:OnPreprocessAvatar (UnityEngine.GameObject)
VRC.SDK3.Builder.VRCAvatarBuilder:ExportCurrentAvatarResource (UnityEngine.Object,bool,bool,string&,System.Action`1<string>,System.Action`1<object>)
VRC.SDK3.Builder.VRCAvatarBuilder:ExportAndTestAvatarBlueprint (UnityEngine.GameObject)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/<Build>d__106:MoveNext () (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:2182)
UnityEngine.UnitySynchronizationContext:ExecuteTasks ()
[Always] Failed to build the Avatar, check logs for more details
UnityEngine.Debug:LogError (object,UnityEngine.Object)
VRC.Core.Logger:LogError (string,VRC.Core.DebugLevel,UnityEngine.Object)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/<BuildError>d__110:MoveNext () (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:2269)
System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Start<VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/<BuildError>d__110> (VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/<BuildError>d__110&)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder:BuildError (object,string)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/<HandleBuildError>d__108:MoveNext () (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:2238)
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Exception>:Start<VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/<HandleBuildError>d__108> (VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/<HandleBuildError>d__108&)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder:HandleBuildError (System.Exception)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/<Build>d__106:MoveNext () (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:2213)
UnityEngine.UnitySynchronizationContext:ExecuteTasks ()
BuilderException: Failed to build the Avatar, check logs for more details
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder.Build (UnityEngine.GameObject target, System.Boolean testAvatar) (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:2213)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder.BuildAndTest (UnityEngine.GameObject target) (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:2549)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder+<>c__DisplayClass104_0.<CreateBuildGUI>b__3 () (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:1928)
System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) (at <27124aa0e30a41659b903b822b959bc7>:0)
UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () (at <cb81df0c49c643b1a04d9fc6ccca2433>:0)
UnityEngine.UnitySynchronizationContext.Exec () (at <cb81df0c49c643b1a04d9fc6ccca2433>:0)
UnityEngine.UnitySynchronizationContext.ExecuteTasks () (at <cb81df0c49c643b1a04d9fc6ccca2433>:0)
kleusbalut commented 1 month ago

本件、先日アップデートされた下記の環境にて問題が解決されたことを確認しましたので、クローズします。

なお、こちらの方でも素の桔梗ちゃん1.04とVRCFuryなどを組み合わせて問題の再現を試みましたが、再現できませんでした。 ただ、現象が発生していたプロジェクトでMA 1.10.0-rc.4にダウングレードすると問題の再発を確認できました。