Fix export of selected Live2D motions

This commit is contained in:
VaDiM 2025-03-03 22:18:23 +03:00
parent 81cd6d79d0
commit 9f918d0332
2 changed files with 14 additions and 10 deletions

View File

@ -2319,7 +2319,7 @@ namespace AssetStudioGUI
private void ExportSelectedL2DModels(ExportL2DFilter l2dExportMode) private void ExportSelectedL2DModels(ExportL2DFilter l2dExportMode)
{ {
if (exportableAssets.Count == 0) if (Studio.exportableAssets.Count == 0)
{ {
Logger.Info("No exportable assets loaded"); Logger.Info("No exportable assets loaded");
return; return;

View File

@ -41,17 +41,17 @@ namespace CubismLive2DExtractor
private HashSet<string> EyeBlinkParameters { get; set; } private HashSet<string> EyeBlinkParameters { get; set; }
private HashSet<string> LipSyncParameters { get; set; } private HashSet<string> LipSyncParameters { get; set; }
public Live2DExtractor(KeyValuePair<MonoBehaviour, List<Object>> assetGroupKvp, List<AnimationClip> inClipMotions = null, List<MonoBehaviour> inFadeMotions = null, MonoBehaviour inFadeMotionLst = null) public Live2DExtractor(KeyValuePair<MonoBehaviour, List<Object>> assetGroupKvp, List<AnimationClip> selClipMotions = null, List<MonoBehaviour> selFadeMotions = null, MonoBehaviour selFadeMotionLst = null)
{ {
Expressions = new List<MonoBehaviour>(); Expressions = new List<MonoBehaviour>();
FadeMotions = inFadeMotions ?? new List<MonoBehaviour>(); FadeMotions = selFadeMotions ?? new List<MonoBehaviour>();
AnimationClips = inClipMotions ?? new List<AnimationClip>(); AnimationClips = selClipMotions ?? new List<AnimationClip>();
FadeMotionLst = selFadeMotionLst;
Texture2Ds = new List<Texture2D>(); Texture2Ds = new List<Texture2D>();
EyeBlinkParameters = new HashSet<string>(); EyeBlinkParameters = new HashSet<string>();
LipSyncParameters = new HashSet<string>(); LipSyncParameters = new HashSet<string>();
ParameterNames = new HashSet<string>(); ParameterNames = new HashSet<string>();
PartNames = new HashSet<string>(); PartNames = new HashSet<string>();
FadeMotionLst = inFadeMotionLst;
ParametersCdi = new List<MonoBehaviour>(); ParametersCdi = new List<MonoBehaviour>();
PartsCdi = new List<MonoBehaviour>(); PartsCdi = new List<MonoBehaviour>();
PoseParts = new List<MonoBehaviour>(); PoseParts = new List<MonoBehaviour>();
@ -61,6 +61,10 @@ namespace CubismLive2DExtractor
var searchModelParamCdi = true; var searchModelParamCdi = true;
var searchModelPartCdi = true; var searchModelPartCdi = true;
var searchPoseParts = true; var searchPoseParts = true;
var searchFadeMotions =
selClipMotions == null
&& selFadeMotions == null
&& selFadeMotionLst == null;
Logger.Debug("Sorting model assets.."); Logger.Debug("Sorting model assets..");
@ -69,9 +73,9 @@ namespace CubismLive2DExtractor
{ {
Model = model; Model = model;
PhysicsMono = Model.PhysicsController; PhysicsMono = Model.PhysicsController;
if (inFadeMotionLst == null && TryGetFadeList(Model.FadeController, out var fadeMono)) if (searchFadeMotions && TryGetFadeList(Model.FadeController, out var fadeMono))
{ {
FadeMotionLst = inFadeMotionLst = fadeMono; FadeMotionLst = selFadeMotionLst = fadeMono;
} }
if (TryGetExpressionList(Model.ExpressionController, out var expressionMono)) if (TryGetExpressionList(Model.ExpressionController, out var expressionMono))
{ {
@ -122,13 +126,13 @@ namespace CubismLive2DExtractor
Expressions.Add(m_MonoBehaviour); Expressions.Add(m_MonoBehaviour);
break; break;
case "CubismFadeMotionData": case "CubismFadeMotionData":
if (inFadeMotions == null && inFadeMotionLst == null) if (searchFadeMotions)
{ {
FadeMotions.Add(m_MonoBehaviour); FadeMotions.Add(m_MonoBehaviour);
} }
break; break;
case "CubismFadeMotionList": case "CubismFadeMotionList":
if (inFadeMotions == null && inFadeMotionLst == null) if (searchFadeMotions)
{ {
FadeMotionLst = m_MonoBehaviour; FadeMotionLst = m_MonoBehaviour;
} }
@ -187,7 +191,7 @@ namespace CubismLive2DExtractor
} }
break; break;
case AnimationClip m_AnimationClip: case AnimationClip m_AnimationClip:
if (inClipMotions == null) if (selClipMotions == null)
{ {
AnimationClips.Add(m_AnimationClip); AnimationClips.Add(m_AnimationClip);
} }