Godot Engine:馬里奧食人花三部曲(三)用SkeletonIK實現食人花捕食目標

書接上文《Blender圖解教程:馬里奧食人花三部曲(二)骨骼綁定和動畫》,這一回我們將進入Godot遊戲引擎,完成最關鍵的部分,當目標(馬里奧)接近食人花,食人花可以根據目標的位置進行捕食

下集預告

先放個下集預告
在這裏插入圖片描述

效果圖

這纔是本章節的效果圖

在這裏插入圖片描述

步驟

1. 模型導入Godot Engine

將從blender導出的“piranhaflower.gltf”導入Godot,並按照《Blender圖解教程:導出glTF骨骼動畫到Godot引擎的流程與注意事項》所述,生成tscn場景以後,其場景樹如下:

在這裏插入圖片描述

老王出於強迫症,把兩個“piranhaflower”節點重新名了下名,這不是必須的

在這裏插入圖片描述

選擇AnimationPlayer對動畫片段做如下設置:

  • Idle設置爲默認動畫,並且設置循環
  • Attack設置爲循環

2. 構造場景

  • 爲"Skeleton"節點添加一個SkeletonIK子節點。
  • 爲“PiranhaFlower”節點添加一個Position3D子節點,並更名爲“Target”
    在這裏插入圖片描述

3. 設置SkeletonIK

SkeletonIK節點:

  • 必須是Skeleton的子節點。
  • 它直接繼承於Node所以是2D/3D通用的節點。
  • SkeletonIK實際就是在Skeleton上定義了一個IK鏈。

設置SkeletonIK屬性時需要參考上一節的骨架結構,如下:
在這裏插入圖片描述

Root Bone是IK鏈的根部。
Tip Bone是IK鏈的頂部。
Interpolation是插值係數,決定着從當前位置到完全IK位置的速度。
Target Node是目標節點,這裏我們將它設爲場景中的"Target"節點。
在這裏插入圖片描述

4. 測試

測試一下:

我們先手動把"Target"擺放到食人花的前面
在這裏插入圖片描述

選擇“SkeletonIK”,然後點擊播放IK

在這裏插入圖片描述

在這裏插入圖片描述

5. 運行時實現

Created with Raphaël 2.2.0Idle動畫馬里奧接近?Hold動畫停頓一段時間,給目標逃跑的時間獲取實際目標位置,並設置Target位置Attack動畫捕捉成功?結束yesyes

SkeletonIK的相關方法

start ( bool one_time=false ) 開啓IK
stop ( ) 停止IK
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章