Skip to content
Merged

2.1b #37

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
85debbb
PMDLoaderWindow:非推奨関数の廃止
Sep 23, 2013
4e8cd4b
Merge pull request #20 from eral/ChangingObsoletedFunctionInPMDLoader…
GRGSIBERIA Sep 25, 2013
59d11fc
肘が真っ直ぐではなく曲がっているモデルを確認(初音ミクXS)
GRGSIBERIA Sep 29, 2013
2c413d6
腕を水平にするための関数を追加
GRGSIBERIA Sep 29, 2013
9d4509e
腕を水平にするための関数を追加
GRGSIBERIA Sep 29, 2013
23fc641
子ボーンを選び出す処理を関数化
GRGSIBERIA Sep 29, 2013
a781768
コードを少しだけスッキリさせる
GRGSIBERIA Sep 29, 2013
5c8b853
Use mecanimがONになってくれない?
GRGSIBERIA Sep 29, 2013
9041abe
プラスとマイナス間違える
GRGSIBERIA Sep 29, 2013
cec7bc4
Update PMDLoaderWindow.cs
GRGSIBERIA Oct 21, 2013
906e4b3
Update VMDLoaderWindow.cs
GRGSIBERIA Oct 21, 2013
ccf3323
Update XFileImporterWindow.cs
GRGSIBERIA Oct 21, 2013
6360298
add git ignore
GRGSIBERIA Oct 23, 2013
2fb1230
Merge pull request #22 from mmd-for-unity-proj/horizontal-arm
GRGSIBERIA Oct 24, 2013
87c4e2e
Update ConfigWindow.cs
GRGSIBERIA Nov 3, 2013
6c992c4
Merge pull request #23 from mmd-for-unity-proj/2.1b
GRGSIBERIA Nov 3, 2013
51c584f
Merge pull request #24 from mmd-for-unity-proj/horizontal-arm
GRGSIBERIA Nov 3, 2013
f61f8d5
imifumei
GRGSIBERIA Nov 3, 2013
de5216c
Update README.md
GRGSIBERIA Nov 10, 2013
d768dd3
3.5以前(含む)の対応バージョンに関するコンパイル分岐を廃止
Nov 16, 2013
31525c6
4.1以前(含む)の対応バージョンに関するコンパイル分岐を廃止
Nov 16, 2013
e62444c
4.3でのobsolete警告対応
Nov 16, 2013
9b88dd2
Merge pull request #25 from eral/Version4.3Ready
GRGSIBERIA Nov 16, 2013
2e4e5a0
PMX2PMD:関連ボーンの無い剛体が有るとクラッシュする不具合の修正
Nov 11, 2013
b7d811f
PMD2PMX:初版
Nov 11, 2013
a1ccd9f
Merge pull request #26 from eral/PMD2PMX
GRGSIBERIA Nov 18, 2013
5434f17
材質1つで65536頂点を超えるモデルの対応
Nov 19, 2013
187ebeb
MMDEngineEditor:ShaderListに材質名を表示する様に対応
Nov 25, 2013
1d47465
Merge pull request #27 from eral/Over64kVerticesInMaterial
GRGSIBERIA Dec 1, 2013
8f12896
画角やスケールに依ってエッジ幅が変わる不具合の修正
Dec 2, 2013
eef6f9d
Merge pull request #28 from eral/EdgeShader
GRGSIBERIA Dec 8, 2013
524b59f
透過ピクセルは描画しない様に修正
Dec 18, 2013
91874ab
Merge pull request #29 from eral/HiddenPixelCutout
GRGSIBERIA Dec 20, 2013
743087a
PMXConverter:マテリアルの透過判定にテクスチャフォーマットを参照する様に修正
Sep 17, 2013
76280c5
PMXConverter:マテリアルの透過判定に材質モーフを参照する様に修正
Sep 17, 2013
6eeced7
PMXConverter:マテリアルの透過判定にテクセル情報を参照する様に修正
Nov 23, 2013
abc4811
エッジ付き材質が半透明ソートを無視する不具合の修正
Dec 21, 2013
0e3bffe
PMXConverter:マテリアルの透過判定にUVモーフを参照する様に対応
Nov 24, 2013
c79ec17
PMXConverter:マテリアルの透過判定にエッジの透過を考慮する様に対応
Dec 7, 2013
b7dcb82
マテリアルの透過判定を最適化
Dec 21, 2013
b2c2292
カスタムレンダーキュー対応
Nov 29, 2013
51778d9
AvatarSettingScript:腕水平化に於いて、間接が正しく選択されない場合がある不具合の修正
Dec 28, 2013
7f8a9b5
AvatarSettingScript:ボーン存在確認に於いてショートカットを効く様に修正
Dec 28, 2013
3948cc2
AvatarSettingScript:腰ボーンとしてセンターを用いた場合にSkeletonBoneに腰ボーンの親ボーンに関する情報が不足…
Dec 28, 2013
c67aa13
Merge pull request #30 from eral/TransparencyMaterial
GRGSIBERIA Dec 30, 2013
ea9b4b4
Merge pull request #31 from eral/BugFixOfIndirectBoneSearchMistake
GRGSIBERIA Dec 30, 2013
3bc41fa
Merge pull request #32 from eral/MecanimForModelWithoutHipsBone
GRGSIBERIA Dec 30, 2013
c368f7c
MMDConverter:PMDConverterとVMDConverterに分離
Dec 23, 2013
146ff42
Merge pull request #33 from eral/SeparateMMDConverter
GRGSIBERIA Jan 7, 2014
e6fadc3
汎用アバター対応
Dec 31, 2013
e8768a7
Merge pull request #35 from eral/GenericAvatar
GRGSIBERIA Jan 12, 2014
29143ce
変換UI周りの調整
Jan 12, 2014
0f09d30
Merge pull request #36 from eral/ConfigAssetProblem
GRGSIBERIA Jan 17, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
*.csproj
*.unityproj
*.sln
*.asset
Binary file modified Editor/Config/Config.asset
Binary file not shown.
170 changes: 101 additions & 69 deletions Editor/Config/Config.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using UnityEngine;
using UnityEngine;
using UnityEditor;
using System;
using System.Collections.Generic;
Expand All @@ -13,29 +13,35 @@ namespace MMD
[Serializable]
public class Config : ScriptableObject
{
public InspectorConfig inspector_config;
public DefaultPMDImportConfig pmd_config;
public DefaultVMDImportConfig vmd_config;
static Config config_ = null;
public InspectorConfig inspector_config = null;
public PMDImportConfig pmd_config = null;
public VMDImportConfig vmd_config = null;

private List<ConfigBase> update_list;
private List<ConfigBase> update_list = null;
public void OnEnable()
{
// Inspectorで編集をさせない
hideFlags = HideFlags.NotEditable;
if (pmd_config == null)
if (inspector_config == null)
{
// ここで初期化処理を書く
pmd_config = new DefaultPMDImportConfig();
vmd_config = new DefaultVMDImportConfig();
inspector_config = new InspectorConfig();
}
if (pmd_config == null)
{
pmd_config = new PMDImportConfig();
}
if (vmd_config == null)
{
vmd_config = new VMDImportConfig();
}
if (update_list == null)
{
update_list = new List<ConfigBase>();
update_list.Add(inspector_config);
update_list.Add(pmd_config);
update_list.Add(vmd_config);
}

hideFlags = HideFlags.None; //以前の書き換え不可assetが残っているかもしれないので明示的に書き換え可能を設定
}

/// <summary>
Expand All @@ -48,6 +54,11 @@ public void OnGUI()
{
item.OnGUI();
});

