UE5 雙手握劍的實現(逆向運動學IK)

UE5 雙手握劍的實現 IK

前言

什么是IK?

UE官方給我們提供了很多對于IK處理的節點,比如ABRIK、Two Bone IK、Full Body IK 、CCD IK等,但是看到這,很多人就好奇了,什么是IK?
首先我們來看看虛幻小白人的骨骼
在這里插入圖片描述
在這里插入圖片描述

前向知識

它其實是由多個骨骼構成的,具體的原理就是,我們有一個最基礎的Root點,它存儲了自身的Transform信息,后面再添加它的子節點,里面存儲的是相對于它父類的Transform變化,意味著,我們只需要用父類的Transform乘以子類的Transform,就可以得到子類真正的位置,意味著我們每個骨骼只需要存儲一個Transform信息,就可以完成對每個骨骼位置信息的計算。

FK

正向運動學(Forward kinematics, FK):Forward Kinematics是一種計算骨骼動畫的方法。具體來說,它通過直接設置和調整每個骨骼關節的位置和旋轉,來確定骨架的姿態和動畫。每個關節的位置和旋轉會影響到其子關節的位置和姿態,形成一個鏈式反應。例如,如果你調整角色手臂的上臂位置,前臂和手的姿態也會隨之改變。
請添加圖片描述

IK

逆向運動學(Inverse kinematics, IK):Inverse Kinematics是一種計算骨骼動畫的方法,與Forward Kinematics(FK,前向運動學)相對。IK的工作原理是通過設定一個目標位置,然后反向計算各個關節的角度和位置,以使骨骼末端(通常是手或腳)達到這個目標位置。例如,當你設定角色的手觸碰某個位置時,IK會自動計算手臂和手的各個關節如何調整來實現這一動作。
我們通常用它來處理雙手握劍,有一個手握不住劍的問題,或者是拿槍時候,手部位置不對,比如下圖,紅色部分手掌就沒有抓主劍柄的位置,這時候,我們可通過IK來處理這個問題。
在這里插入圖片描述

雙骨骼IK(Two Bone IK)

Two Bone IK是一種用于控制和計算骨骼動畫的逆向運動學(IK)解算器,專門用于處理兩段骨骼鏈的情況,例如上臂和前臂(手臂)或者大腿和小腿(腿部)。
在這里插入圖片描述
IKBone:就是大家選定的骨骼,需要綁定到某個位置,比如我們雙手握劍時候,右手是正常抓握劍的,但是左手不是,這時候,我們需要在左手找一個骨骼節點,作為我們需要綁定到目標點的位置。

Effector Location:也就是我們目標位置,手掌企圖抓住的位置。
Joint Target Location:設置中間關節(如肘部)的目標位置,用于控制關節的彎曲方向。
Alpha:就是用于和原始動畫做lerp的值,1的時候,就完全是經過雙骨骼IK變換之后的動畫,為0則是原始動畫。當然,你也可以把它修改成bool類型,用開關的形式,但是如果是這樣的話,原始動畫,和IK計算后的動畫差距很大的話,它可能會閃現到新的位置。

在這里插入圖片描述
在這里插入圖片描述
如果Effector Location與Joint Target Location是固定值,那么你選中這個節點,可以在動畫藍圖里面去拖拽這個倆個變量的位置。
在這里插入圖片描述
在這里插入圖片描述

FABRIK

它其實與雙骨骼IK相似,但是它不用傳中間點,它會幫你計算(自己處理的中間位置骨骼,可能不太理想就可以考慮采用FABRIK)
在這里插入圖片描述
Effector Transform:和雙骨骼IK一樣,只不過它變成了目標位置的Transform。
Effector Target:比如此處我們想要左手握住劍,那么這時候,把左手的骨骼選中就行。
Tip Bone:骨骼鏈尖端的骨骼,比如我們整個手臂的骨骼鏈,手位置就是這個骨骼鏈的尖端,比如下圖是Hand_l。
Root Bone:根骨骼,比如下圖是spine_01。
在這里插入圖片描述

如果Effector Transform是固定值,那么你選中這個節點,可以在動畫藍圖里面去拖拽這個變量的位置。

其他IK就不講了,需要的去查一下文檔就行。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15087.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15087.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15087.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[圖解]產品經理創新之阿布思考法

0 00:00:00,000 --> 00:00:01,900 那剛才我們講到了 1 00:00:02,730 --> 00:00:03,746 業務序列圖 2 00:00:03,746 --> 00:00:04,560 然后怎么 3 00:00:05,530 --> 00:00:06,963 畫現狀,怎么改進 4 00:00:06,963 --> 00:00:09,012 然后改進的模式…

【Spring Security + OAuth2】授權

Spring Security OAuth2 第一章 Spring Security 快速入門 第二章 Spring Security 自定義配置 第三章 Spring Security 前后端分離配置 第四章 Spring Security 身份認證 第五章 Spring Security 授權 第六章 OAuth2 文章目錄 Spring Security OAuth21、基于request的授權1…

一條命令安裝Metasploit Framework

做安全滲透的人都或多或少的使用kali-Linux系統中msfconsole命令啟動工具,然而也經常會有人遇到這樣那樣的問題無法啟動 今天我們就用一條命令來重新安裝這個工具 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/met…

AI學習AI知識路線

數學基礎 一、數據分析 二、概率論 三、線性代數及矩陣 l 數學基礎 1)常數e2)導數3)梯度 4)Taylor5)gini系數6)信息熵與組合數 1)概率論基礎2)古典模型3)常見概率分布 4)大數定理和中心極限定理5)協方差(矩陣)和相關系數 6)最大似然估計和最大后驗估計 1)線性空間及線性變…

