anatawa12 / AvatarOptimizer

AAO: Avatar Optimizer: Non Destructive Avatar Optimization Utilities
MIT License
180 stars 24 forks source link

アップロード時にエラーが発生してアップロードに失敗します。 #993

Closed mykrit closed 6 months ago

mykrit commented 6 months ago

お世話になっております。

AvatarOptimizer1.70-beta5において下記エラーが発生しビルドに失敗したのでご報告いたします。

System.ArgumentException: dependency is not child of root
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.ComponentDependencyCollector+Collector.AddPathDependency (UnityEngine.Transform dependency, UnityEngine.Transform root) [0x000e0] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\ComponentDependencyCollector.cs:186 
  at Anatawa12.AvatarOptimizer.APIInternal.AnimatorInformation.CollectDependency (UnityEngine.Animator component, Anatawa12.AvatarOptimizer.API.ComponentDependencyCollector collector) [0x00030] in .\Packages\com.anatawa12.avatar-optimizer\Editor\APIInternal\ComponentInfos.cs:61 
  at Anatawa12.AvatarOptimizer.API.ComponentInformation`1[TComponent].CollectDependencyInternal (UnityEngine.Component component, Anatawa12.AvatarOptimizer.API.ComponentDependencyCollector collector) [0x00000] in .\Packages\com.anatawa12.avatar-optimizer\API-Editor\ComponentInformation.cs:48 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.ComponentDependencyCollector.CollectAllUsages () [0x00072] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\ComponentDependencyCollector.cs:49 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.FindUnusedObjectsProcessor.Mark (Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.GCComponentInfoHolder componentInfos) [0x00000] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\FindUnusedObjectsProcessor.cs:229 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.FindUnusedObjectsProcessor.ProcessNew () [0x0000d] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\FindUnusedObjectsProcessor.cs:93 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.FindUnusedObjects.Execute (nadena.dev.ndmf.BuildContext context, Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.TraceAndOptimizeState state) [0x00012] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\FindUnusedObjectsProcessor.cs:18 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.TraceAndOptimizePass`1[T].Execute (nadena.dev.ndmf.BuildContext context) [0x00010] in .\Packages\com.anatawa12.avatar-optimizer\Internal\TraceAndOptimizeBase\TraceAndOptimizeProcessor.cs:93 
  at nadena.dev.ndmf.Pass`1[T].nadena.dev.ndmf.IPass.Execute (nadena.dev.ndmf.BuildContext context) [0x00000] in .\Packages\nadena.dev.ndmf\Editor\API\Fluent\Pass.cs:64 
  at nadena.dev.ndmf.ConcretePass.Execute (nadena.dev.ndmf.BuildContext context) [0x00000] in .\Packages\nadena.dev.ndmf\Editor\API\Solver\PluginResolver.cs:36 
  at nadena.dev.ndmf.BuildContext.RunPass (nadena.dev.ndmf.ConcretePass pass) [0x00124] in .\Packages\nadena.dev.ndmf\Editor\API\BuildContext.cs:350 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.ComponentDependencyCollector+Collector.AddPathDependency (UnityEngine.Transform dependency, UnityEngine.Transform root) [0x000e0] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\ComponentDependencyCollector.cs:186 
  at Anatawa12.AvatarOptimizer.APIInternal.AnimatorInformation.CollectDependency (UnityEngine.Animator component, Anatawa12.AvatarOptimizer.API.ComponentDependencyCollector collector) [0x00030] in .\Packages\com.anatawa12.avatar-optimizer\Editor\APIInternal\ComponentInfos.cs:61 
  at Anatawa12.AvatarOptimizer.API.ComponentInformation`1[TComponent].CollectDependencyInternal (UnityEngine.Component component, Anatawa12.AvatarOptimizer.API.ComponentDependencyCollector collector) [0x00000] in .\Packages\com.anatawa12.avatar-optimizer\API-Editor\ComponentInformation.cs:48 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.ComponentDependencyCollector.CollectAllUsages () [0x00072] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\ComponentDependencyCollector.cs:49 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.FindUnusedObjectsProcessor.Mark (Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.GCComponentInfoHolder componentInfos) [0x00000] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\FindUnusedObjectsProcessor.cs:229 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.FindUnusedObjectsProcessor.ProcessNew () [0x0000d] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\FindUnusedObjectsProcessor.cs:93 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.FindUnusedObjects.Execute (nadena.dev.ndmf.BuildContext context, Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.TraceAndOptimizeState state) [0x00012] in .\Packages\com.anatawa12.avatar-optimizer\Editor\Processors\TraceAndOptimize\FindUnusedObjectsProcessor.cs:18 
  at Anatawa12.AvatarOptimizer.Processors.TraceAndOptimizes.TraceAndOptimizePass`1[T].Execute (nadena.dev.ndmf.BuildContext context) [0x00010] in .\Packages\com.anatawa12.avatar-optimizer\Internal\TraceAndOptimizeBase\TraceAndOptimizeProcessor.cs:93 
  at nadena.dev.ndmf.Pass`1[T].nadena.dev.ndmf.IPass.Execute (nadena.dev.ndmf.BuildContext context) [0x00000] in .\Packages\nadena.dev.ndmf\Editor\API\Fluent\Pass.cs:64 
  at nadena.dev.ndmf.ConcretePass.Execute (nadena.dev.ndmf.BuildContext context) [0x00000] in .\Packages\nadena.dev.ndmf\Editor\API\Solver\PluginResolver.cs:36 
  at nadena.dev.ndmf.BuildContext.RunPass (nadena.dev.ndmf.ConcretePass pass) [0x00124] in .\Packages\nadena.dev.ndmf\Editor\API\BuildContext.cs:350 
anatawa12 commented 6 months ago

どのようなアバターで発生したか教えていただきたいです。AnimatorのHumanoidに関わる部分について教えて下さい。

mykrit commented 6 months ago

アバター「桔梗」を素にした改変アバターで、アバタールートのAnimatorには「桔梗」標準の[kikyoAvatar]をアタッチしています。

スクリーンショット 2024-04-08 233302

mykrit commented 6 months ago

すみません。追記です。

アバター直下の「Miyu_Hair_MA」にアバタールートと同様の[kikyoAvatar]が設定されたAnimatorがアタッチされていました。 それをremoveするとエラーが出なくなることが確認できました。 スクリーンショット 2024-04-08 235246

anatawa12 commented 6 months ago

そのAnimatorの子孫のボーンの親子構造をスクショで見せていただきたいです

anatawa12 commented 6 months ago

色々やったら再現しました。ありがとうございます

anatawa12 commented 6 months ago

MAによってボーンがAnimator Component外に移動された際に発生するようでした。(Animator Componentがおそらくキャッシュをしている都合)

mykrit commented 6 months ago

対応ありがとうございます。お手数おかけいたしました。