VRMをスクリプトでエクスポートする
Editorからエクスポート
ランタイムエクスポート
UniVRM0.57.1
Editorからエクスポート
code:cs
using UnityEngine;
using System.Collections;
using System.IO;
using UnityEditor;
using VRM;
using UniGLTF;
//...
public class Exporter : MonoBehaviour
{
public GameObject targetHumanoid;
const string EXTENSION = ".vrm";
public VRMExportSettings settings = new VRMExportSettings();
//...
public void editorExport()
{
settings.InitializeFrom(targetHumanoid);
var path = EditorUtility.SaveFilePanel(
"Save vrm",
null,
settings.Source.name + EXTENSION,
EXTENSION.Substring(1));
if (string.IsNullOrEmpty(path))
{
return;
}
VRMEditorExporter.Export(path, settings);
}
//...
}
ランタイムエクスポート
UniVRM 1.xx(draft)の場合
仕様が変更される可能性高いため、正式版が出るまではプロダクト等で使用しないでください
code:cs
VrmLib.Model ToModel(UnityEngine.GameObject target)
{
var exporter = new UniVRM10.RuntimeVrmConverter();
var model = exporter.ToModelFrom10(target);
return model;
}
byte[] ToVrm10(VrmLib.Model model)
{
// 右手系に変換
VrmLib.ModelExtensionsForCoordinates.ConvertCoordinate(model, VrmLib.Coordinates.Gltf);
var bytes = Vrm10.ModelExtensions.ToGlb(model);
return bytes;
}
//File.WriteAllBytes(path, bytes);