mirror of
https://github.com/Dongyifengs/AssetStudio-Genshin-MoYi.git
synced 2025-05-06 19:39:19 +08:00
59 lines
1.8 KiB
C#
59 lines
1.8 KiB
C#
using AssetStudio.FbxInterop;
|
|
using AssetStudio.PInvoke;
|
|
using System.IO;
|
|
|
|
namespace AssetStudio
|
|
{
|
|
public static partial class Fbx
|
|
{
|
|
|
|
static Fbx()
|
|
{
|
|
DllLoader.PreloadDll(FbxDll.DllName);
|
|
}
|
|
|
|
public static Vector3 QuaternionToEuler(Quaternion q)
|
|
{
|
|
AsUtilQuaternionToEuler(q.X, q.Y, q.Z, q.W, out var x, out var y, out var z);
|
|
return new Vector3(x, y, z);
|
|
}
|
|
|
|
public static Quaternion EulerToQuaternion(Vector3 v)
|
|
{
|
|
AsUtilEulerToQuaternion(v.X, v.Y, v.Z, out var x, out var y, out var z, out var w);
|
|
return new Quaternion(x, y, z, w);
|
|
}
|
|
|
|
public static class Exporter
|
|
{
|
|
|
|
public static void Export(string path, IImported imported, bool eulerFilter, float filterPrecision,
|
|
bool allNodes, bool skins, bool animation, bool blendShape, bool castToBone, float boneSize, bool exportAllUvsAsDiffuseMaps, bool exportUV0UV1, float scaleFactor, int versionIndex, bool isAscii)
|
|
{
|
|
var file = new FileInfo(path);
|
|
var dir = file.Directory;
|
|
|
|
if (!dir.Exists)
|
|
{
|
|
dir.Create();
|
|
}
|
|
|
|
var currentDir = Directory.GetCurrentDirectory();
|
|
Directory.SetCurrentDirectory(dir.FullName);
|
|
|
|
var name = Path.GetFileName(path);
|
|
|
|
using (var exporter = new FbxExporter(name, imported, allNodes, skins, castToBone, boneSize, exportAllUvsAsDiffuseMaps, exportUV0UV1, scaleFactor, versionIndex, isAscii))
|
|
{
|
|
exporter.Initialize();
|
|
exporter.ExportAll(blendShape, animation, eulerFilter, filterPrecision);
|
|
}
|
|
|
|
Directory.SetCurrentDirectory(currentDir);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|