//変更確認
if (GUI.changed) {
EditorUtility.SetDirty(config_);
}
}

/// <summary>
Expand All @@ -67,18 +78,20 @@ public static string GetConfigPath()
/// <returns>読み込んで生成したConfigオブジェクト</returns>
public static Config LoadAndCreate()
{
var path = Config.GetConfigPath();
var config = (Config)AssetDatabase.LoadAssetAtPath(path, typeof(Config));

//// なかったら作成する
if (config == null)
if (config_ == null)
{
config = CreateInstance<Config>();
AssetDatabase.CreateAsset(config, path);
EditorUtility.SetDirty(config);
var path = Config.GetConfigPath();
config_ = (Config)AssetDatabase.LoadAssetAtPath(path, typeof(Config));

//// なかったら作成する
if (config_ == null)
{
config_ = CreateInstance<Config>();
AssetDatabase.CreateAsset(config_, path);
EditorUtility.SetDirty(config_);
}
}
Debug.Log(config);
return config;
return config_;
}
}

Expand All @@ -88,79 +101,94 @@ public static Config LoadAndCreate()
[Serializable]
public class InspectorConfig : ConfigBase
{
public bool use_pmd_preload = false;
public bool use_vmd_preload = false;
public bool use_pmd_preload = true;
public bool use_vmd_preload = true;

public InspectorConfig()
public override string GetTitle()
{
this.title = "Inspector Config";
return "Inspector Config";
}

public override void OnGUI()
public override void OnGUIFunction()
{
base.OnGUI(() =>
{
use_pmd_preload = EditorGUILayout.Toggle("Use PMD Preload", use_pmd_preload);
use_vmd_preload = EditorGUILayout.Toggle("Use VMD Preload", use_vmd_preload);
}
);
use_pmd_preload = EditorGUILayout.Toggle("Use PMD Preload", use_pmd_preload);
use_vmd_preload = EditorGUILayout.Toggle("Use VMD Preload", use_vmd_preload);
}

public InspectorConfig Clone()
{
return (InspectorConfig)MemberwiseClone();
}
}

