Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标

书接上文《Blender图解教程:马里奥食人花三部曲(二)骨骼绑定和动画》,这一回我们将进入Godot游戏引擎,完成最关键的部分,当目标(马里奥)接近食人花,食人花可以根据目标的位置进行捕食

下集预告

先放个下集预告
Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第1张图片

效果图

这才是本章节的效果图

Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第2张图片

文章目录

      • 下集预告
      • 效果图
      • 步骤
        • 1. 模型导入Godot Engine
        • 2. 构造场景
        • 3. 设置SkeletonIK
        • 4. 测试
        • 5. 运行时实现

步骤

1. 模型导入Godot Engine

将从blender导出的“piranhaflower.gltf”导入Godot,并按照《Blender图解教程:导出glTF骨骼动画到Godot引擎的流程与注意事项》所述,生成tscn场景以后,其场景树如下:

Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第3张图片

老王出于强迫症,把两个“piranhaflower”节点重新名了下名,这不是必须的

Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第4张图片

选择AnimationPlayer对动画片段做如下设置:

  • Idle设置为默认动画,并且设置循环
  • Attack设置为循环

2. 构造场景

  • 为"Skeleton"节点添加一个SkeletonIK子节点。
  • 为“PiranhaFlower”节点添加一个Position3D子节点,并更名为“Target”
    Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第5张图片

3. 设置SkeletonIK

SkeletonIK节点:

  • 必须是Skeleton的子节点。
  • 它直接继承于Node所以是2D/3D通用的节点。
  • SkeletonIK实际就是在Skeleton上定义了一个IK链。

设置SkeletonIK属性时需要参考上一节的骨架结构,如下:
Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第6张图片

Root Bone是IK链的根部。
Tip Bone是IK链的顶部。
Interpolation是插值系数,决定着从当前位置到完全IK位置的速度。
Target Node是目标节点,这里我们将它设为场景中的"Target"节点。
Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第7张图片

4. 测试

测试一下:

我们先手动把"Target"摆放到食人花的前面
Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第8张图片

选择“SkeletonIK”,然后点击播放IK

Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第9张图片

Godot Engine:马里奥食人花三部曲(三)用SkeletonIK实现食人花捕食目标_第10张图片

5. 运行时实现

Created with Raphaël 2.2.0 Idle动画 马里奥接近? Hold动画 停顿一段时间,给目标逃跑的时间 获取实际目标位置,并设置Target位置 Attack动画 捕捉成功? 结束 yes yes

SkeletonIK的相关方法

start ( bool one_time=false ) 开启IK
stop ( ) 停止IK

你可能感兴趣的:(#,Godot,实践,老王的游戏开发教程,Godot笔记)