Windows內核--內存區對象(Section Object)(5.2)

內存區對象 Section Object表示可以共享的內存段。進程可以使用Section與其他進程共享其部分內存地址空間. Section還可為進程提供將文件映射到其內存地址空間的機制。 Linux有mmap與之類似。 參考: Section Objects and Views 內存區對象是虛擬描述符表VAD節點的一種 VAD樹節點…

LabVIEW如何確保自動化設備的穩定性和可靠性?

為了確保LabVIEW在自動化設備中的穩定性和可靠性,可以采取以下關鍵措施: 1. 代碼架構與設計 模塊化設計:將程序分解為獨立的模塊或子VI,每個模塊負責特定功能,便于測試和維護。狀態機架構:使用狀態機架構…

zookeeper選主之LeaderLatch

概述 利用zookeeper來進行選主,可以使用apache curator framework,它給我們封裝了兩種選主工具,它們分別是LeaderSelector和LeaderLatch。它們各自的應用場景不一樣,LeaderSelector應用于那些需要頻繁變主的情況,而Le…

Redis機制-Redis互斥鎖、分布式鎖

目錄 一 互斥鎖 二 分布式鎖 Redis實現分布式鎖 redisson實現分布式鎖 可重入性: 主從一致性(性能差): 一 互斥鎖 假設我們現在有一個業務要實現秒殺優惠券的功能,如果是一個正常的流程,線程之間應該…

數據結構中鏈表的題目

題目: 設計一個算法,要求將鏈表中所有節點的鏈接方向“原地”逆轉,即要求僅利用原表的存儲空間。 對于這個問題,首先要分析的是:鏈表中的頭和尾節點如何插入?其次就是:如何鏈接? 搞懂…

閱讀筆記——《未知協議狀態機推斷技術研究綜述》

【參考文獻】盛嘉杰, 牛勝杰, 陳陽, 等. 未知協議狀態機推斷技術研究綜述[J]. 計算機與現代化, 2023 (05): 58.【注】本文僅為作者個人學習筆記,如有冒犯,請聯系作者刪除。 摘要 協議逆向工程(PRE)描述了協議的行為邏輯&#xff…

spring cloud config server源碼學習(一)

文章目錄 1. 注解EnableConfigServer2. ConfigServerAutoConfiguration2.1 ConditionalOnBean和ConditionalOnProperty2.2 Import注解2.2.1. EnvironmentRepositoryConfiguration.class2.2.2. CompositeConfiguration.class2.2.3. ResourceRepositoryConfiguration.class2.2.4.…

python3 + selenium webdriver自動化測試啟動不同瀏覽器

selenium webdriver自動化測試啟動不同瀏覽器 selenium webdriver 介紹Selenium WebDriver 進行自動化測試的一般流程瀏覽器驅動下載瀏覽器驅動的安裝chrome、edge、Firefox、Opera、Safari、phantomjs 應用Headless Chrome 、Headless Firefox 應用 selenium webdriver 介紹 …

shell命令運行原理及Linux權限問題

目錄 shell命令以及運行原理用戶管理添加用戶刪除用戶sudo Linux權限的概念Linux權限管理文件訪問者的分類(人)文件類型和訪問權限(事物屬性)文件權限值的表示方法文件訪問權限的相關設置方法 目錄的權限粘滯位 shell命令以及運行…

備考AMC8和AMC10競賽,吃透2000-2024年1850道真題和解析(持續)

多做真題,吃透真題和背后的知識點是備考AMC8、AMC10有效的方法之一,通過做真題,可以幫助孩子找到真實競賽的感覺,而且更加貼近比賽的內容,可以通過真題查漏補缺,更有針對性的補齊知識的短板。 今天我們繼續…

PostgreSQL基本使用Schema

參考文章:PostgreSQL基本使用(3)Schema_pg數據庫查詢schema-CSDN博客 PostgreSQL 模式(Schema)可以理解為是一個表的集合(或者所屬者)。 例如:在 MySQL 中,Scheam 是庫&…

gcc源碼分析(AST抽象語法樹)

文章目錄 三、AST相關1、AST(抽象語法樹)1.1 樹結點的聲明1.2 樹結點的結構1.2.1 tree_node聯合體1.2.2 tree_base結構體1.2.3 tree_common結構體1.2.4 常量結構體1.2.5 **標識符節點**2、符號綁定,作用域與block樹節點2.1 lang_identifier結構體2.2 c_binding結構體2.3 scop…

HLS視頻加密,讓您的視頻內容更安全!

背景介紹 HLS視頻加密是一種基于HTTP Live Streaming(HLS)協議的加密技術。它的核心思想是將視頻切片進行加密處理,在客戶端播放時需要先獲取解密密鑰才能正常偶發。通過這種方式,HLS加密可以有效防止未經授權的第三方竊取視頻內…

測試短信推薦參考

短信測試參考 國外: smstome 支持多個國家號碼 官網地址: https://smstome.com/ quackr.io 支持多個國家號碼 官網地址: https://quackr.io/ receive-smss 支持多個國家號碼 地址: https://receive-smss.com/ receive-sms-fr…

C#字典的常用方法

C#的字典(Dictionary)類是一個通用的集合類,它實現了鍵值對的存儲和訪問。以下是一些常用的字典方法: Add(key, value):向字典中添加一個指定的鍵值對。Remove(key):從字典中移除具有指定鍵的元素。Contai…

LLM大模型的7種推理框架分析

LLM的7種推理框架 Hugging Face的transformers 這是一個Python庫,可以簡化本地運行LLM的過程。 Transformers的優點: 自動模型下載提供代碼片段非常適合實驗和學習 Transformers的缺點: 需要對ML和NLP有深入了解需要編碼和配置技能 2.L…