ogre-doll-kit
v0.1.3
Published
关节式切件骨架成品包(酒鬼巨汉):肩肘腕/髋膝踝三层骨骼,idle/walk/run/attack/jump 五个动作,Cocos Creator 3.8。npm 装包后跑 ogre-doll-sync 把资源同步进工程 assets/resources/。
Readme
ogre-doll 关节式骨架包
酒鬼巨汉:14 件切件,肩→肘→腕、髋→膝→踝三层骨骼链,5 个动作(idle walk run attack jump)。
零外部依赖——动作是 Cocos 原生 cc.AnimationClip,运行时一个 OgreDoll 组件必挂,OgreDollFx(拳风)和 OgreDollGhost(残影)可选。
由骨架仓库 RIG=ogre python3 tools/pack-kit.py 打出,skins.ts 是生成物,别手改。
运行时脚本和 hero-doll-kit 是同一份代码、类名加了前缀,两个包装进同一个工程不撞 @ccclass。
接入(Cocos Creator 3.8)
npm i ogre-doll-kit
npx ogre-doll-sync # 同步进 assets/resources/ogre-doll/或者整个 ogre-doll/ 文件夹连 .meta 一起拷进目标工程的 assets/resources/。
- 把
ogre-doll.prefab拖进场景(或instantiate); - 根节点挂
OgreDoll组件; - 代码:
const doll = node.getComponent(OgreDoll);
doll.play('walk'); // idle / walk / run 循环,attack / jump 一次性
doll.crossFade('attack', 0.1);
doll.bone('arm-front-lower'); // 任意一根骨,含 upper/lower 两节
doll.slot('weapon'); // 前手腕下的附件槽(酒坛可以挂这儿)
doll.setIK('foot-front', target); // 只挪末端骨,不解肘膝
node.on(OgreDoll.EVENT, (name, clip, payload) => {}); // footstep / hit / land- 想要直拳的拳风:根节点再挂一个
OgreDollFx,和OgreDoll并排。它听hit帧事件,在前手的weapon槽前方甩一道三帧特效(贴图在fx/light/01/)。不挂就没有特效,零开销。 面板上能调:fxKey用哪套图、fxWidth屏幕上多宽(默认 50 px)、fxOffset前伸多远、clips只对哪些剪辑生效(留空 = 所有带 hit 的剪辑)、fxParent特效挂到哪个节点下 (不设 = 角色的父节点,甩出去后不跟着角色走)。想挂伤害判定:node.on('slash', (fxNode, dir) => {})。 - 想要残影:再挂
OgreDollGhost,每帧gh.step(该不该留影, dt)。
角色朝右(素材如此,和朝左的 hero-doll 相反),往左走把角色节点(预制体的父节点)scale.x 取负,
特效会跟着翻(它读的是世界缩放)。
骨骼名:body head arm-{front,back}-{upper,lower} hand-{front,back}
leg-{front,back}-{upper,lower} foot-{front,back}。
★贴图和预制体的 .meta 是脚本生成的(子资源 id 6c48a/f9941 是 Creator 的固定值),
不是 Creator 导出的。首次导入请看一眼预制体里贴图有没有掉——掉了就是这条假设不成立,
在工程里导入一次 parts/*.png 再把 .meta 拿回仓库 ogre/cocos/。
