mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-25 05:40:21 -04:00
Fixed #962
This commit is contained in:
parent
8ae3df6197
commit
ded2dcd54e
@ -73,6 +73,28 @@ namespace AssetStudio
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ImportedFrame FindRelativeFrameWithPath(string path)
|
||||||
|
{
|
||||||
|
var subs = path.Split(new[] { '/' }, 2);
|
||||||
|
foreach (var child in children)
|
||||||
|
{
|
||||||
|
if (child.Name == subs[0])
|
||||||
|
{
|
||||||
|
if (subs.Length == 1)
|
||||||
|
{
|
||||||
|
return child;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var result = child.FindRelativeFrameWithPath(subs[1]);
|
||||||
|
if (result != null)
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public ImportedFrame FindFrame(string name)
|
public ImportedFrame FindFrame(string name)
|
||||||
{
|
{
|
||||||
if (Name == name)
|
if (Name == name)
|
||||||
|
@ -1063,26 +1063,21 @@ namespace AssetStudio
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
transformName = strs.Last();
|
transformName = strs.Last();
|
||||||
var parentFrameName = strs[strs.Length - 2];
|
var parentFramePath = path.Substring(0, path.LastIndexOf('/'));
|
||||||
parentFrame = RootFrame.FindChild(parentFrameName);
|
parentFrame = RootFrame.FindRelativeFrameWithPath(parentFramePath);
|
||||||
//var parentFramePath = path.Substring(0, path.LastIndexOf('/'));
|
|
||||||
//parentFrame = RootFrame.FindFrameByPath(parentFramePath);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var skeletonPose = avatar.m_Avatar.m_DefaultPose;
|
var skeletonPose = avatar.m_Avatar.m_DefaultPose;
|
||||||
var xform = skeletonPose.m_X[i];
|
var xform = skeletonPose.m_X[i];
|
||||||
|
|
||||||
var frame = RootFrame.FindChild(transformName);
|
var frame = RootFrame.FindChild(transformName);
|
||||||
if (frame != null)
|
if (frame != null)
|
||||||
{
|
{
|
||||||
SetFrame(frame, xform.t, xform.q, xform.s);
|
SetFrame(frame, xform.t, xform.q, xform.s);
|
||||||
parentFrame.AddChild(frame);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
frame = CreateFrame(transformName, xform.t, xform.q, xform.s);
|
frame = CreateFrame(transformName, xform.t, xform.q, xform.s);
|
||||||
parentFrame.AddChild(frame);
|
|
||||||
}
|
}
|
||||||
|
parentFrame.AddChild(frame);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user