mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-05-14 14:29:52 -05:00
VRMExportSettingsEditor.Options
This commit is contained in:
parent
22733bc2b1
commit
28f5529d5c
|
|
@ -32,7 +32,6 @@ namespace VRM.M17N
|
|||
[LangMsg(Languages.en, "Please set up a ExportRoot for model export")]
|
||||
ROOT_EXISTS,
|
||||
|
||||
|
||||
[LangMsg(Languages.ja, "ExportRootに親はオブジェクトは持てません")]
|
||||
[LangMsg(Languages.en, "ExportRoot must be topmost parent")]
|
||||
NO_PARENT,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
|
||||
using System;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using VRM.M17N;
|
||||
|
||||
namespace VRM
|
||||
{
|
||||
|
|
@ -10,18 +12,26 @@ namespace VRM
|
|||
class CheckBoxProp
|
||||
{
|
||||
public SerializedProperty Property;
|
||||
public string Description;
|
||||
public Func<string> Description;
|
||||
|
||||
public CheckBoxProp(SerializedProperty property, string desc)
|
||||
public CheckBoxProp(SerializedProperty property, Func<string> desc)
|
||||
{
|
||||
Property = property;
|
||||
Description = desc;
|
||||
}
|
||||
|
||||
public CheckBoxProp(SerializedProperty property, Options desc) : this(property, () => Msg(desc))
|
||||
{
|
||||
}
|
||||
|
||||
public CheckBoxProp(SerializedProperty property, string desc) : this(property, () => desc)
|
||||
{
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
{
|
||||
EditorGUILayout.PropertyField(Property);
|
||||
EditorGUILayout.HelpBox(Description, MessageType.None);
|
||||
EditorGUILayout.HelpBox(Description(), MessageType.None);
|
||||
EditorGUILayout.Space();
|
||||
}
|
||||
}
|
||||
|
|
@ -83,32 +93,56 @@ namespace VRM
|
|||
CheckBoxProp m_reduceBlendShapeClip;
|
||||
CheckBoxProp m_removeVertexColor;
|
||||
|
||||
static string Msg(Options key)
|
||||
{
|
||||
return M17N.Getter.Msg(key);
|
||||
}
|
||||
|
||||
enum Options
|
||||
{
|
||||
[LangMsg(Languages.ja, "エクスポート時に強制的にT-Pose化する。これを使わずに手動でT-Poseを作っても問題ありません")]
|
||||
[LangMsg(Languages.en, "Force T-Pose before export. Manually making T-Pose for model without enabling this is ok")]
|
||||
FORCE_T_POSE,
|
||||
|
||||
[LangMsg(Languages.ja, "エクスポート時に正規化(ヒエラルキーから回転と拡大縮小を取り除くためにベイク)する")]
|
||||
[LangMsg(Languages.en, "Model's normalization (bake to remove roation and scaling from the hierarchy)")]
|
||||
NORMALIZE,
|
||||
|
||||
[LangMsg(Languages.ja, "エクスポート時に新しいJsonSerializerを使う")]
|
||||
[LangMsg(Languages.en, "The new version of JsonSerializer for model export")]
|
||||
USE_GENERATED_SERIALIZER,
|
||||
|
||||
[LangMsg(Languages.ja, "BlendShapeの容量を GLTF の Sparse Accessor 機能で削減する。修正中: UniGLTF以外でロードできません")]
|
||||
[LangMsg(Languages.en, "BlendShape size can be reduced by using Sparse Accessor")]
|
||||
BLENDSHAPE_USE_SPARSE,
|
||||
|
||||
[LangMsg(Languages.ja, "BlendShapeClipのエクスポートに法線とTangentを含めない。UniVRM-0.53 以前ではロードがエラーになるのに注意してください")]
|
||||
[LangMsg(Languages.en, "BlendShape's Normal and Tangent will not be exported. Be aware that errors may occur during import if the model is made by UniVRM-0.53 or earlier versions")]
|
||||
BLENDSHAPE_EXCLUDE_NORMAL_AND_TANGENT,
|
||||
|
||||
[LangMsg(Languages.ja, "BlendShapeClipから参照されないBlendShapeをエクスポートに含めない")]
|
||||
[LangMsg(Languages.en, "BlendShapes that are not referenced by BlendShapeClips will not be exported")]
|
||||
BLENDSHAPE_ONLY_CLIP_USE,
|
||||
|
||||
[LangMsg(Languages.ja, "BlendShapeClip.Preset == Unknown のBlendShapeClipをエクスポートに含めない")]
|
||||
[LangMsg(Languages.en, "BlendShapeClip will not be exported if BlendShapeClip.Preset == Unknown")]
|
||||
BLENDSHAPE_EXCLUDE_UNKNOWN,
|
||||
|
||||
[LangMsg(Languages.ja, "エクスポートに頂点カラーを含めない")]
|
||||
[LangMsg(Languages.en, "Vertex color will not be exported")]
|
||||
REMOVE_VERTEX_COLOR,
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
m_forceTPose = new CheckBoxProp(serializedObject.FindProperty(nameof(ForceTPose)),
|
||||
"エクスポート時に強制的にT-Pose化する。これを使わずに手動でT-Poseを作っても問題ありません \n" +
|
||||
"Force T-Pose before export. Manually making T-Pose for model without enabling this is ok");
|
||||
m_poseFreeze = new CheckBoxProp(serializedObject.FindProperty(nameof(PoseFreeze)),
|
||||
"エクスポート時に正規化(ヒエラルキーから回転と拡大縮小を取り除くためにベイク)する \n" +
|
||||
"Model's normalization (bake to remove roation and scaling from the hierarchy)");
|
||||
m_useExcperimentalExporter = new CheckBoxProp(serializedObject.FindProperty(nameof(UseExperimentalExporter)),
|
||||
"エクスポート時に新しいJsonSerializerを使う \n" +
|
||||
"The new version of JsonSerializer for model export");
|
||||
m_useSparseAccessor = new CheckBoxProp(serializedObject.FindProperty(nameof(UseSparseAccessor)),
|
||||
"BlendShapeの容量を GLTF の Sparse Accessor 機能で削減する。修正中: UniGLTF以外でロードできません \n" +
|
||||
"BlendShape size can be reduced by using Sparse Accessor");
|
||||
m_onlyBlendShapePosition = new CheckBoxProp(serializedObject.FindProperty(nameof(OnlyBlendshapePosition)),
|
||||
"BlendShapeClipのエクスポートに法線とTangentを含めない。UniVRM-0.53 以前ではロードがエラーになるのに注意してください \n" +
|
||||
"BlendShape's Normal and Tangent will not be exported. Be aware that errors may occur during import if the model is made by UniVRM-0.53 or earlier versions");
|
||||
m_reduceBlendShape = new CheckBoxProp(serializedObject.FindProperty(nameof(ReduceBlendshape)),
|
||||
"BlendShapeClipから参照されないBlendShapeをエクスポートに含めない \n" +
|
||||
"BlendShapes that are not referenced by BlendShapeClips will not be exported");
|
||||
m_reduceBlendShapeClip = new CheckBoxProp(serializedObject.FindProperty(nameof(ReduceBlendshapeClip)),
|
||||
"BlendShapeClip.Preset == Unknown のBlendShapeClipをエクスポートに含めない \n" +
|
||||
"BlendShapeClip will not be exported if BlendShapeClip.Preset == Unknown");
|
||||
m_removeVertexColor = new CheckBoxProp(serializedObject.FindProperty(nameof(RemoveVertexColor)),
|
||||
"エクスポートに頂点カラーを含めない \n" +
|
||||
"Vertex color will not be exported");
|
||||
m_forceTPose = new CheckBoxProp(serializedObject.FindProperty(nameof(ForceTPose)), Options.FORCE_T_POSE);
|
||||
m_poseFreeze = new CheckBoxProp(serializedObject.FindProperty(nameof(PoseFreeze)), Options.NORMALIZE);
|
||||
m_useExcperimentalExporter = new CheckBoxProp(serializedObject.FindProperty(nameof(UseExperimentalExporter)), Options.USE_GENERATED_SERIALIZER);
|
||||
m_useSparseAccessor = new CheckBoxProp(serializedObject.FindProperty(nameof(UseSparseAccessor)), Options.BLENDSHAPE_USE_SPARSE);
|
||||
m_onlyBlendShapePosition = new CheckBoxProp(serializedObject.FindProperty(nameof(OnlyBlendshapePosition)), Options.BLENDSHAPE_EXCLUDE_NORMAL_AND_TANGENT);
|
||||
m_reduceBlendShape = new CheckBoxProp(serializedObject.FindProperty(nameof(ReduceBlendshape)), Options.BLENDSHAPE_ONLY_CLIP_USE);
|
||||
m_reduceBlendShapeClip = new CheckBoxProp(serializedObject.FindProperty(nameof(ReduceBlendshapeClip)), Options.BLENDSHAPE_EXCLUDE_UNKNOWN);
|
||||
m_removeVertexColor = new CheckBoxProp(serializedObject.FindProperty(nameof(RemoveVertexColor)), Options.REMOVE_VERTEX_COLOR);
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user