2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unity2Dでスプライト(画像が1つまとめてあるやつ)からモーションを自動で作成する

Last updated at Posted at 2023-03-10

目次

1. まえがき
2. 結論
3. 全ての素材入れたAnimationを作成
4. AnimationファイルのpptrCurveMappingの部分をコピペしてtxt化
5. txtファイルからFileIDのみを取得
6. FileIDからAnimationを複数作成
7. 実行
8. まとめ

まえがき

Unityで2Dゲームを作る際、下のようなスプライトを使用することがあると思います。

FreyaS.png
ゆるドラシル RPGツクール素材提供サイトのフレイヤ

この画像をUnityで使用したいと思ったら
・画像の切り分け
参照:nityでスプライト(画像が1つまとめてあるやつ)を切り分ける方法
スクリーンショット 2023-03-10 144955.png

・素材の1つをHierarchyに出しAnimatorをコンポーネント
参照:Unity 2Dアクションの作り方【アニメーション作成】
スクリーンショット 2023-03-10 145819.png

・Animator Controllerを作成したのちAnimator内に導入
参照:Unity 2Dアクションの作り方【アニメーション作成】
スクリーンショット 2023-03-10 145506.png
スクリーンショット 2023-03-10 145523.png

・Window>Animation>AnimationでAnimationを作成
参照:Unity 2Dアクションの作り方【アニメーション作成】
スクリーンショット 2023-03-10 150242.png
先ほど切り分けた素材0→1→2→1→0で待機状態(?)のモーションを作成
レコーディング-2023-03-10-150858.gif
といった流れになると思います。
問題なのは最後のanimationの作成の手順。
FreyaS.png
ゆるドラシルのスプライトは横9×縦6の54種類で3つで1組なため18つのAnimation作成できます。多い!
素材のキャラを増やすと18の倍数づつ増えていくためさらに多くなります。
数が多すぎてそんなのやってられないため、自動化を試みました。

結論

結論をいうと完全自動化は無理でしたが、ある程度の自動化には成功しました。
手順は以下の通りです。

  1. 全ての素材入れたAnimationを作成
  2. AnimationファイルのpptrCurveMappingの部分をコピペしてtxt化
  3. txtファイルからFileIDのみを取得
  4. FileIDからAnimationを複数作成

順に説明していきます。

全ての素材入れたAnimationを作成

まず初めに切り分けたすべての素材を詰め込んだAnimationを作成します。
スクリーンショット 2023-03-10 192659.png

Shiftキーを使えば簡単に複数のprojectタブの素材を選択できます

作成したanimationファイルをVScodeなどのエディターで開くと下記のようになっています

警告
Unity上でCtr+Sなどの保存を行わないと反映されないので気を付けてください(2敗)