/// <summary>
/// PMDインポートのデフォルトコンフィグ
/// PMDインポートのコンフィグ
/// </summary>
[Serializable]
public class DefaultPMDImportConfig : ConfigBase
public class PMDImportConfig : ConfigBase
{
public PMDConverter.ShaderType shader_type = PMDConverter.ShaderType.MMDShader;
public bool use_mecanim = false;
public PMXConverter.AnimationType animation_type = PMXConverter.AnimationType.LegacyAnimation;
public bool rigidFlag = true;
public bool use_ik = true;
public float scale = 0.085f;
public bool is_pmx_base_import = false;
public bool is_pmx_base_import = true;

public DefaultPMDImportConfig()
public override string GetTitle()
{
this.title = "Default PMD Import Config";
return "Default PMD Import Config";
}

public override void OnGUI()
public override void OnGUIFunction()
{
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);
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);
}

public PMDImportConfig Clone()
{
return (PMDImportConfig)MemberwiseClone();
}
}

/// <summary>
/// VMDインポートのデフォルトコンフィグ
/// VMDインポートのコンフィグ
/// </summary>
[Serializable]
public class DefaultVMDImportConfig : ConfigBase
public class VMDImportConfig : ConfigBase
{
public bool createAnimationFile;
public int interpolationQuality;
public bool createAnimationFile = false;
public int interpolationQuality = 1;

public DefaultVMDImportConfig()
public override string GetTitle()
{
this.title = "Default VMD Import Config";
return "Default VMD Import Config";
}

public override void OnGUI()
public override void OnGUIFunction()
{
base.OnGUI(() =>
{
createAnimationFile = EditorGUILayout.Toggle("Create Asset", createAnimationFile);
interpolationQuality = EditorGUILayout.IntSlider("Interpolation Quality", interpolationQuality, 1, 10);
}
);
createAnimationFile = EditorGUILayout.Toggle("Create Asset", createAnimationFile);
interpolationQuality = EditorGUILayout.IntSlider("Interpolation Quality", interpolationQuality, 1, 10);
}

public VMDImportConfig Clone()
{
return (VMDImportConfig)MemberwiseClone();
}
}

Expand All @@ -169,11 +197,6 @@ public override void OnGUI()
/// </summary>
public class ConfigBase
{
/// <summary>
/// このコンフィグのタイトルを指定します
/// </summary>
protected string title = "";

/// <summary>
/// 開け閉めの状態
/// </summary>
Expand All @@ -182,19 +205,28 @@ public class ConfigBase
/// <summary>
/// GUI処理を行います
/// </summary>
/// <param name="OnGUIFunction">引数・戻り値なしのラムダ式</param>
public void OnGUI(Action OnGUIFunction)
public void OnGUI()
{
var title = GetTitle();
fold = EditorGUILayout.Foldout(fold, title);
if (fold)
if (fold) {
OnGUIFunction();
}
EditorGUILayout.Space();
}

/// <summary>
/// このコンフィグのタイトルを取得します
/// </summary>
public virtual string GetTitle()
{
return "";
}

/// <summary>
/// GUI処理を行います
/// </summary>
public virtual void OnGUI()
public virtual void OnGUIFunction()
{
}
}
Expand Down
25 changes: 3 additions & 22 deletions Editor/Config/ConfigWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ namespace MMD
{
public class ConfigWindow : EditorWindow
{
private static Config config;
private static string path;
private Config config;

[MenuItem("Plugins/MMD Loader/Config")]
[MenuItem("MMD for Unity/Config")]
public static void Init()
{
GetWindow<ConfigWindow>("MFU Config");
Expand All @@ -18,36 +17,18 @@ public static void Init()
// フォーカスが外れて戻ってきたときや再度開かれたときなど
void OnEnable()
{
// オブジェクトを「Hierarchy」に表示しない。また、アセットの中にあれば、プロジェクトビューに表示しない
// オブジェクトがシーンに保存されない。また、新しいシーンを読んでも、オブジェクトが破棄されない
hideFlags = HideFlags.HideAndDontSave;

if (config == null)
{
// 読み込む
config = MMD.Config.LoadAndCreate();

// なかったら作成する
if (config == null)
{
path = MMD.Config.GetConfigPath();
config = CreateInstance<Config>();
AssetDatabase.CreateAsset(config, path);
EditorUtility.SetDirty(config);
}
}
}

// ウィンドウの描画処理
void OnGUI()
{
// たいとる
EditorGUILayout.LabelField("MMD for Unity Configuration");
EditorGUILayout.Space();

// あとは任せる
config.OnGUI();

}
}
}
}
4 changes: 4 additions & 0 deletions Editor/ExpressionManagerEditor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,11 @@ public override void OnInspectorGUI()
if (child.localPosition.z != value) {
//変更が掛かったなら
//Undo登録
#if !UNITY_4_2 //4.3以降
Undo.RecordObject(child, "Expression Change");
#else
Undo.RegisterUndo(child, "Expression Change");
#endif
//Z位置更新
Vector3 position = child.localPosition;
position.z = value;
Expand Down
Loading