feature req: translation export list of translations made. #51

Closed
opened 2024-02-24 13:15:22 +00:00 by Ghost · 11 comments
Ghost commented 2024-02-24 13:15:22 +00:00 (Migrated from git.disroot.org)

Reposted from here: https://github.com/absolute-quantum/cats-blender-plugin/issues/665

So. If one translates blend shapes, animations which make use of it will be broken. Its not too hard to fix manually,
but it would be nice if, after hitting the 'translate' button, it would also export a list of translations made, maybe
something like a csv file similar to the below:

mesh/object,original,translated
Body,まばたき,Blink

and so on so one could more easily 'translate' the animations you may have.

Reposted from here: https://github.com/absolute-quantum/cats-blender-plugin/issues/665 So. If one translates blend shapes, animations which make use of it will be broken. Its not too hard to fix manually, but it would be nice if, after hitting the 'translate' button, it would also export a list of translations made, maybe something like a csv file similar to the below: ```csv mesh/object,original,translated Body,まばたき,Blink ``` and so on so one could more easily 'translate' the animations you may have.
Ghost commented 2024-02-24 15:52:51 +00:00 (Migrated from git.disroot.org)

Ok when you say aminations do you mean aminations in Blender or Unity are broken?

Adding this system could make translations take even longer, in fact I not sure how I would add this into the current translation system, however I am planning on cleaning the translation system up which I hope will improve the speed of translations, so I may try and add this in when I do that.

At the moment in time I will put this on a maybe unto I take a proper look at the translation system in cats. I got to be honest, it's one of the few systems in cats that I not touched yet as it's a kinda of a bigger task.

Ok when you say aminations do you mean aminations in Blender or Unity are broken? Adding this system could make translations take even longer, in fact I not sure how I would add this into the current translation system, however I am planning on cleaning the translation system up which I hope will improve the speed of translations, so I may try and add this in when I do that. At the moment in time I will put this on a maybe unto I take a proper look at the translation system in cats. I got to be honest, it's one of the few systems in cats that I not touched yet as it's a kinda of a bigger task.
Ghost commented 2024-02-24 23:07:54 +00:00 (Migrated from git.disroot.org)

as in, .anim files one uses in unity. they're text yaml; attached is one of them (very simple). One minor nit is the attribute which shows the blend shape name is encoded using unicode escapes like blendShape.\u53E3_\u4E0B

Given a csv/similar and a small amount of python or even bash one could easily do some sed-like operations on all the animation files and be done with it quick fast and in a hurry.

%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: "0Emote\u307B\u306B\u3083"
  serializedVersion: 6
  m_Legacy: 0
  m_Compressed: 0
  m_UseHighQualityCurve: 1
  m_RotationCurves: []
  m_CompressedRotationCurves: []
  m_EulerCurves: []
  m_PositionCurves: []
  m_ScaleCurves: []
  m_FloatCurves:
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u7167\u308C"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 54.6
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u7A4F\u3084\u304B_\u76EE"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u306B\u3063\u3053\u308A"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u3048"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u306A\u3054\u307F"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u03C9"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 61.3
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u53E3_\u4E0B"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u4E0B"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: Infinity
        outSlope: Infinity
        tangentMode: 103
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: useBlinkBlendshapes
    path: 
    classID: 114
    script: {fileID: 11500000, guid: e197bf28ecd22dd4ea1528dbc81dfe70, type: 3}
  m_PPtrCurves: []
  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: 3525843105
      script: {fileID: 11500000, guid: e197bf28ecd22dd4ea1528dbc81dfe70, type: 3}
      typeID: 114
      customType: 0
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2270107833
      attribute: 1428606972
      script: {fileID: 0}
      typeID: 137
      customType: 20
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2270107833
      attribute: 592780099
      script: {fileID: 0}
      typeID: 137
      customType: 20
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2270107833
      attribute: 1438629341
      script: {fileID: 0}
      typeID: 137
      customType: 20
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2270107833
      attribute: 2501776883
      script: {fileID: 0}
      typeID: 137
      customType: 20
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2270107833
      attribute: 1701728247
      script: {fileID: 0}
      typeID: 137
      customType: 20
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2270107833
      attribute: 2581586682
      script: {fileID: 0}
      typeID: 137
      customType: 20
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2270107833
      attribute: 2137394197
      script: {fileID: 0}
      typeID: 137
      customType: 20
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2270107833
      attribute: 131915638
      script: {fileID: 0}
      typeID: 137
      customType: 20
      isPPtrCurve: 0
    pptrCurveMapping: []
  m_AnimationClipSettings:
    serializedVersion: 2
    m_AdditiveReferencePoseClip: {fileID: 0}
    m_AdditiveReferencePoseTime: 0
    m_StartTime: 0
    m_StopTime: 0
    m_OrientationOffsetY: 0
    m_Level: 0
    m_CycleOffset: 0
    m_HasAdditiveReferencePose: 0
    m_LoopTime: 0
    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:
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u7167\u308C"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 54.6
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u7A4F\u3084\u304B_\u76EE"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u306B\u3063\u3053\u308A"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u3048"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u306A\u3054\u307F"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u03C9"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 61.3
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u53E3_\u4E0B"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 100
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: "blendShape.\u4E0B"
    path: Body
    classID: 137
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: Infinity
        outSlope: Infinity
        tangentMode: 103
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: useBlinkBlendshapes
    path: 
    classID: 114
    script: {fileID: 11500000, guid: e197bf28ecd22dd4ea1528dbc81dfe70, type: 3}
  m_EulerEditorCurves: []
  m_HasGenericRootTransform: 0
  m_HasMotionFloatCurves: 0
  m_Events: []
