public PMDLoaderWindow() { // デフォルトコンフィグ var config = MMD.Config.LoadAndCreate(); shader_type = config.pmd_config.shader_type; rigidFlag = config.pmd_config.rigidFlag; use_mecanim = config.pmd_config.use_mecanim; use_ik = config.pmd_config.use_ik; is_pmx_base_import = config.pmd_config.is_pmx_base_import; }
/// <summary> /// プレファブを作成する /// </summary> /// <param name='shader_type'>シェーダーの種類</param> /// <param name='use_rigidbody'>剛体を使用するか</param> /// <param name='animation_type'>アニメーションタイプ</param> /// <param name='use_ik'>IKを使用するか</param> /// <param name='scale'>スケール</param> /// <param name='is_pmx_base_import'>PMX Baseでインポートするか</param> public void CreatePrefab(PMDConverter.ShaderType shader_type, bool use_rigidbody, PMXConverter.AnimationType animation_type, bool use_ik, float scale, bool is_pmx_base_import) { GameObject game_object; string prefab_path; if (is_pmx_base_import) { //PMX Baseでインポートする //PMXファイルのインポート PMX.PMXFormat pmx_format = null; try { //PMX読み込みを試みる pmx_format = PMXLoaderScript.Import(file_path_); } catch (System.FormatException) { //PMXとして読み込めなかったら //PMDとして読み込む PMD.PMDFormat pmd_format = PMDLoaderScript.Import(file_path_); pmx_format = PMXLoaderScript.PMD2PMX(pmd_format); } header_ = pmx_format.header; //ゲームオブジェクトの作成 game_object = PMXConverter.CreateGameObject(pmx_format, use_rigidbody, animation_type, use_ik, scale); // プレファブパスの設定 prefab_path = pmx_format.meta_header.folder + "/" + pmx_format.meta_header.name + ".prefab"; } else { //PMXエクスポーターを使用しない //PMDファイルのインポート PMD.PMDFormat pmd_format = null; try { //PMX読み込みを試みる PMX.PMXFormat pmx_format = PMXLoaderScript.Import(file_path_); pmd_format = PMXLoaderScript.PMX2PMD(pmx_format); } catch (System.FormatException) { //PMXとして読み込めなかったら //PMDとして読み込む pmd_format = PMDLoaderScript.Import(file_path_); } header_ = PMXLoaderScript.PMD2PMX(pmd_format.head); //ゲームオブジェクトの作成 bool use_mecanim = PMXConverter.AnimationType.LegacyAnimation == animation_type; game_object = PMDConverter.CreateGameObject(pmd_format, shader_type, use_rigidbody, use_mecanim, use_ik, scale); // プレファブパスの設定 prefab_path = pmd_format.folder + "/" + pmd_format.name + ".prefab"; } // プレファブ化 PrefabUtility.CreatePrefab(prefab_path, game_object, ReplacePrefabOptions.ConnectToPrefab); // アセットリストの更新 AssetDatabase.Refresh(); }
void OnGUI() { pmdFile = EditorGUILayout.ObjectField("PMD File", pmdFile, typeof(Object)); // シェーダの種類 shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type); // 剛体を入れるかどうか rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); // Mecanimを使うかどうか #if UNITY_4_2 use_mecanim = EditorGUILayout.Toggle("Use Mecanim", use_mecanim); #else //UNITY_4_2 bool old_gui_enabled = GUI.enabled; GUI.enabled = false; use_mecanim = EditorGUILayout.Toggle("Use Mecanim", false); GUI.enabled = old_gui_enabled; #endif //UNITY_4_2 // IKを使うかどうか use_ik = EditorGUILayout.Toggle("Use IK", use_ik); // スケール scale = EditorGUILayout.Slider("Scale", scale, 0.001f, 1.0f); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("Original", EditorStyles.miniButtonLeft)) { scale = 0.085f; } if (GUILayout.Button("1.0", EditorStyles.miniButtonRight)) { scale = 1.0f; } } EditorGUILayout.EndHorizontal(); // PMX Baseでインポートするかどうか is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); if (pmdFile != null) { if (GUILayout.Button("Convert")) { LoadModel(); pmdFile = null; // 読み終わったので空にする } } else { EditorGUILayout.LabelField("Missing", "Select PMD File"); } }
public PMDLoaderWindow() { // 默认设置 var config = MMD.Config.LoadAndCreate(); shader_type = config.pmd_config.shader_type; Debug.Log("test"); rigidFlag = config.pmd_config.rigidFlag; use_mecanim = config.pmd_config.use_mecanim; use_ik = config.pmd_config.use_ik; is_pmx_base_import = config.pmd_config.is_pmx_base_import; }
public override void OnGUI() { base.OnGUI(() => { shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type); rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); use_mecanim = false; use_ik = EditorGUILayout.Toggle("Use IK", use_ik); is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); } ); }
void OnGUI() { pmdFile = EditorGUILayout.ObjectField("PMD File", pmdFile, typeof(Object)); // Shader的种类 shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type); // 是否加入刚体 rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); // 是否使用Mecanim bool old_gui_enabled = GUI.enabled; GUI.enabled = false; use_mecanim = EditorGUILayout.Toggle("Use Mecanim", false); GUI.enabled = old_gui_enabled; // 是否使用IK use_ik = EditorGUILayout.Toggle("Use IK", use_ik); // 缩放 scale = EditorGUILayout.Slider("Scale", scale, 0.001f, 1.0f); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("0.085", EditorStyles.miniButtonLeft)) { scale = 0.085f; } if (GUILayout.Button("1.0", EditorStyles.miniButtonRight)) { scale = 1.0f; } } EditorGUILayout.EndHorizontal(); // 是否使用PMX Base导入 is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); if (pmdFile != null) { if (GUILayout.Button("Convert")) { LoadModel(); pmdFile = null; // 读完清空 } } else { EditorGUILayout.LabelField("Missing", "Select PMD File"); } }
void OnGUI() { pmdFile = EditorGUILayout.ObjectField("PMD File" , pmdFile, typeof(Object)); // シェーダの種類 shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type); // 剛体を入れるかどうか rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); // Mecanimを使うかどうか #if UNITY_4_2 use_mecanim = EditorGUILayout.Toggle("Use Mecanim", use_mecanim); #else //UNITY_4_2 bool old_gui_enabled = GUI.enabled; GUI.enabled = false; use_mecanim = EditorGUILayout.Toggle("Use Mecanim", false); GUI.enabled = old_gui_enabled; #endif //UNITY_4_2 // IKを使うかどうか use_ik = EditorGUILayout.Toggle("Use IK", use_ik); // スケール scale = EditorGUILayout.Slider("Scale", scale, 0.001f, 1.0f); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("Original", EditorStyles.miniButtonLeft)) { scale = 0.085f; } if (GUILayout.Button("1.0", EditorStyles.miniButtonRight)) { scale = 1.0f; } } EditorGUILayout.EndHorizontal(); // PMX Baseでインポートするかどうか is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); if (pmdFile != null) { if (GUILayout.Button("Convert")) { LoadModel(); pmdFile = null; // 読み終わったので空にする } } else { EditorGUILayout.LabelField("Missing", "Select PMD File"); } }
void OnGUI() { pmdFile = EditorGUILayout.ObjectField("PMD File" , pmdFile, typeof(Object)); // Shader的种类 shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type); // 是否加入刚体 rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); // 是否使用Mecanim bool old_gui_enabled = GUI.enabled; GUI.enabled = false; use_mecanim = EditorGUILayout.Toggle("Use Mecanim", false); GUI.enabled = old_gui_enabled; // 是否使用IK use_ik = EditorGUILayout.Toggle("Use IK", use_ik); // 缩放 scale = EditorGUILayout.Slider("Scale", scale, 0.001f, 1.0f); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("0.085", EditorStyles.miniButtonLeft)) { scale = 0.085f; } if (GUILayout.Button("1.0", EditorStyles.miniButtonRight)) { scale = 1.0f; } } EditorGUILayout.EndHorizontal(); // 是否使用PMX Base导入 is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); if (pmdFile != null) { if (GUILayout.Button("Convert")) { LoadModel(); pmdFile = null; // 读完清空 } } else { EditorGUILayout.LabelField("Missing", "Select PMD File"); } }
/// <summary> /// pmd_header 默认设置的设定 /// </summary> private void setup() { // 默认设置 var config = MMD.Config.LoadAndCreate(); shader_type = config.pmd_config.shader_type; rigidFlag = config.pmd_config.rigidFlag; use_mecanim = config.pmd_config.use_mecanim; use_ik = config.pmd_config.use_ik; scale = config.pmd_config.scale; is_pmx_base_import = config.pmd_config.is_pmx_base_import; // 型号信息 if (config.inspector_config.use_pmd_preload) { var obj = (PMDScriptableObject)target; model_agent = new ModelAgent(obj.assetPath); } else { model_agent = null; } }
public override void OnGUIFunction() { shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type); rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); animation_type = (PMXConverter.AnimationType)EditorGUILayout.EnumPopup("Animation Type", animation_type); use_ik = EditorGUILayout.Toggle("Use IK", use_ik); scale = EditorGUILayout.Slider("Scale", scale, 0.001f, 1.0f); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("Original", EditorStyles.miniButtonLeft)) { scale = 0.085f; } if (GUILayout.Button("1.0", EditorStyles.miniButtonRight)) { scale = 1.0f; } } EditorGUILayout.EndHorizontal(); is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); }
/// <summary> /// Inspector上のGUI描画処理を行います /// </summary> public override void OnInspectorGUI() { setup(); // GUIの有効化 GUI.enabled = !EditorApplication.isPlaying; // シェーダの種類 shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type); // 剛体を入れるかどうか rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); // Mecanimを使うかどうか #if UNITY_4_2 use_mecanim = EditorGUILayout.Toggle("Use Mecanim", use_mecanim); #else //UNITY_4_2 GUI.enabled = false; use_mecanim = EditorGUILayout.Toggle("Use Mecanim", false); GUI.enabled = !EditorApplication.isPlaying; #endif //UNITY_4_2 // IKを使うかどうか use_ik = EditorGUILayout.Toggle("Use IK", use_ik); // スケール scale = EditorGUILayout.Slider("Scale", scale, 0.001f, 1.0f); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("0.085", EditorStyles.miniButtonLeft)) { scale = 0.085f; } if (GUILayout.Button("1.0", EditorStyles.miniButtonRight)) { scale = 1.0f; } } EditorGUILayout.EndHorizontal(); // PMX Baseでインポートするかどうか is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); // Convertボタン EditorGUILayout.Space(); if (message.Length != 0) { GUILayout.Label(message); } else { if (GUILayout.Button("Convert to Prefab")) { if (null == model_agent) { var obj = (PMDScriptableObject)target; model_agent = new ModelAgent(obj.assetPath); } model_agent.CreatePrefab(shader_type, rigidFlag, use_mecanim, use_ik, scale, is_pmx_base_import); message = "Loading done."; } } GUILayout.Space(40); // モデル情報 if (model_agent == null) return; EditorGUILayout.LabelField("Model Name"); GUI.enabled = false; EditorGUILayout.TextArea(model_agent.name); GUI.enabled = true; EditorGUILayout.Space(); EditorGUILayout.LabelField("Comment"); GUI.enabled = false; EditorGUILayout.TextArea(model_agent.comment, GUILayout.Height(300)); GUI.enabled = true; }
/// <summary> /// Inspector上のGUI描画処理を行います /// </summary> public override void OnInspectorGUI() { setup(); // GUIの有効化 GUI.enabled = !EditorApplication.isPlaying; // シェーダの種類 shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type); // 剛体を入れるかどうか rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); // Mecanimを使うかどうか #if UNITY_4_2 use_mecanim = EditorGUILayout.Toggle("Use Mecanim", use_mecanim); #else //UNITY_4_2 GUI.enabled = false; use_mecanim = EditorGUILayout.Toggle("Use Mecanim", false); GUI.enabled = !EditorApplication.isPlaying; #endif //UNITY_4_2 // IKを使うかどうか use_ik = EditorGUILayout.Toggle("Use IK", use_ik); // スケール scale = EditorGUILayout.Slider("Scale", scale, 0.001f, 1.0f); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("0.085", EditorStyles.miniButtonLeft)) { scale = 0.085f; } if (GUILayout.Button("1.0", EditorStyles.miniButtonRight)) { scale = 1.0f; } } EditorGUILayout.EndHorizontal(); // PMX Baseでインポートするかどうか is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); // Convertボタン EditorGUILayout.Space(); if (message.Length != 0) { GUILayout.Label(message); } else { if (GUILayout.Button("Convert to Prefab")) { if (null == model_agent) { var obj = (PMDScriptableObject)target; model_agent = new ModelAgent(obj.assetPath); } model_agent.CreatePrefab(shader_type, rigidFlag, use_mecanim, use_ik, scale, is_pmx_base_import); message = "Loading done."; } } GUILayout.Space(40); // モデル情報 if (model_agent == null) { return; } EditorGUILayout.LabelField("Model Name"); GUI.enabled = false; EditorGUILayout.TextArea(model_agent.name); GUI.enabled = true; EditorGUILayout.Space(); EditorGUILayout.LabelField("Comment"); GUI.enabled = false; EditorGUILayout.TextArea(model_agent.comment, GUILayout.Height(300)); GUI.enabled = true; }
/// <summary> /// 在Inspector上进行GUI的绘制处理 /// </summary> public override void OnInspectorGUI() { setup(); GUI.enabled = !EditorApplication.isPlaying;// 激活GUI shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type);// 着色器类型 rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); // 是否加入刚体 GUI.enabled = false;// 是否使用Mecanim use_mecanim = EditorGUILayout.Toggle("Use Mecanim", false); GUI.enabled = !EditorApplication.isPlaying; use_ik = EditorGUILayout.Toggle("Use IK", use_ik);// 是否使用IK scale = EditorGUILayout.Slider("Scale", scale, 0.001f, 1.0f); // 缩放 EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("0.085", EditorStyles.miniButtonLeft)) { scale = 0.085f; } if (GUILayout.Button("1.0", EditorStyles.miniButtonRight)) { scale = 1.0f; } } EditorGUILayout.EndHorizontal(); is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); // 是否使用PMX Base进行导入 EditorGUILayout.Space(); // Convert按钮 if (message.Length != 0) { GUILayout.Label(message); } else { if (GUILayout.Button("Convert to Prefab")) { if (null == model_agent) { var obj = (PMDScriptableObject)target; model_agent = new ModelAgent(obj.assetPath); } model_agent.CreatePrefab(shader_type, rigidFlag, use_mecanim, use_ik, scale, is_pmx_base_import); message = "Loading done."; } } GUILayout.Space(40); if (model_agent == null) return; // info of model EditorGUILayout.LabelField("Model Name"); GUI.enabled = false; EditorGUILayout.TextArea(model_agent.name); GUI.enabled = true; EditorGUILayout.Space(); EditorGUILayout.LabelField("Comment"); GUI.enabled = false; EditorGUILayout.TextArea(model_agent.comment, GUILayout.Height(300)); GUI.enabled = true; }
/// <summary> /// 在Inspector上进行GUI的绘制处理 /// </summary> public override void OnInspectorGUI() { setup(); GUI.enabled = !EditorApplication.isPlaying;// 激活GUI shader_type = (PMDConverter.ShaderType)EditorGUILayout.EnumPopup("Shader Type", shader_type);// 着色器类型 rigidFlag = EditorGUILayout.Toggle("Rigidbody", rigidFlag); // 是否加入刚体 GUI.enabled = false;// 是否使用Mecanim use_mecanim = EditorGUILayout.Toggle("Use Mecanim", false); GUI.enabled = !EditorApplication.isPlaying; use_ik = EditorGUILayout.Toggle("Use IK", use_ik);// 是否使用IK scale = EditorGUILayout.Slider("Scale", scale, 0.001f, 1.0f); // 缩放 EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(" "); if (GUILayout.Button("0.085", EditorStyles.miniButtonLeft)) { scale = 0.085f; } if (GUILayout.Button("1.0", EditorStyles.miniButtonRight)) { scale = 1.0f; } } EditorGUILayout.EndHorizontal(); is_pmx_base_import = EditorGUILayout.Toggle("Use PMX Base Import", is_pmx_base_import); // 是否使用PMX Base进行导入 EditorGUILayout.Space(); // Convert按钮 if (message.Length != 0) { GUILayout.Label(message); } else { if (GUILayout.Button("Convert to Prefab")) { if (null == model_agent) { var obj = (PMDScriptableObject)target; model_agent = new ModelAgent(obj.assetPath); } model_agent.CreatePrefab(shader_type, rigidFlag, use_mecanim, use_ik, scale, is_pmx_base_import); message = "Loading done."; } } GUILayout.Space(40); if (model_agent == null) { return; // info of model } EditorGUILayout.LabelField("Model Name"); GUI.enabled = false; EditorGUILayout.TextArea(model_agent.name); GUI.enabled = true; EditorGUILayout.Space(); EditorGUILayout.LabelField("Comment"); GUI.enabled = false; EditorGUILayout.TextArea(model_agent.comment, GUILayout.Height(300)); GUI.enabled = true; }