动画面板:新增两个动画测试按钮 + 把动画模型 API 全部落进对照表
## 功能(面板源码,重启后仍在)
- 新增 AnimationTools:
- Animate Random Props:随机骨骼/插槽/附件 → ani_api_test
旋转 0°→90°、位移 (0,0)→(120,-60)、缩放 (1,1)→(1.6,0.6)、斜切 (0,0)→(25,15)
插槽颜色 (1,1,1,1)→(1,0.2,0.2,0.25)、附件 显示→隐藏;全部只在 0f/30f
- Curve Test 6 Modes:curve_test,6 根骨骼各一条旋转轴(0°→45°,0f/30f),
分别 linear / curve 平滑(0.25,0,0.75,1) / stepped / ease-in(0.42,0,1,1) /
ease-out(0,0,0.58,1) / 对称自动(0.25,0.25,0.75,0.75)
- ObjectPanel.build 里挂载这两个按钮,复用面板自己的 wire() 点击轮询
## 对照表(tools/deobf/anchors.tsv + 混淆名对照表.md 第十一节)
- GP.I=animations、GP.D:LFT;.D:F=fps、Gl=动画(name/skeleton/timelineGroups/register)
- Gl.D/B/L/I(Gp)=旋转/位移/缩放/斜切;Gl.D/B(Gp,GU)=插槽颜色/附件;Gl.D()=绘制顺序
- FH=组;FI=时间轴(runtimeTimelineClass、keys、findKey、insertKey、invalidateRuntime)
- FN=关键帧(time、curve、c2x/c2y/c3x/c3y、setAngle/setX/setY、Color、Gn)
- FV=曲线枚举(linear/curve/stepped;'自动'=curve+控制值)
- 踩坑记录:
* 关键帧数值写在 FN.D()/B()/L() 的 float 字段,**不是** FN.D():ga(ga 是 deform 的),
否则会出现'有帧但运行时不变'
* 编辑器时间轴刻度就是**帧**,关键帧时间写 0/30,不要按 1 秒=30 帧换算
* FI.D(float,int) 建帧要求时间轴已有关键帧(先有鸡问题)
* fI.removeRange 两个 (int,int) 重载都不缩容 → 清空动画直接换新 fI
names.tsv 合并成 380 条,payload-named.zip 重产(7271 处成员引用)。
验证:全部在运行中的编辑器里逐条读回(时间轴/关键帧/曲线枚举/控制值),
重启后 pid 94663 单实例,日志确认 '[animtool] 两个动画按钮已加入'。
This commit is contained in:
1 parent
8df990a058
commit
6580611012
5 files changed
+583
No files matched your search
@@ -339,6 +339,83 @@ com.spineview.SceneObjects listAllNodes (Ljava/lang/ClassLoader;)Ljava/util/List
|
||||
com.spineview.SceneActions delete (Ljava/lang/ClassLoader;Ljava/lang/Object;)Z delete
|
||||
# ^ 面板自己的"罗列场景对象 / 删除对象"(走编辑器删除流程,自带撤销)——清理误建对象时用它
|
||||
|
||||
# ============================================================================
|
||||
# 【动画模型】(2026-10-17 实测:新建 Gl / 4 条骨骼轴 / 2 条插槽轴 / 关键帧 / 6 种曲线均跑通并读回验证)
|
||||
# ============================================================================
|
||||
|
||||
# ---- 骨架上的动画表与 fps ----
|
||||
GP I LfI animations
|
||||
# ^ 骨架的动画表(fI,元素是 Gl)。新建动画 = new Gl() → 设 D:LGP、D:String → Gl.D() 注册 → animations.add(gl)
|
||||
GP D LFT; projectSettings
|
||||
FT D F fps
|
||||
# ^ 本项目 fps=30(编辑器时间轴刻度直接用帧:关键帧时间写 0 和 30,不要换算成秒)
|
||||
|
||||
# ---- Gl = 动画 ----
|
||||
Gl D LGP; skeleton
|
||||
Gl D Ljava/lang/String; name
|
||||
Gl D LfI timelineGroups
|
||||
# ^ 时间轴组表(FH)。清空动画:直接换一个新的空 fI(removeRange 两个重载实测都不缩容)
|
||||
Gl D ()V register
|
||||
# ^ 把动画注册进骨架的动画列表模型(编辑器 New Animation 命令里就是这么做的)
|
||||
Gl D (LGp;)LFI; rotateTimeline
|
||||
Gl B (LGp;)LFI; translateTimeline
|
||||
Gl L (LGp;)LFI; scaleTimeline
|
||||
Gl I (LGp;)LFI; shearTimeline
|
||||
# ^ 骨骼四条轴(取或建):运行时类分别是 ih / io / ii / ij
|
||||
Gl D (LGp;LGU;)LFI; slotColorTimeline
|
||||
Gl B (LGp;LGU;)LFI; slotAttachmentTimeline
|
||||
# ^ 插槽两条轴:hU / ip
|
||||
Gl D ()LFI; drawOrderTimeline
|
||||
# ^ 骨架级绘制顺序轴(hZ)
|
||||
|
||||
# ---- FH = 时间轴组(按对象分组)----
|
||||
FH D LGl; animation
|
||||
FH D LGp; bone
|
||||
FH D LfI timelines
|
||||
|
||||
# ---- FI = 时间轴 ----
|
||||
FI D Ljava/lang/Class; runtimeTimelineClass
|
||||
# ^ 运行时轴类:ih=Rotate(旋转) io=Translate(位移) ii=Scale(缩放) ij=Shear(斜切)
|
||||
# hU=SlotColor(插槽颜色) ip=SlotAttachment(附件切换) hZ=DrawOrder(绘制顺序)
|
||||
FI D LfI keys
|
||||
FI D (F)LFN; findKey
|
||||
# ^ 按时间精确找关键帧;找不到返回 null
|
||||
FI D (LFN;Z)V insertKey
|
||||
# ^ 插入关键帧(第二参=是否记撤销)
|
||||
FI L ()V invalidateRuntime
|
||||
# ^ 标脏运行时轴(改完关键帧调它,让编辑器重建 il)
|
||||
FI D (FI;LFH;)V copyFrom
|
||||
|
||||
# ---- FN = 关键帧(数值字段以动画 JSON 导出器为准)----
|
||||
FN D F time
|
||||
FN D LFV; curve
|
||||
# ^ 曲线类型;FV 枚举见下
|
||||
FN B F curveC2x
|
||||
FN L F curveC2y
|
||||
FN I F curveC3x
|
||||
FN S F curveC3y
|
||||
# ^ 贝塞尔四个控制值(新建关键帧默认 0.25 / 0 / 0.75 / 1)
|
||||
FN D (F)V setAngle
|
||||
FN D ()F getAngle
|
||||
# ^ 旋转轴的 angle(**不是** FN.D():ga!ga 是 deform 的数值数组)
|
||||
FN B (F)V setX
|
||||
FN B ()F getX
|
||||
FN L (F)V setY
|
||||
FN L ()F getY
|
||||
# ^ 位移/缩放/斜切轴的 x / y
|
||||
FN D Lcom/badlogic/gdx/graphics/Color; color
|
||||
FN D LGn; attachment
|
||||
# ^ 插槽颜色 / 挂哪个附件(null = 隐藏)
|
||||
FN D LOr; valueSchema
|
||||
FN D ()Lga; values
|
||||
# ^ deform 用的数值数组(旋转/位移/缩放/斜切**不要**写这里)
|
||||
|
||||
# ---- FV = 曲线枚举(名字来自 FV.<clinit>)----
|
||||
FV D LFV; linear
|
||||
FV B LFV; curve
|
||||
FV L LFV; stepped
|
||||
# ^ 依次是 linear / curve(贝塞尔) / stepped;"自动"= curve + 一组控制值(如 0.25,0.25,0.75,0.75)
|
||||
|
||||
# ---- WidgetGroup 的尺寸读取(本次用来把对话框撑到合适大小)----
|
||||
eX LineNumberTable ()F getMinWidth
|
||||
eX String ()F getMinHeight
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 41 and column 97.
|
Reference in new issue
Block a user