as in, .anim files one uses in unity. they're text yaml; attached is one of them (very simple). One minor nit is the attribute which shows the blend shape name is encoded using unicode escapes like `blendShape.\u53E3_\u4E0B` Given a csv/similar and a small amount of python or even bash one could easily do some sed-like operations on all the animation files and be done with it quick fast and in a hurry. ```yaml %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: "0Emote\u307B\u306B\u3083" serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 m_UseHighQualityCurve: 1 m_RotationCurves: [] m_CompressedRotationCurves: [] m_EulerCurves: [] m_PositionCurves: [] m_ScaleCurves: [] m_FloatCurves: - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u7167\u308C" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 54.6 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u7A4F\u3084\u304B_\u76EE" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u306B\u3063\u3053\u308A" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u3048" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u306A\u3054\u307F" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u03C9" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 61.3 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u53E3_\u4E0B" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u4E0B" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 0 inSlope: Infinity outSlope: Infinity tangentMode: 103 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: useBlinkBlendshapes path: classID: 114 script: {fileID: 11500000, guid: e197bf28ecd22dd4ea1528dbc81dfe70, type: 3} m_PPtrCurves: [] 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: 3525843105 script: {fileID: 11500000, guid: e197bf28ecd22dd4ea1528dbc81dfe70, type: 3} typeID: 114 customType: 0 isPPtrCurve: 0 - serializedVersion: 2 path: 2270107833 attribute: 1428606972 script: {fileID: 0} typeID: 137 customType: 20 isPPtrCurve: 0 - serializedVersion: 2 path: 2270107833 attribute: 592780099 script: {fileID: 0} typeID: 137 customType: 20 isPPtrCurve: 0 - serializedVersion: 2 path: 2270107833 attribute: 1438629341 script: {fileID: 0} typeID: 137 customType: 20 isPPtrCurve: 0 - serializedVersion: 2 path: 2270107833 attribute: 2501776883 script: {fileID: 0} typeID: 137 customType: 20 isPPtrCurve: 0 - serializedVersion: 2 path: 2270107833 attribute: 1701728247 script: {fileID: 0} typeID: 137 customType: 20 isPPtrCurve: 0 - serializedVersion: 2 path: 2270107833 attribute: 2581586682 script: {fileID: 0} typeID: 137 customType: 20 isPPtrCurve: 0 - serializedVersion: 2 path: 2270107833 attribute: 2137394197 script: {fileID: 0} typeID: 137 customType: 20 isPPtrCurve: 0 - serializedVersion: 2 path: 2270107833 attribute: 131915638 script: {fileID: 0} typeID: 137 customType: 20 isPPtrCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 m_StopTime: 0 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 m_LoopTime: 0 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: - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u7167\u308C" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 54.6 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u7A4F\u3084\u304B_\u76EE" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u306B\u3063\u3053\u308A" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u3048" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u306A\u3054\u307F" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u03C9" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 61.3 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u53E3_\u4E0B" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 100 inSlope: 0 outSlope: 0 tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: "blendShape.\u4E0B" path: Body classID: 137 script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 value: 0 inSlope: Infinity outSlope: Infinity tangentMode: 103 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 attribute: useBlinkBlendshapes path: classID: 114 script: {fileID: 11500000, guid: e197bf28ecd22dd4ea1528dbc81dfe70, type: 3} m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 m_Events: [] ```
Ghost commented 2024-02-24 23:34:45 +00:00 (Migrated from git.disroot.org)