フレイヤの素材を全て入れたanimationファイル
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_Name: New Animation
  serializedVersion: 6
  m_Legacy: 0
  m_Compressed: 0
  m_UseHighQualityCurve: 1
  m_RotationCurves: []
  m_CompressedRotationCurves: []
  m_EulerCurves: []
  m_PositionCurves: []
  m_ScaleCurves: []
  m_FloatCurves: []
  m_PPtrCurves:
  - curve:
    - time: 0
      value: {fileID: -964861972627419651, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.016666668
      value: {fileID: -4601839220051827856, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.033333335
      value: {fileID: -1056826484694997815, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.05
      value: {fileID: -1158100502417944942, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.06666667
      value: {fileID: 6943375991475072377, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.083333336
      value: {fileID: 6862453240167101196, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.1
      value: {fileID: 8277301849047400619, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.11666667
      value: {fileID: 7321675060975734423, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.13333334
      value: {fileID: -8886226170175040296, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.15
      value: {fileID: -7315815190574178413, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.16666667
      value: {fileID: -1628973792630015623, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.18333334
      value: {fileID: 2688058052847995457, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.2
      value: {fileID: 5146300132090638205, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.21666667
      value: {fileID: 8612103298388519002, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.23333333
      value: {fileID: -3005837894321400390, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.25
      value: {fileID: 4815336511862190452, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.26666668
      value: {fileID: -5864148461886379403, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.28333333
      value: {fileID: -4953666823269280629, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.3
      value: {fileID: -311895720485211514, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.31666666
      value: {fileID: -5186902469381402330, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.33333334
      value: {fileID: 7278491402254451532, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.35
      value: {fileID: 8256032080180098766, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.36666667
      value: {fileID: 6563074484271356680, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.38333333
      value: {fileID: -4215754394132753658, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.4
      value: {fileID: 7497703085604861517, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.41666666
      value: {fileID: -140951958587282892, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.43333334
      value: {fileID: 2891272152236622026, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.45
      value: {fileID: 503337006453547290, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.46666667
      value: {fileID: -3615104126135534113, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.48333332
      value: {fileID: -8262058837553664321, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.5
      value: {fileID: 4689648869347632470, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.51666665
      value: {fileID: -799649161100189917, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.53333336
      value: {fileID: -1787021197605773777, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.55
      value: {fileID: -5060247094520902029, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.56666666
      value: {fileID: -7134795176709959434, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.5833333
      value: {fileID: -5950624716388236383, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.6
      value: {fileID: -4526010008668306558, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.6166667
      value: {fileID: -6552007183038197407, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.6333333
      value: {fileID: 5532814027816515702, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.65
      value: {fileID: -8529415349653719219, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.6666667
      value: {fileID: 8869316479295928225, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.68333334
      value: {fileID: 3152178736222740502, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.7
      value: {fileID: -2023549405097373126, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.71666664
      value: {fileID: 3537821203643451822, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.73333335
      value: {fileID: -6585872367576136451, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.75
      value: {fileID: -4941201520790536638, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.76666665
      value: {fileID: -3303184691673769200, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.78333336
      value: {fileID: -18684483802693169, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.8
      value: {fileID: 253898423026037340, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.81666666
      value: {fileID: -8543913171838432685, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.8333333
      value: {fileID: -2539205730421474931, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.85
      value: {fileID: -5863792351164199999, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.8666667
      value: {fileID: -1833113814962414588, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - time: 0.8833333
      value: {fileID: 7897757135273334916, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    attribute: m_Sprite
    path: 
    classID: 212
    script: {fileID: 0}
  m_SampleRate: 60
  m_WrapMode: 0
  m_Bounds:
    m_Center: {x: 0, y: 0, z: 0}
    m_Extent: {x: 0, y: 0, z: 0}
  m_ClipBindingConstant:
    genericBindings:
    - serializedVersion: 2
      path: 0
      attribute: 0
      script: {fileID: 0}
      typeID: 212
      customType: 23
      isPPtrCurve: 1
    pptrCurveMapping:
    - {fileID: -964861972627419651, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4601839220051827856, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1056826484694997815, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1158100502417944942, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 6943375991475072377, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 6862453240167101196, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 8277301849047400619, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 7321675060975734423, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -8886226170175040296, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -7315815190574178413, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1628973792630015623, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 2688058052847995457, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 5146300132090638205, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 8612103298388519002, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -3005837894321400390, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 4815336511862190452, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5864148461886379403, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4953666823269280629, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -311895720485211514, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5186902469381402330, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 7278491402254451532, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 8256032080180098766, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 6563074484271356680, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4215754394132753658, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 7497703085604861517, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -140951958587282892, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 2891272152236622026, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 503337006453547290, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -3615104126135534113, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -8262058837553664321, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 4689648869347632470, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -799649161100189917, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1787021197605773777, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5060247094520902029, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -7134795176709959434, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5950624716388236383, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4526010008668306558, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -6552007183038197407, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 5532814027816515702, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -8529415349653719219, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 8869316479295928225, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 3152178736222740502, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -2023549405097373126, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 3537821203643451822, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -6585872367576136451, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4941201520790536638, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -3303184691673769200, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -18684483802693169, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 253898423026037340, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -8543913171838432685, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -2539205730421474931, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5863792351164199999, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1833113814962414588, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 7897757135273334916, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
  m_AnimationClipSettings:
    serializedVersion: 2
    m_AdditiveReferencePoseClip: {fileID: 0}
    m_AdditiveReferencePoseTime: 0
    m_StartTime: 0
    m_StopTime: 0.9
    m_OrientationOffsetY: 0
    m_Level: 0
    m_CycleOffset: 0
    m_HasAdditiveReferencePose: 0
    m_LoopTime: 1
    m_LoopBlend: 0
    m_LoopBlendOrientation: 0
    m_LoopBlendPositionY: 0
    m_LoopBlendPositionXZ: 0
    m_KeepOriginalOrientation: 0
    m_KeepOriginalPositionY: 1
    m_KeepOriginalPositionXZ: 0
    m_HeightFromFeet: 0
    m_Mirror: 0
  m_EditorCurves: []
  m_EulerEditorCurves: []
  m_HasGenericRootTransform: 0
  m_HasMotionFloatCurves: 0
  m_Events: []

AnimationファイルのpptrCurveMappingの部分をコピペしてtxt化

まず初めに他のキャラ切り分けた素材を全て入れたanimationファイルを見てください。

ロキのの素材を全て入れたanimationファイル
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_Name: New Animation
  serializedVersion: 6
  m_Legacy: 0
  m_Compressed: 0
  m_UseHighQualityCurve: 1
  m_RotationCurves: []
  m_CompressedRotationCurves: []
  m_EulerCurves: []
  m_PositionCurves: []
  m_ScaleCurves: []
  m_FloatCurves: []
  m_PPtrCurves:
  - curve:
    - time: 0
      value: {fileID: 1028554412710824610, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.016666668
      value: {fileID: 8770337821196452605, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.033333335
      value: {fileID: -478530073766021669, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.05
      value: {fileID: 746662855887842566, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.06666667
      value: {fileID: 7930036128909813800, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.083333336
      value: {fileID: 1128255078774422026, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.1
      value: {fileID: -4028077866212815098, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.11666667
      value: {fileID: -3543938660656569840, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.13333334
      value: {fileID: -5531168250382527491, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.15
      value: {fileID: 1024244580606554049, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.16666667
      value: {fileID: -3939982276282180439, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.18333334
      value: {fileID: 1230322070027652441, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.2
      value: {fileID: -4330988582189811724, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.21666667
      value: {fileID: 8482282895084324922, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.23333333
      value: {fileID: 2089641497648478256, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.25
      value: {fileID: 1964294715045691463, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.26666668
      value: {fileID: 1968909510626845067, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.28333333
      value: {fileID: -3643246003113000918, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.3
      value: {fileID: 7799004501529556184, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.31666666
      value: {fileID: -8956768362819075929, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.33333334
      value: {fileID: 3646164688782368145, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.35
      value: {fileID: 4027785544202229449, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.36666667
      value: {fileID: -5858931568564500820, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.38333333
      value: {fileID: 642580427499525078, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.4
      value: {fileID: -7249173427656586123, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.41666666
      value: {fileID: 3749952422302323111, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.43333334
      value: {fileID: 7134734347653491179, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.45
      value: {fileID: -1386638072767002140, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.46666667
      value: {fileID: -362633595069746197, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.48333332
      value: {fileID: 5660215432936169201, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.5
      value: {fileID: -6222230717414218814, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.51666665
      value: {fileID: 3466878479963123204, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.53333336
      value: {fileID: -4435005994839985195, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.55
      value: {fileID: -5725759972188618104, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.56666666
      value: {fileID: -7991504989427528491, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.5833333
      value: {fileID: 6134622074428692512, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.6
      value: {fileID: -888335213327878788, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.6166667
      value: {fileID: -1267135896097771623, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.6333333
      value: {fileID: 5996745832989700051, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.65
      value: {fileID: 1261276160939360892, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.6666667
      value: {fileID: 4318442449833461309, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.68333334
      value: {fileID: 9216129932739184864, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.7
      value: {fileID: 5536550400449473928, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.71666664
      value: {fileID: -3186662486778852696, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.73333335
      value: {fileID: 5209325513352368208, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.75
      value: {fileID: 884150154000790199, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.76666665
      value: {fileID: -1208839137451188001, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.78333336
      value: {fileID: -7826335868054593182, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.8
      value: {fileID: -79352130136498132, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.81666666
      value: {fileID: -7128529209088838074, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.8333333
      value: {fileID: 2298004941350445666, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.85
      value: {fileID: 404554593927829935, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.8666667
      value: {fileID: -4906457785067578182, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - time: 0.8833333
      value: {fileID: 423883466480865723, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    attribute: m_Sprite
    path: 
    classID: 212
    script: {fileID: 0}
  m_SampleRate: 60
  m_WrapMode: 0
  m_Bounds:
    m_Center: {x: 0, y: 0, z: 0}
    m_Extent: {x: 0, y: 0, z: 0}
  m_ClipBindingConstant:
    genericBindings:
    - serializedVersion: 2
      path: 0
      attribute: 0
      script: {fileID: 0}
      typeID: 212
      customType: 23
      isPPtrCurve: 1
    pptrCurveMapping:
    - {fileID: 1028554412710824610, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 8770337821196452605, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -478530073766021669, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 746662855887842566, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 7930036128909813800, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 1128255078774422026, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -4028077866212815098, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -3543938660656569840, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -5531168250382527491, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 1024244580606554049, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -3939982276282180439, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 1230322070027652441, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -4330988582189811724, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 8482282895084324922, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 2089641497648478256, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 1964294715045691463, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 1968909510626845067, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -3643246003113000918, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 7799004501529556184, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -8956768362819075929, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 3646164688782368145, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 4027785544202229449, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -5858931568564500820, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 642580427499525078, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -7249173427656586123, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 3749952422302323111, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 7134734347653491179, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -1386638072767002140, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -362633595069746197, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 5660215432936169201, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -6222230717414218814, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 3466878479963123204, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -4435005994839985195, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -5725759972188618104, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -7991504989427528491, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 6134622074428692512, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -888335213327878788, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -1267135896097771623, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 5996745832989700051, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 1261276160939360892, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 4318442449833461309, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 9216129932739184864, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 5536550400449473928, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -3186662486778852696, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 5209325513352368208, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 884150154000790199, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -1208839137451188001, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -7826335868054593182, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -79352130136498132, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -7128529209088838074, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 2298004941350445666, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 404554593927829935, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: -4906457785067578182, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
    - {fileID: 423883466480865723, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
  m_AnimationClipSettings:
    serializedVersion: 2
    m_AdditiveReferencePoseClip: {fileID: 0}
    m_AdditiveReferencePoseTime: 0
    m_StartTime: 0
    m_StopTime: 0.9
    m_OrientationOffsetY: 0
    m_Level: 0
    m_CycleOffset: 0
    m_HasAdditiveReferencePose: 0
    m_LoopTime: 1
    m_LoopBlend: 0
    m_LoopBlendOrientation: 0
    m_LoopBlendPositionY: 0
    m_LoopBlendPositionXZ: 0
    m_KeepOriginalOrientation: 0
    m_KeepOriginalPositionY: 1
    m_KeepOriginalPositionXZ: 0
    m_HeightFromFeet: 0
    m_Mirror: 0
  m_EditorCurves: []
  m_EulerEditorCurves: []
  m_HasGenericRootTransform: 0
  m_HasMotionFloatCurves: 0
  m_Events: []

フレイヤとロキのanimationファイルの内容はほとんどが同じものとなっていますが、21行目のcurve:と148行目のpptrCurveMapping:の下は大きく異なっています。つまりこの部分が「どのキャラクター素材を使うのか」、「切り分けた素材のどれを使うのか」、といった点を指定しているとわかります。

フレイヤ
- time: 0
value: {fileID: -641581088288083178, guid: 35f37c93cd6317a4ab94763c2ef1b9e0, type: 3}
- time: 0.016666668
value: {fileID: 2539848872382155094, guid: 35f37c93cd6317a4ab94763c2ef1b9e0, type: 3}

ロキ
- time: 0
value: {fileID: 1028554412710824610, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}
- time: 0.016666668
value: {fileID: 8770337821196452605, guid: 23849bd0d362c0b4d82b3de7e2d9ebb9, type: 3}

この2つに共通するのはFileIDのは違うがguidは同じということ。つまりguidが「どのキャラクター素材を使うのか」、FileIDが「切り分けた素材のどれを使うのか」を指定していると分かります。
これらのことから切り分けた0,1,2の素材を指定するFileIDとキャラクター素材をするguidを調査して0→1→2→1→0となるようにcurve:とpptrCurveMapping:を書き込むことで、Unityのanimation windowを使わずにanimationファイルを作成できると分かります。
切り分けた素材がどんなFileIDになるかは分からなかったため余計な文字が少ないpptrCurveMapping:の部分をコピペしてテキストファイルを作ります。
FileIDの変換方式が分かればテキストファイル作る必要ないのですが、調べてもわかりませんでした(´;ω;`)

作成したテキストファイル
FileID.txt
    - {fileID: -964861972627419651, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4601839220051827856, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1056826484694997815, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1158100502417944942, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 6943375991475072377, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 6862453240167101196, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 8277301849047400619, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 7321675060975734423, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -8886226170175040296, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -7315815190574178413, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1628973792630015623, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 2688058052847995457, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 5146300132090638205, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 8612103298388519002, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -3005837894321400390, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 4815336511862190452, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5864148461886379403, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4953666823269280629, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -311895720485211514, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5186902469381402330, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 7278491402254451532, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 8256032080180098766, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 6563074484271356680, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4215754394132753658, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 7497703085604861517, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -140951958587282892, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 2891272152236622026, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 503337006453547290, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -3615104126135534113, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -8262058837553664321, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 4689648869347632470, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -799649161100189917, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1787021197605773777, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5060247094520902029, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -7134795176709959434, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5950624716388236383, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4526010008668306558, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -6552007183038197407, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 5532814027816515702, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -8529415349653719219, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 8869316479295928225, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 3152178736222740502, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -2023549405097373126, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 3537821203643451822, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -6585872367576136451, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -4941201520790536638, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -3303184691673769200, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -18684483802693169, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 253898423026037340, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -8543913171838432685, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -2539205730421474931, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -5863792351164199999, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: -1833113814962414588, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}
    - {fileID: 7897757135273334916, guid: 0d4de27d4bf5f4240a663edf66ffaff2, type: 3}

このテキストファイルに余計な文字入れるとこの後バグるので気を付けてください

txtファイルからFileIDのみを取得

作成したテキストファイルからfileID:のみを抽出します。
抽出にはC#スクリプトを使用します。

FileID.cs
using System;
using System.IO;
using System.Text;

class FileID
{
    public String FileIDName = "";
    public void FileIDStart()
    {
        // 文字コードを指定
        Encoding enc = Encoding.GetEncoding("UTF-8");
        String path = CreateAnimeFile.path + "FileID.txt";//staticにしてあるpathとguid名取得
        String guid = CreateAnimeFile.guid;
        //ファイル読み込み
        StreamReader sr = new StreamReader(path, enc);
        //読み込むテキストを保存
        string str = sr.ReadToEnd();
        sr.Close();

        //消す文字
        const string TARGET1 = "    - {fileID: ";
        const string TARGET2 = ", guid: ";
        const string TARGET3 = ", type: 3}";

        // Replaceメソッドでguidなどを消してIDのみを残す
        str = str.Replace(guid, "");
        str = str.Replace(TARGET1, "");
        str = str.Replace(TARGET2, "");
        str = str.Replace(TARGET3, "");
        FileIDName = str;

        // テキストを書き込む
        StreamWriter file = new StreamWriter(path, false, enc);
        file.WriteLine(str);
        file.Close();
        Console.WriteLine("textファイルに書き込みました");
    }
}

やってることをざっくり言うとReplaceを使って余計な文字を消すことでfileIDのみをテキストファイルに残しています。

12行目のString pathのCreateAnimeFileは後でてきます。pathはテキストファイルがある場所を指定しています。

FileIDからAnimationを複数作成

おなじくC#スクリプトを使用してAnimationを作成しています。

CreateAnimeFile.cs
using System;
using System.IO;
using System.Text;

class CreateAnimeFile
{
    /**  
      <summary>
      書き換えるファイルがあるパス:適当に変える
      @ないとエラー吐く
      </summary>
      */
    public static String path = @"C:\Unity_Date\Animation\Assets\Animation\FreyaS\";
    /**  
    <summary>
    対象の画像のキャラクター名:作成するファイル名に使用:適当に変える
    数字を入れたいので上と分ける
    </summary>
   */
    public static String Filename = "FreyaS";
    /**  
    <summary>
    対象の画像のguid:適当に変える
    </summary>
   */
    public static String guid = "0d4de27d4bf5f4240a663edf66ffaff2";

    public void CreateAnimeFileStart()
    {
        // 文字コードを指定
        Encoding enc = Encoding.GetEncoding("UTF-8");
        //名前の後ろに入れる番号:増やしていく
        int FileNo = 0;
        //拡張子
        String extension = ".anim";
        //繰り返す回数:作成するアニメーションの数
        int AnimeCount = 18;
        //繰り返す回数:1つのファイルに入れるスプライトの数
        int returnCount = 5;
        //FileIDのみを抜き出したテキストファイルの生成
        FileID FileID = new FileID();//汎用性高そうなので別クラスで行う
        FileID.FileIDStart();
        //改行で区切るって配列化
        string[] lines = FileID.FileIDName.Split(new string[] { "\r\n" }, StringSplitOptions.None);
        //FileIDを管理する二次元リスト:多分切り分けたスプライトを指定している
        List<List<string>> FileIDlist = new List<List<string>>();
        for (int i = 0; i < lines.Length; i += 3)
        {//リストに入れる
            if (lines[i] == "") break;
            List<string> list1 = new List<string>();//リストの中にリストを作る
            Console.WriteLine(lines[i] + ":" + lines[i + 1] + ":" + lines[i + 1]);
            list1.Add(lines[i]);
            list1.Add(lines[i + 1]);
            list1.Add(lines[i + 2]);
            FileIDlist.Add(list1);
        }
        //animeファイル内容
        String File_Contents1 =
@"%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
";
        String File_Contents2 = @"  serializedVersion: 6
  m_Legacy: 0
  m_Compressed: 0
  m_UseHighQualityCurve: 1
  m_RotationCurves: []
  m_CompressedRotationCurves: []
  m_EulerCurves: []
  m_PositionCurves: []
  m_ScaleCurves: []
  m_FloatCurves: []
  m_PPtrCurves:
  - curve:
";
        String File_Contents3 = @"    attribute: m_Sprite
    path: 
    classID: 212
    script: {fileID: 0}
  m_SampleRate: 60
  m_WrapMode: 0
  m_Bounds:
    m_Center: {x: 0, y: 0, z: 0}
    m_Extent: {x: 0, y: 0, z: 0}
  m_ClipBindingConstant:
    genericBindings:
    - serializedVersion: 2
      path: 0
      attribute: 0
      script: {fileID: 0}
      typeID: 212
      customType: 23
      isPPtrCurve: 1
    pptrCurveMapping:
";
        String File_Contents4 = @" m_AnimationClipSettings:
    serializedVersion: 2
    m_AdditiveReferencePoseClip: {fileID: 0}
    m_AdditiveReferencePoseTime: 0
    m_StartTime: 0
    m_StopTime: 0.6
    m_OrientationOffsetY: 0
    m_Level: 0
    m_CycleOffset: 0
    m_HasAdditiveReferencePose: 0
    m_LoopTime: 1
    m_LoopBlend: 0
    m_LoopBlendOrientation: 0
    m_LoopBlendPositionY: 0
    m_LoopBlendPositionXZ: 0
    m_KeepOriginalOrientation: 0
    m_KeepOriginalPositionY: 1
    m_KeepOriginalPositionXZ: 0
    m_HeightFromFeet: 0
    m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []";

        for (int j = 0; j < AnimeCount; j++)
        {
            FileNo = j;
            StreamWriter anime = new StreamWriter(path + Filename + FileNo + extension, false, enc);
            //モーションの名前
            String ContentsFilename = "  m_Name: " + Filename + FileNo + "\r\n";//ファイル名と合わせる;
            //モーションの時間設定
            String curve = "";//スプライトの時間ポイントを指定
            float Time = 0;//スプライトを入れる時間:++0.25する
            for (int i = 0; i < returnCount; i++)
            {
                if (Time == 0)
                {//0.になるため場合分け
                    curve += "    - time: " + Time.ToString() + "\r\n";
                }
                else
                {
                    curve += "    - time: " + Time.ToString("F2").TrimEnd('0') + "\r\n";//文末の0を取る設定
                }
                //0→1→2→1→0の順番でスプライトを設定するための場合分け:素材によって書き換える必要あり
                if (i == 0) curve += "      value: { fileID: " + FileIDlist[j][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
                if (i == 1) curve += "      value: { fileID: " + FileIDlist[j][1] + ", guid: " + guid + ", type: 3}" + "\r\n";
                if (i == 2) curve += "      value: { fileID: " + FileIDlist[j][2] + ", guid: " + guid + ", type: 3}" + "\r\n";
                if (i == 3) curve += "      value: { fileID: " + FileIDlist[j][1] + ", guid: " + guid + ", type: 3}" + "\r\n";
                if (i == 4) curve += "      value: { fileID: " + FileIDlist[j][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
                Time += 0.25f;
            }
            //pptrCurveMappingの作成
            String pptrCurveMapping = "";//上のcurveと同じ物を多分入れないとならない
            for (int i = 0; i < returnCount; i++)
            {
                if (i == 1) pptrCurveMapping += "    - {fileID: " + FileIDlist[j][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
                if (i == 1) pptrCurveMapping += "    - {fileID: " + FileIDlist[j][1] + ", guid: " + guid + ", type: 3}" + "\r\n";
                if (i == 2) pptrCurveMapping += "    - {fileID: " + FileIDlist[j][2] + ", guid: " + guid + ", type: 3}" + "\r\n";
                if (i == 3) pptrCurveMapping += "    - {fileID: " + FileIDlist[j][1] + ", guid: " + guid + ", type: 3}" + "\r\n";
                if (i == 4) pptrCurveMapping += "    - {fileID: " + FileIDlist[j][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
            }
            // テキストを書き込む
            anime.WriteLine(File_Contents1 + ContentsFilename + File_Contents2 + curve + File_Contents3 + pptrCurveMapping + File_Contents4);
            // ファイルを閉じる
            anime.Close();
        }
        Console.WriteLine("animファイルに書き込みました");

        //倒れこみと起き上がるモーションの作成
        StreamWriter collapse = new StreamWriter(path + Filename + "Collapse" + extension, false, enc);
        StreamWriter getup = new StreamWriter(path + Filename + "Getup" + extension, false, enc);
        //モーションの名前
        String collapseFilename = "  m_Name: " + Filename + "Collapse" + "\r\n";
        String getupFilename = "  m_Name: " + Filename + "Getup" + "\r\n";
        //curveの作成
        string collapsecurve = "";
        string getupcurve = "";
        String curve1 = "    - time: " + 0 + "\r\n";//1つ目の時間
        collapsecurve += curve1; getupcurve += curve1;
        collapsecurve += "      value: { fileID: " + FileIDlist[6][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        getupcurve += "      value: { fileID: " + FileIDlist[17][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        String curve2 = "    - time: " + 0.25 + "\r\n";//2つ目の時間
        collapsecurve += curve2; getupcurve += curve2;
        collapsecurve += "      value: { fileID: " + FileIDlist[14][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        getupcurve += "      value: { fileID: " + FileIDlist[14][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        String curve3 = "    - time: " + 0.5 + "\r\n";//3つ目の時間
        collapsecurve += curve3; getupcurve += curve3;
        collapsecurve += "      value: { fileID: " + FileIDlist[17][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        getupcurve += "      value: { fileID: " + FileIDlist[0][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        //pptrCurveMappingの
        string collapsepptrCurveMapping = "";
        string getuppptrCurveMapping = "";
        collapsepptrCurveMapping += "    - {fileID: " + FileIDlist[6][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        collapsepptrCurveMapping += "    - {fileID: " + FileIDlist[14][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        collapsepptrCurveMapping += "    - {fileID: " + FileIDlist[17][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        getuppptrCurveMapping += "    - {fileID: " + FileIDlist[17][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        getuppptrCurveMapping += "    - {fileID: " + FileIDlist[14][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        getuppptrCurveMapping += "    - {fileID: " + FileIDlist[0][0] + ", guid: " + guid + ", type: 3}" + "\r\n";
        //ファイルの書き込み
        collapse.WriteLine(File_Contents1 + collapseFilename + File_Contents2 + collapsecurve + File_Contents3 + collapsepptrCurveMapping + File_Contents4);
        getup.WriteLine(File_Contents1 + getupFilename + File_Contents2 + getupcurve + File_Contents3 + getuppptrCurveMapping + File_Contents4);
        // ファイルを閉じる
        collapse.Close(); getup.Close();
    }
}

上記はStreamWriterで.animファイルを作成し、適宜書き込むスクリプトとなっております。

これらのスクリプトはUnityではなくローカルにC#のコンパイル環境を作って実行するものとなっております。

実行

CreateAnimeFile.csを実行すると20個のanimationを作成できます。

内訳
素材の数54÷3=18
18+立ち上がりと倒れこむアニメーション=20

作成したanimationをAnimator Controllerに入れることで完成です。
スクリーンショット 2023-03-10 205416.png
animation windowで確認で再生ができます。
スクリーンショット 2023-03-10 210232.png

作成したモーション
0.待機
1.攻撃
2.キック?(静止)
3.用途不明(静止)
4.歩く?
5.ジャンプ?
6.被ダメモーション?(静止)
7.つかみ?押す?
8.膝をつく(静止)
9.ガード?押す?(静止)
10.ガードブレイク?
11.膝をつく(><顔)(静止)
12. 被ダメモーション?(><顔)(静止)
13.持ちながら歩く?
14. 膝をつく
15.キック?
16.右手を上げる(強攻撃?)
17.倒れる(静止)
Collapse.倒れこむ
Getup.起き上がる

まとめ

今回はスプライトの素材から自動でanimationファイルを作成してみました。
完全に自動化はできませんでしたが、C#スクリプトである程度自動化に成功しました。
この記事がどなたかの助けとなれば幸いです。

注意点
この記事のスクリプトはゆるドラシル素材のためのスクリプトとなっているため、素材などによってループ回数など調整する必要があります

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?