add checkbox

This commit is contained in:
ousttrue 2021-12-09 19:39:51 +09:00
parent 27f2d684a6
commit c9d829c9cd
3 changed files with 23 additions and 20 deletions

View File

@ -43,5 +43,9 @@ namespace VRM
[LangMsg(Languages.ja, "頂点バッファをsubmeshで分割する。GLTF互換性のため。UniVRM-0.72 からロードできる。")]
[LangMsg(Languages.en, "Divide vertex buffer by submesh。For more gltf compatibility。UniVRM-0.72 or later can load.")]
DIVIDE_VERTEX_BUFFER,
[LangMsg(Languages.ja, "頂点カラーの自動削除をしない。")]
[LangMsg(Languages.en, "Do not automatically delete vertex colors.")]
KEEP_VERTEX_COLOR,
}
}

View File

@ -7,7 +7,6 @@ namespace VRM
[Serializable]
public class VRMExportSettings : ScriptableObject
{
/// <summary>
/// エクスポート時に強制的にT-Pose化する
/// </summary>
@ -50,6 +49,12 @@ namespace VRM
[Tooltip("Divide vertex buffer. For more gltf compatibility")]
public bool DivideVertexBuffer = false;
/// <summary>
/// Export時にVertexColorを落とさない。特別な用途で使えるように敢えて残す設定
/// </summary>
[Tooltip("Keep vertex color attribute")]
public bool KeepVertexColor = false;
public GltfExportSettings MeshExportSettings => new GltfExportSettings
{
UseSparseAccessorForMorphTarget = UseSparseAccessor,

View File

@ -3,6 +3,7 @@ using System;
using UnityEditor;
using UnityEngine;
using UniGLTF.M17N;
using System.Collections.Generic;
namespace VRM
{
@ -36,12 +37,7 @@ namespace VRM
}
}
CheckBoxProp m_poseFreeze;
CheckBoxProp m_useSparseAccessor;
CheckBoxProp m_onlyBlendShapePosition;
CheckBoxProp m_reduceBlendShape;
CheckBoxProp m_reduceBlendShapeClip;
CheckBoxProp m_divideVertexBuffer;
List<CheckBoxProp> m_checkbox_list = new List<CheckBoxProp>();
static string Msg(VRMExportOptions key)
{
@ -51,12 +47,13 @@ namespace VRM
private void OnEnable()
{
m_poseFreeze = new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.PoseFreeze)), VRMExportOptions.NORMALIZE);
m_useSparseAccessor = new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.UseSparseAccessor)), VRMExportOptions.BLENDSHAPE_USE_SPARSE);
m_onlyBlendShapePosition = new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.OnlyBlendshapePosition)), VRMExportOptions.BLENDSHAPE_EXCLUDE_NORMAL_AND_TANGENT);
m_reduceBlendShape = new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.ReduceBlendshape)), VRMExportOptions.BLENDSHAPE_ONLY_CLIP_USE);
m_reduceBlendShapeClip = new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.ReduceBlendshapeClip)), VRMExportOptions.BLENDSHAPE_EXCLUDE_UNKNOWN);
m_divideVertexBuffer = new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.DivideVertexBuffer)), VRMExportOptions.DIVIDE_VERTEX_BUFFER);
m_checkbox_list.Add(new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.PoseFreeze)), VRMExportOptions.NORMALIZE));
m_checkbox_list.Add(new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.UseSparseAccessor)), VRMExportOptions.BLENDSHAPE_USE_SPARSE));
m_checkbox_list.Add(new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.OnlyBlendshapePosition)), VRMExportOptions.BLENDSHAPE_EXCLUDE_NORMAL_AND_TANGENT));
m_checkbox_list.Add(new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.ReduceBlendshape)), VRMExportOptions.BLENDSHAPE_ONLY_CLIP_USE));
m_checkbox_list.Add(new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.ReduceBlendshapeClip)), VRMExportOptions.BLENDSHAPE_EXCLUDE_UNKNOWN));
m_checkbox_list.Add(new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.DivideVertexBuffer)), VRMExportOptions.DIVIDE_VERTEX_BUFFER));
m_checkbox_list.Add(new CheckBoxProp(serializedObject.FindProperty(nameof(VRMExportSettings.KeepVertexColor)), VRMExportOptions.KEEP_VERTEX_COLOR));
}
@ -70,13 +67,10 @@ namespace VRM
EditorGUIUtility.labelWidth = 160;
serializedObject.Update();
m_poseFreeze.Draw();
m_useSparseAccessor.Draw();
m_onlyBlendShapePosition.Draw();
m_reduceBlendShape.Draw();
m_reduceBlendShapeClip.Draw();
m_divideVertexBuffer.Draw();
foreach (var checkbox in m_checkbox_list)
{
checkbox.Draw();
}
serializedObject.ApplyModifiedProperties();
}
}