diff --git a/Assets/VRM/UniVRM/Editor/Format/VRMExporterWizard.cs b/Assets/VRM/UniVRM/Editor/Format/VRMExporterWizard.cs
index b735d5b4a..987c5e749 100644
--- a/Assets/VRM/UniVRM/Editor/Format/VRMExporterWizard.cs
+++ b/Assets/VRM/UniVRM/Editor/Format/VRMExporterWizard.cs
@@ -139,6 +139,20 @@ namespace VRM
return Vector3.Cross(lr, Vector3.up);
}
+ static bool EnableRenderer(Renderer renderer)
+ {
+ if (renderer.transform.Ancestor().Any(x => !x.gameObject.activeSelf))
+ {
+ // 自分か祖先に !activeSelf がいる
+ return false;
+ }
+ if (!renderer.enabled)
+ {
+ return false;
+ }
+ return true;
+ }
+
///
/// エクスポート可能か検証する
///
@@ -167,7 +181,7 @@ namespace VRM
}
var renderers = ExportRoot.GetComponentsInChildren();
- if (renderers.All(x => !x.gameObject.activeInHierarchy))
+ if (renderers.All(x => !EnableRenderer(x)))
{
yield return Validation.Error(Msg.NO_ACTIVE_MESH);
}
@@ -384,13 +398,13 @@ namespace VRM
Validation.Error(Msg.ROOT_WITHOUT_ROTATION_AND_SCALING_CHANGED).DrawGUI();
return;
}
- if (!root.scene.IsValid())
- {
- // Prefab でシーンに出していないものを判定したい
- // FIXME: もっと適切な判定があればそれに
- Validation.Error(Msg.PREFAB_CANNOT_EXPORT).DrawGUI();
- return;
- }
+ // if (!root.scene.IsValid())
+ // {
+ // // Prefab でシーンに出していないものを判定したい
+ // // FIXME: もっと適切な判定があればそれに
+ // Validation.Error(Msg.PREFAB_CANNOT_EXPORT).DrawGUI();
+ // return;
+ // }
if (HasRotationOrScale(ExportRoot))
{
if (m_settings.PoseFreeze)