This commit is contained in:
Razmoth
2023-08-21 21:45:57 +04:00
parent 6da2387c8c
commit 0bd3fa6db2
48 changed files with 967 additions and 510 deletions

View File

@@ -3,9 +3,9 @@
<PropertyGroup>
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Version>0.90.00</Version>
<AssemblyVersion>0.90.00</AssemblyVersion>
<FileVersion>0.90.00</FileVersion>
<Version>0.90.10</Version>
<AssemblyVersion>0.90.10</AssemblyVersion>
<FileVersion>0.90.10</FileVersion>
<Copyright>Copyright © Perfare 2018-2022; Copyright © hozuki 2020</Copyright>
<DebugType>embedded</DebugType>
</PropertyGroup>

View File

@@ -27,9 +27,10 @@ namespace AssetStudio.FbxInterop
[DllImport(FbxDll.DllName)]
private static extern IntPtr AsFbxGetSceneRootNode(IntPtr context);
private static IntPtr AsFbxExportSingleFrame(IntPtr context, IntPtr parentNode, string framePath, string frameName, in Vector3 localPosition, in Vector3 localRotation, in Vector3 localScale)
private static IntPtr AsFbxExportSingleFrame(IntPtr context, IntPtr parentNode, string framePath, string frameName, in Vector3 localPosition, in Quaternion localRotation, in Vector3 localScale)
{
return AsFbxExportSingleFrame(context, parentNode, framePath, frameName, localPosition.X, localPosition.Y, localPosition.Z, localRotation.X, localRotation.Y, localRotation.Z, localScale.X, localScale.Y, localScale.Z);
var localRotationEuler = Fbx.QuaternionToEuler(localRotation);
return AsFbxExportSingleFrame(context, parentNode, framePath, frameName, localPosition.X, localPosition.Y, localPosition.Z, localRotationEuler.X, localRotationEuler.Y, localRotationEuler.Z, localScale.X, localScale.Y, localScale.Z);
}
[DllImport(FbxDll.DllName)]

View File

@@ -16,6 +16,7 @@ namespace AssetStudio.FbxInterop
public FbxExporterContext()
{
Fbx.QuaternionToEuler(Quaternion.Zero); // workaround to init dll
_pContext = AsFbxCreateContext();
_frameToNode = new Dictionary<ImportedFrame, IntPtr>();
_createdMaterials = new List<KeyValuePair<string, IntPtr>>();
@@ -554,7 +555,7 @@ namespace AssetStudio.FbxInterop
foreach (var rotation in track.Rotations)
{
var value = rotation.value;
var value = Fbx.QuaternionToEuler(rotation.value);
AsFbxAnimAddRotationKey(pAnimContext, rotation.time, value.X, value.Y, value.Z);
}