Final IK丨(一)简介及关键脚本 FullBodyBipedIK 讲解

一、术语解释

正向运动力学:

通过改变父节点,子节点随之自然而然改变,为正向运动学。

反向运动学 IK :

通过设定某关节状态,其父节点经过计算发生改变。这是反向运动学。比如用在脚接触不同地面,自动计算身体状态,就比较实用。

 

 

二、预览查看效果

1、导入Final IK SDK,导入人形模型

2、给人形模型根节点添加 FullBodyBipedIK 脚本

3、设置该脚本的左手权重为1,在Scene视图会看到蓝色方块,运行游戏,拖动它即可看到效果。

 

 

三、FullBodyBipedIK 属性讲解

1、全局属性

FixTransform:刷新IK位置(在不勾选Animator和该选项时,人物像太空运动。)

 

Reference:里面为骨骼节点,示例作用,你可以获取该节点上的碰撞,作为枪击判断等

Weight:权重,该地方权重为整体权重。

Iterations:更新其他节点的频率。当你不用时就可改为0,这样拖动手,只有手动,胳膊身体等就不跟着刷新去运动了。

 

2、Body

UseThighs:使用大腿肌肉,默认勾选,运动会缓冲更柔和。不勾选和勾选效果如下:

Mapping:

Spine:是腹部(胸腔)那一块位置。权重应为1,这样旋转拉伸时,胸腹会跟着身体动,胸腹不会因为其他位置变化而变形了。

MaintainHeadRot:头部默认动画占的权重。当为0时,头部不跟着其他位置动,保持原动画。1时,很柔和了

 

3、Arm

 Chain:

pull:左右手,一个在前,一个在后(向前向后都到极限,类似伸直手臂状态)。身体在中间。谁的Pull越大,整个身体越拉向谁(当然会跟着变形匹配动作),接近谁。

Reach:左右手,一个在前,一个在后(向前向后都到极限,类似伸直手臂状态)。胸腔部分在中间。谁的Reach越大,胸腔越拉向谁,接近谁。

Push:左右手,一个在前,一个在后(蜷缩着手臂,类似冷,螳螂手半缩在胸前一样)。胸腔部分在中间。谁的Push越大,身体就被推向后方

Smoothing:平滑运动的方式 

BendGoal:手肘(大臂和小臂关节处)外翻朝向。新建一个空物体,赋值给它。控制这个空物体的位置,手肘指向这个位置。

MappingWeight:父骨骼权重。默认1,当为0时,拖动手,胳膊不会反向计算运动,只会笔直运动,身体其他位置会计算运动。

MaintainHandRot:手部默认动画占的权重。当为0时,全由IK计算动画,很柔和。当为1时,是默认动画(前提胳膊处的权重要为0)   有点暴力。。。

 

 

四、代码控制

参考:FinalIK官网Full Body Biped IK

1、总权重:

GetComponent<FullBodyBipedIK>().solver.SetIKPositionWeight(1);

2、权重:Pull、Reach:设置左右Arm、左右腿

GetComponent<FullBodyBipedIK>().solver.SetChainWeights(FullBodyBipedChain.LeftArm,1, 1);

3、权重:Body位置、左右手、脚、肩膀、大腿Thigh

GetComponent<FullBodyBipedIK>().solver.SetEffectorWeights(FullBodyBipedEffector.Body,1, 1);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值