Ok I get ya.

Let me look at the current code properly and I get back to you here.

Ok I get ya. Let me look at the current code properly and I get back to you here.
Ghost commented 2024-02-25 00:03:37 +00:00 (Migrated from git.disroot.org)

Hey there!

Just to let you know that exporting a csv with what you want is possible with the current translate system, I have a working proptotype which i kinda just bolted on however I want to do this correctly so this is what going to happen.

1: There will be a new setting in settings and updates which will be called "Export CSV file of translations fior shapekys"
2: This will be off by default to prevent this from generating for everyone.
3: If enabled it will export a CSV file of translations to your Documents/cats/shapekeys.csv

I hope to have this on the 3.6 dev branch in the next hour or so.

Hey there! Just to let you know that exporting a csv with what you want is possible with the current translate system, I have a working proptotype which i kinda just bolted on however I want to do this correctly so this is what going to happen. 1: There will be a new setting in settings and updates which will be called "Export CSV file of translations fior shapekys" 2: This will be off by default to prevent this from generating for everyone. 3: If enabled it will export a CSV file of translations to your Documents/cats/shapekeys.csv I hope to have this on the 3.6 dev branch in the next hour or so.
Ghost commented 2024-02-25 01:39:57 +00:00 (Migrated from git.disroot.org)

Update is now live in version 3.6 dev, feel free to test it out.

A 4.0 dev branch update is soon to follow.

Please note this won't be pushed to stable/ release for abit though and will only be in the dev branches for the time being.

Update is now live in version 3.6 dev, feel free to test it out. A 4.0 dev branch update is soon to follow. Please note this won't be pushed to stable/ release for abit though and will only be in the dev branches for the time being.
Ghost commented 2024-02-25 01:55:24 +00:00 (Migrated from git.disroot.org)

Update is now live on 3.6, 4.0 and 4.1 dev branch. Let me know what you think!

To re-cap

1: There is a new setting in settings & updates which will be called "Export Shape Keys Translations CSV"
2: This will be off by default to prevent this from generating for everyone, so turn it on for it to work.
3: If enabled it will export a CSV file of translations for shape keys to your Documents/cats/shapekeys.csv

Update is now live on 3.6, 4.0 and 4.1 dev branch. Let me know what you think! To re-cap 1: There is a new setting in settings & updates which will be called "Export Shape Keys Translations CSV" 2: This will be off by default to prevent this from generating for everyone, so turn it on for it to work. 3: If enabled it will export a CSV file of translations for shape keys to your Documents/cats/shapekeys.csv
Ghost commented 2024-02-25 16:20:31 +00:00 (Migrated from git.disroot.org)

Very nice; however, it'd maybe be nice to have the file be named per blend, so like, AvatarName.blend->AvatarName.csv, to prevent accidental clobbering.

Very nice; however, it'd maybe be nice to have the file be named per blend, so like, AvatarName.blend->AvatarName.csv, to prevent accidental clobbering.
Ghost commented 2024-02-25 21:06:44 +00:00 (Migrated from git.disroot.org)

Should be doable, I add it tomorrow.

Should be doable, I add it tomorrow.
Ghost commented 2024-02-26 14:31:00 +00:00 (Migrated from git.disroot.org)

The above has been done.

When exporting translations to csv for shapekeys it will save as the current blend file name, if there isn't a save file it will error out asking the user to save the blend file. If the option is disabled translations will work regardless of the file being saved or not.

The above has been done. When exporting translations to csv for shapekeys it will save as the current blend file name, if there isn't a save file it will error out asking the user to save the blend file. If the option is disabled translations will work regardless of the file being saved or not.
Ghost commented 2024-02-28 13:52:40 +00:00 (Migrated from git.disroot.org)

Quite good :)

Quite good :)
Ghost commented 2024-03-01 01:39:12 +00:00 (Migrated from git.disroot.org)

This has now been released into version 3.6.6.3 for Blender 3.6 and version 4.0.4.2 for Blender 4.0.

Closed this request, if there anything else to do with this request feel free to re-open.

Thanks!

This has now been released into version 3.6.6.3 for Blender 3.6 and version 4.0.4.2 for Blender 4.0. Closed this request, if there anything else to do with this request feel free to re-open. Thanks!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Kneelawk/Cats-Blender-Plugin#51
No description provided.