コード例 #1
0
ファイル: Config.cs プロジェクト: zhaochuan1990/mmd-for-unity
 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);
 }
コード例 #2
0
ファイル: Config.cs プロジェクト: leonpardlee/mmd-for-unity
 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);
 }
コード例 #3
0
        /// <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();
        }