vrm-c / UniVRM

UniVRM is a gltf-based VRM format implementation for Unity. English is here https://vrm.dev/en/ . 日本語 はこちら https://vrm.dev/
https://vrm.dev/en
MIT License
2.66k stars 427 forks source link

FBXをVRMエクスポートできない #528

Closed esperecyan closed 4 years ago

esperecyan commented 4 years ago

バグについて

FBXをVRMエクスポートしようとすると、例外が発生してVRMファイルが生成されない。

再現方法

例: 動作の再現させる手順:

  1. https://3d.nicovideo.jp/works/td14712 をダウンロード
  2. FBXフォルダをUnityへインポート
  3. 「Alicia_solid_Unity.FBX」のインポート設定で、Rigからアニメーションタイプで「ヒューマノイド」を選択し、適用する
  4. Assetsウィンドウ上で「Alicia_solid_Unity.FBX」を選択し、メニューから「Export humanoid」を開く
  5. 「Title」「バージョン」「Author」を入力し、「Export」ボタンを押す
  6. 例外が表示され、VRMファイルは出力されない

期待する動作

VRMファイルが出力される

環境情報

追加の状況・背景

発生する例外

NullReferenceException: Object reference not set to an instance of an object VRM.VRMExporterWizard.OnWizardCreate () (at Library/PackageCache/com.vrmc.univrm@029d00e8b5/UniVRM/Editor/Format/VRMExporterWizard.cs:713) System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at :0) Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at :0) System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at :0) VRM.VRMExporterWizard.OnGUI () (at Library/PackageCache/com.vrmc.univrm@029d00e8b5/UniVRM/Editor/Format/VRMExporterWizard.cs:514) UnityEditor.HostView.OldOnGUI () (at :0) UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.EventDispatcher.OpenGate () (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <9c9fa79efe9e479a8cbe7a6f99f673d3>:0) UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <2500dd078a544a69b6c923861af6cd15>:0)

ousttrue commented 4 years ago

再現確認しました 👀

esperecyan commented 4 years ago

UniVRM-0.59.0で正常に出力できるようになったのを確認しました。 修正ありがとうございます。