《UE5_C++多人TPS完整教程》學習筆記45 ——《P46 待機與跳躍(Idle And Jumps)》


本文為B站系列教學視頻 《UE5_C++多人TPS完整教程》 —— 《P46 待機與跳躍(Idle And Jumps)》 的學習筆記,該系列教學視頻為計算機工程師、程序員、游戲開發者、作家(Engineer, Programmer, Game Developer, Author) Stephen Ulibarri 發布在 Udemy 上的課程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻譯版,UP主(也是譯者)為 游戲引擎能吃么。
在這里插入圖片描述


文章目錄

  • P46 待機與跳躍(Idle And Jumps)
  • 46.1 Idle 待機狀態
  • 46.2 Jump 跳躍狀態
  • 46.3 Run 奔跑到 Jump 跳躍狀態的轉換
  • 46.4 對跳躍動畫進行調整
  • 46.5 Summary


P46 待機與跳躍(Idle And Jumps)

本節課我們將結合前兩節課制作的持槍奔跑混合空間,處理人物角色待機和跳躍動畫,使得人物角色在裝備武器時的動畫更完整。
在這里插入圖片描述


46.1 Idle 待機狀態

  1. 在虛幻引擎中打開動畫藍圖 “BlasterAnimBP”,然后在 “AnimGraph” 面板中打開狀態機 “Equipped” 的編輯界面,雙擊 “Standing” 節點進入編輯界面。在藍圖編輯面板中 “添加新的狀態機”(Add New State Machine),命名為 “Standing”,將 “Standing” 的輸出引腳與 “輸出動畫姿勢”(Out Animation Pose)節點的 “Result” 引腳連接,然后剪切剩下的節點。
    請添加圖片描述

  2. 雙擊 “Standing” 進入狀態機編輯界面,在面板中 “添加狀態”(Add State)“Idle” 和 “Run”。
    在這里插入圖片描述

  3. 雙擊 “Run” 狀態節點進入編輯界面,將剪切的藍圖節點粘貼到面板中,并將 “EquippedRun” 節點的 “Animation Pose” 輸出引腳與 “輸出動畫姿勢”(Out Animation Pose)節點的 “Result” 引腳連接。
    在這里插入圖片描述

  4. 返回 “Standing” 狀態機編輯界面,雙擊 “Idle” 狀態節點進入編輯界面,在右側內容瀏覽器中將動畫資產 “Idle_Rifle_Hip” 拖拽至面板中生成藍圖節點 “序列播放器 Idle_Rifle_Hip”(Play Idle_Rifle_Hip),并將該節點的輸出引腳與“輸出動畫姿勢”(Out Animation Pose)節點的 “Result” 引腳連接。
    在這里插入圖片描述

  5. 返回 “Standing” 狀態機編輯界面,雙擊 “Idle 到 Run”(Idle to Run) 轉換按鈕在這里插入圖片描述進入轉換規則藍圖編輯界面,在面板中添加藍圖節點 “獲取 Speed”(Get Speed)、“大于”(>)、“獲取 Is In Air”(Get Is In Air)、“NOT布爾”(NOT Boolean)、“獲取 Is Accelarating”(Get Is Accelarating)以及 “AND布爾”(AND Boolean),在為節點 “AND布爾” “添加引腳”(Add pin)后,按下圖所示連線繪制藍圖。這段藍圖表示當 “Idle” 狀態下的人物角色同時滿足速度大于 0(Speed > 0)、不在空中 (bIsInAir == false)且在加速(bIsAccelarating == true)三個條件時,就可以由 “Idle” 轉換到 “Run” 狀態。
    在這里插入圖片描述

  6. 返回 “Standing” 狀態機編輯界面,在 “Run” 狀態節點上拉出一條線連接 “Idle”,生成 “Run 到 Idle”(Idle to Run) 的轉換規則,雙擊轉換按鈕在這里插入圖片描述進入轉換規則藍圖編輯界面,在面板中添加藍圖節點 “獲取 Is Accelarating”(Get IsAccelarating)和 “NOT布爾”(NOT Boolean),按下圖所示連線繪制藍圖,這段藍圖表示當當 “Run” 狀態下的人物角色不在在加速(bIsAccelarating == false)三個條件時,就可以由 “Run” 轉換到 “Idle” 狀態。
    在這里插入圖片描述
    在這里插入圖片描述

  7. 編譯、保存后進行測試,可以看到我們的人物角色在拾取并裝備武器后,如果不進行任何操控,就會保持 “Idle” 狀態并循環播放持槍待機動畫 “Idle_Rifle_Hip”,但如果按下 WASD 鍵,人物角色開始進入 “Run” 狀態持槍奔跑,并根據人物角色的移動和瞄準方向播放持槍奔跑混合空間 “EquippedRun 中的動畫,在此過程中松開 WASD 鍵人物角色就會進入 “Idle” 狀態。
    在這里插入圖片描述
    在這里插入圖片描述


46.2 Jump 跳躍狀態

  1. 返回 “Standing” 狀態機編輯界面,從狀態節點 “Idle” 開始按順序依次添加并連接新的狀態節點 “JumpStart”、“JumpLoop” 和 “JumpStop”,最后由 “JumpStop” 連回 “Idle” 構成一個循環。
    在這里插入圖片描述

  2. 進入 “JumpStart” 狀態編輯界面,在右側內容瀏覽器中將動畫資產 “Jump” 拖拽至面板中生成藍圖節點 “序列播放器 Jump”(Play Jump),并將該節點的輸出引腳與“輸出動畫姿勢”(Out Animation Pose)節點的 “Result” 引腳連接。
    在這里插入圖片描述

  3. 進入 “JumpLoop” 狀態編輯界面,在右側內容瀏覽器中將動畫資產 “Jump_Loop” 拖拽至面板中生成藍圖節點 “序列播放器 JumpLoop”(Play Jump_Loop),并將該節點的輸出引腳與“輸出動畫姿勢”(Out Animation Pose)節點的 “Result” 引腳連接。
    在這里插入圖片描述

  4. 進入 “JumpStop” 狀態編輯界面,在右側內容瀏覽器中將動畫資產 “Jump_Down” 拖拽至面板中生成藍圖節點 “序列播放器 Jump_Down”(Play Jump_Down),并將該節點的輸出引腳與“輸出動畫姿勢”(Out Animation Pose)節點的 “Result” 引腳連接。
    在這里插入圖片描述

  5. 進入 “Idle 到 JumpStart”(Idle to JumpStart)轉換規則藍圖編輯界面,在面板中添加藍圖節點 “獲取 Is In Air”(Get Is In Air),并將該節點的輸出引腳與 “結果”(Result)節點的 “Can Enter Transition” 輸入引腳連接。
    在這里插入圖片描述

  6. 在 “Standing” 狀態機編輯界面選中 “JumpStart 到 JumpLoop”(JumpStart to JumpLoop)轉換按鈕在這里插入圖片描述,右側細節面板中勾選 “過渡”(Transition)選項卡下的 “基于狀態中序列播放器的自動規則”(Automatic Rule Based on Sequence Player in State)。
    在這里插入圖片描述

  7. 進入 “JumpLoop 到 JumpStop”(JumpLoop to JumpStop)轉換規則藍圖編輯界面,在面板中添加藍圖節點 “獲取 Is In Air”(Get Is In Air) 和 “NOT布爾”(NOT Boolean)節點,將 “獲取 Is In Air” 的輸出引腳與 “NOT布爾” 的輸入引腳連接,然后將該 “結果”(Result)節點的 “Can Enter Transition” 輸入引腳連接。
    在這里插入圖片描述

  8. 在 “Standing” 狀態機編輯界面由狀態 “JumpStop” 再引出一條線連接 “Idle” 生成新的 “JumpStop 到 Idle”(JumpEnd to Idle)轉換規則。雙擊進入其中一個轉換規則藍圖編輯界面,添加藍圖節點 “獲取 Is Crouched”(Get Is Crouched),并將該節點的輸出引腳與 “結果”(Result)節點的 “Can Enter Transition” 輸入引腳連接;隨后,在另一個轉換規則中勾選“結果”(Result)節點的 “Can Enter Transition” 輸入引腳。
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

  9. 編譯、保存后進行測試,可以發現人物角色在持槍跳躍到落地的過程有些脫節和延遲,并且跳躍動畫會循環播放,需要調整動畫播放的一些參數。
    在這里插入圖片描述

  10. 進入 “JumpStart” 狀態編輯界面,在面板中選中藍圖節點“序列播放器 Jump”(Play Jump),然后在右側細節面板中的 “設置”(SETTINGS)選項卡下將 “播放速率”(Play Rate)設置為 1.5,并取消 “循環動畫”(Loop Animation)的勾選。
    在這里插入圖片描述
    進入 “JumpLoop” 狀態編輯界面,在面板中選中藍圖節點“序列播放器 Jump”(Play Jump),然后在右側細節面板中的 “設置”(SETTINGS)選項卡下 “播放率”(Play Rate)設置為 2.0
    在這里插入圖片描述
    在 “Standing” 狀態機編輯界面選中 “JumpStart 到 JumpLoop”(JumpStart to JumpLoop)轉換按鈕,然后在右側細節面板中 “混合設置”(BLEND SETTINGS)中將 “時長”(Duration)設置為 0.1
    在這里插入圖片描述
    在 “Standing” 狀態機編輯界面選中 “JumpLoop 到 JumpStop”(JumpLoop to JumpStop)轉換按鈕,然后在右側細節面板中 “混合設置”(BLEND SETTINGS)中將 “時長”(Duration)設置為 0.1
    在這里插入圖片描述
    進入 “JumpStop” 狀態編輯界面,在面板中選中藍圖節點“序列播放器 Jump_Down”(Play Jump_Down),然后在右側細節面板中的 “設置”(SETTINGS)選項卡下 “播放率”(Play Rate)設置為 1.5,并取消 “循環動畫”(Loop Animation)的勾選。
    在這里插入圖片描述

  11. 編譯、保存后進行測試,可以發現在調整后人物角色在持槍跳躍到落地的過程看起來比較流暢自然。但人物角色在持槍奔跑時進行跳躍時并未播放跳躍動畫,因此我們還想要從持槍奔跑動畫過渡到跳躍動畫。
    在這里插入圖片描述


46.3 Run 奔跑到 Jump 跳躍狀態的轉換

  1. 在從“Standing” 狀態機編輯界面,從狀態節點 “Run” 引出一條線連接 “JumpStart” 生成 “Run 到 JumpStart”(Run to JumpStart)轉換規則。進入 “Run 到 JumpStart” 轉換規則藍圖編輯界面,在面板中添加藍圖節點 “獲取 Is In Air”(Get Is In Air),并將該節點的輸出引腳與 “結果”(Result)節點的 “Can Enter Transition” 輸入引腳連接。
    在這里插入圖片描述
    在這里插入圖片描述

  2. 編譯、保存后進行測試,可以發現人物角色可以流暢地從持槍奔跑動畫過渡到跳躍動畫,但是跳躍時滯空時間可能有些長,可以調整人物角色移動組件的 “跳躍Z速度”(Jump ZVelocity)和 “重力標度”(Gravity Scale)。
    在這里插入圖片描述

  3. 打開人物角色藍圖類 “BP_EpicCharacter”,在左側組件面板選中 “角色移動(CharMoveComp)(角色移動組件)”,然后在右側細節面板中將 “角色移動(通用設置)”(CHARACTER MOVEMENT(GNEERAL SETTINGS)) 下的 “重力標度”(Gravity Scale)改為 3.0(教學視頻中最后又改為 4.0),將 “角色移動:上跳/下落”(CHARACTER MOVEMENT: JUMPING/FALLING)) 下的 “跳躍Z速度”(Jump ZVelocity)改為 1600.0 cm/s。
    在這里插入圖片描述

  4. 編譯、保存后測試,可以發現人物角色跳躍和下降的速度更快了,這樣就可以跳上更高的壁架(Ledges)并且更快地落地,我們的游戲也多了一些平臺游戲的感覺(platformer-type feel)
    在這里插入圖片描述

  5. 若不太滿意人物角色落地時雙腿懸空(Dangling up)時間太長,我們可以在虛幻引擎資產瀏覽器中復制 “Jump_Down”,將復制好的動畫資產命名為 “Jump_Down_Trim”,雙擊進入該動畫資產的動畫序列編輯器(Animation Sequence Editor),在下方資產編輯器(Asset Editor)中跳轉到 幀36(左上角橙色數字框里可以輸入要跳轉的幀數,輸入后按 Enter 鍵跳轉),單擊鼠標右鍵,在彈出的菜單欄中選擇 “移除幀0到幀36之間的幀”(Remove frame 0 to frame 36),這樣就可以剪去 “Jump_Down” 中雙腿懸空的動畫幀。
    在這里插入圖片描述
    在這里插入圖片描述

  6. 打開人物角色動畫藍圖類 “BlasterAnimBP”,進入 “JumpStop” 狀態編輯界面,在右側內容瀏覽器中將動畫資產 “Jump_Down_Trim” 拖拽至面板中生成藍圖節點 “序列播放器 Jump_Down_Trim”(Play Jump_Down_Trim),并將該節點的輸出引腳與“輸出動畫姿勢”(Out Animation Pose)節點的 “Result” 引腳連接。
    在這里插入圖片描述

  7. 編譯保存后進行測試,人物角色在落地時會干脆利索一些。
    在這里插入圖片描述


46.4 對跳躍動畫進行調整

  1. 在前面的測試中,當人物角色持槍跳躍時會傾斜一個角度,我們希望人物角色在起跳時始終面向前方,在虛幻引擎資產瀏覽器中復制 “Jump”,可以看到內容瀏覽器中生成了新的動畫資產 “Jump1”。雙擊進入該動畫資產的動畫序列編輯器,攝像機調整至人物角色后方在左側骨骼樹(Skeleton Tree)中選中骨骼根節點 “Root”,將其逆時針水平旋轉 45°。隨后,在工具欄中點擊 “+關鍵幀”(+Key),為動畫添加關鍵幀,點擊后可以看到下方時間軸中出現了名為 “root” 的 “Additive圖層軌道”(Additive Layer Tracks)。
    在這里插入圖片描述

  2. 在工具欄中 “創建資產”(Create Asset),選擇 “創建動畫”(Create Animation),選擇 “當前動畫”(Current Animation),再選擇 “預覽網格體”(Preview Mesh),隨后在彈出的對話框中將動畫資產命名為 “Jump_Rot” 并保存到 “/Game/Contents/Assets/Animation” 目錄下。
    在這里插入圖片描述

  3. 在內容瀏覽器中可以看到新創建的動畫資產 “Jump_Rot”,點擊 “保存所有”(Save All),隨后 “強制刪除”(Force Delete)動畫資產 “Jump1”。

  4. 打開人物角色動畫藍圖類 “BlasterAnimBP”,進入 “JumpStart” 狀態編輯界面,在右側內容瀏覽器中將動畫資產 “Jump_Rot” 拖拽至面板中生成藍圖節點 “序列播放器 Jump_Rot”(Play Jump_Rot),并將該節點的輸出引腳與“輸出動畫姿勢”(Out Animation Pose)節點的 “Result” 引腳連接。
    在這里插入圖片描述

  5. 仿照上述步驟,創建新的動畫資產,“Jump_Loop_Rot” 和 “Jump_Down_Trim_Rot”,并在相應的狀態藍圖編輯界面生成新的藍圖節點,并將新節點的輸出引腳代替之前的動畫節點的輸出引腳,與 “輸出動畫姿勢” 節點的 “Result” 引腳連接。

  6. 編譯、保存后進行測試,可以發現人物角色在持槍跳躍時始終面向前方,但是起跳時人物角色雙腿伸直到懸空的前搖太長,導致銜接有些奇怪。
    在這里插入圖片描述

  7. 在虛幻引擎資產瀏覽器中復制 “Jump_Rot”,將復制好的動畫資產命名為 “Jump_Rot_Trim”,雙擊進入動畫資產 “Jump_Rot” 的動畫序列編輯器,在下方資產編輯器中跳轉到 幀7(左上角橙色數字框里可以輸入要跳轉的幀數,輸入后按 Enter 鍵跳轉),單擊鼠標右鍵,在彈出的菜單欄中選擇 “移除幀0到幀7之間的幀”(Remove frame 0 to frame 7),這樣就可以剪去 “Jump_Rot” 中人物角色在持槍起跳時雙腿伸直到懸空的前搖。然后,在 “JumpStart” 狀態編輯界面修改藍圖即可。
    在這里插入圖片描述在這里插入圖片描述

  8. 編譯、保存后進行測試,可以發現人物角色在持槍起跳時雙腿伸直到懸空銜接非常絲滑流暢,Perfect!
    在這里插入圖片描述


46.5 Summary

本節課我們完善了人物角色在裝備武器狀態下的待機與跳躍動畫,完善了人物角色裝備武器的 “EquippedWeapon” 狀態機。首先,我們在 “Standing” 狀態機中創建了 “Idle” 和 “Run” 兩個核心狀態,并設置了它們之間的轉換規則。“Idle” 狀態播放持槍待機動畫 “Idle_Rifle_Hip”,其轉換到 “Run” 狀態的條件是:速度大于 0 (Speed > 0)、不在空中 (!bIsInAir) 且正在加速 (bIsAccelerating)。反向轉換規則則只需檢測是否不在加速 (!bIsAccelerating),即可從 “Run” 狀態平滑過渡回 “Idle” 狀態。
接著,我們為跳躍動作創建了由 “JumpStart”、“JumpLoop” 和 “JumpStop” 三個狀態組成的動畫序列。通過檢測 “bIsInAir” 變量,實現了從 “Idle” 或 “Run” 狀態到 “JumpStart” 狀態的轉換。“JumpStart” 到 “JumpLoop” 的轉換采用了“基于序列播放器的自動規則”,而 “JumpLoop” 到 “JumpStop” 的轉換則通過檢測 “!bIsInAir”(是否接觸到地面)來觸發。最終,從 “JumpStop” 狀態成功轉換回 “Idle” 狀態,完成了整個跳躍循環。
隨后,我們對所有跳躍動畫的播放參數進行了精細調整,包括設置合適的播放速率 (Play Rate)、禁用循環播放、以及設置狀態間短暫的混合時長 (Duration),顯著改善了動畫銜接的流暢度和自然感。
此外,我們還通過調整角色移動組件 “UCharacterMovementComponent” 的重力標度(Gravity Scale)和跳躍Z速度(Jump ZVelocity)參數,優化了角色的跳躍高度和下落速度,使游戲體驗更偏向于平臺跳躍風格。
最后,我們通過創建并應用旋轉后的跳躍動畫資產 “Jump_Rot”, “Jump_Loop_Rot”, “Jump_Down_Trim_Rot”,并修剪起跳動畫 “Jump_Rot” 的前搖幀得到 “Jump_Rot_Trim”,確保了角色在跳躍過程中始終面向前方,且動作銜接更加干脆利落。最終實現的動畫狀態機使得角色在持槍時的待機、奔跑、起跳、空中姿態及落地整個流程都非常流暢和自然。
在這里插入圖片描述


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

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

相關文章

用html+js下拉菜單的demo,當鼠標點擊后展開,鼠標點擊別的地方后折疊

使用html js實現下拉菜單demo&#xff0c;因為copy的網站菜單功能失效&#xff0c;就需要自己寫一個邏輯&#xff0c;點擊其他區域折疊菜單&#xff0c;可以參考&#xff1a;<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF…

OpenCV 核心技術:顏色檢測與幾何變換實戰

在計算機視覺任務中&#xff0c;顏色空間轉換和圖像幾何變換是兩大基礎且高頻的操作 —— 前者用于精準分割特定顏色目標&#xff08;如交通信號燈、物體追蹤&#xff09;&#xff0c;后者用于調整圖像的尺寸、位置和視角&#xff08;如文檔矯正、圖像拼接&#xff09;。本文將…

[HFCTF2020]EasyLogin

文章目錄TRYWP總結TRY 注冊admin報錯username wrong。 隨便注冊一個用戶點擊GetFlag&#xff0c;permission deny。 猜測可能是需要admin權限。 看cookie發現有&#xff1a; sses:aok&#xff1a;eyJ1c2VybmFtZSI6ImEiLCJfZXhwaXJlIjoxNzU2NDU1NjczMTAxLCJfbWF4QWdlIjo4NjQwM…

Java接口和抽象類的區別,并舉例說明

Java接口和抽象類是面向對象編程中實現抽象的兩種機制&#xff0c;它們在語法、設計目的和使用場景上有顯著區別&#xff1a;一、核心區別?定義方式?抽象類&#xff1a;使用abstract class聲明&#xff0c;可包含抽象方法和具體方法45。接口&#xff1a;使用interface聲明&am…

docker-相關筆記

1: 導入鏡像 docker load -i myimage.tar# 導出鏡像 docker save myimage:latest > myimage.tar # 導入鏡像 docker load -i myimage.tardocker load -i <文件> 功能&#xff1a;用于導入通過 docker save 命令導出的鏡像歸檔文件&#xff08;通常是 .tar 格式&#…

自然語言提取PDF表格數據

自然語言提取PDF表格數據PDF v8.2的文檔解決方案與OpenAI實現了無縫的AI集成&#xff0c;可將非結構化PDF轉換為可用數據。MESCIUS 推出的 PDF 文檔解決方案 (DsPdf) 是一款軟件開發工具包&#xff0c;它提供了 .NET Core 庫和一個 JavaScript PDF 查看器&#xff0c;用于處理和…

飛牛Nas每天定時加密數據備份到網盤,基于restic的Backrest筆記分享

1. 前言 受前輩“RAID≠備份”的經驗&#xff0c;也考慮到硬盤故障時 RAID 重建步驟繁瑣&#xff0c;我干脆放棄陣列&#xff0c;直接單盤運行。 重要數據則加密后上傳至大廠云盤&#xff1a;一方面文件對外不可讀&#xff0c;規避掃描和諧&#xff1b;另一方面依靠大廠的數據安…

C#連接SQL-Server數據庫超詳細講解以及防SQL注入

C#連接SQL Server數據庫完整指南&#xff0c;整合了ADO.NET原生連接與Entity Framework Core兩種實現方式。這篇文件詳細介紹C#代碼連接數據庫的通用操作數據庫鏈接功能 數據庫的增刪改查操作1 配置全局數據庫鏈接字符串 App.config2 獲取數據庫鏈接字符串先在App.config配置連…

Pico2?ICE FPGA 開發板:從開箱到跑通示例的全歷程

FPGA 和 MCU 結合的開發板不多&#xff0c;而 Pico2?ICE 則把小巧、靈活和易上手完美結合。搭載 RP2350 雙核 RISC-V MCU Lattice iCE40UP5K FPGA&#xff0c;配合官方 SDK&#xff0c;你可以一步步跑通各種示例&#xff0c;從 LED 到 VGA&#xff0c;再到 MCU 與 FPGA 協作應…

Java圖形圖像處理【Swing圖像拖拽】【五】

Java圖形圖像處理【Swing圖像拖拽】 18.3.3 Swing圖像對象拖拽功能 18.3.3 Swing圖像對象拖拽功能 上文討論的是java.awt.dnd包中提供的拖拽API接口&#xff0c;也可稱之為AWT組件的拖拽功能。下面我們要討論的是Swing框架的拖拽功能&#xff1a;Swing組件也提供了對拖拽功能的…

狀態模式與幾個經典的C++例子

1. 狀態模式定義與核心思想 狀態模式解決的是當控制一個對象狀態轉換的條件表達式過于復雜時的情況。通過將狀態的判斷邏輯轉移到表示不同狀態的一系列類中,可以把復雜的判斷邏輯簡化。 核心思想: 狀態抽象:將對象的每個狀態都封裝到一個獨立的類中。 委托代替條件判斷:…

SyncBackPro 備份及同步軟件中的腳本功能簡介

腳本提供了一種靈活而簡單的方法來自動執行任務和擴展應用程序的功能。腳本是一個小程序&#xff0c;能夠自定義和控制備份作業。例如&#xff0c;用戶可以編寫腳本來復制、重命名或刪除特定文件、自定義用戶界面或更改配置文件設置。SyncBackPro 的腳本功能類似于 Microsoft O…

部署2.516.2版本的jenkins,同時適配jdk8

&#x1f4cc; 前言 在企業級開發中&#xff0c;我們常常面臨 新老項目并存 的復雜局面&#xff1a; 老項目基于 JDK 8 開發&#xff0c;短期內無法升級&#xff1b; 新項目采用 JDK 17&#xff08;LTS&#xff09;甚至更高版本&#xff1b; 而作為 CI/CD 核心的 Jenkins&#…

Autodesk Maya 2026.2 全新功能詳解:MotionMaker AI 動畫、LookdevX 材質增強、USD 工作流優化

軟件介紹 Autodesk Maya 2026.2是一款專業的3D計算機圖形軟件&#xff0c;它為數字內容創作者提供了豐富的工具集&#xff0c;以實現高質量的建模、動畫、模擬和渲染。該版本帶來了多項性能優化和工作流程改進&#xff0c;特別是針對生成式動畫工具MotionMaker進行了重大升級&…

STM32之DMA詳解

一、DMA 1. DMA的引入 在嵌入式系統或計算機系統中&#xff0c;數據的傳輸和處理是非常重要的操作。以下通過一個簡單的示例來展示傳統數據操作方式與 DMA 引入的必要性&#xff1a; int a 10; int b 20;a b;上述代碼包含了變量定義、初始化以及變量數據賦值操作。在傳統…

鏈表有環找入口節點原理

環形鏈表入口檢測算法數學解釋 數學原理假設定義: 鏈表頭到環入口的距離為 a環入口到相遇點的距離為 b相遇點到環入口的距離為 c環的長度為 b c第一次相遇時: 慢指針走了 s a b 步快指針走了 f a b n(b c) 步&#xff0c;其中 n 是快指針在環內轉的圈數由于快指針速度是…

Java 基本類型與包裝類詳解

Java 基本類型與包裝類詳解 在 Java 開發中&#xff0c;理解 基本數據類型與包裝類、字符串處理、以及高精度計算類是非常核心的能力。這不僅關系到程序性能&#xff0c;還影響代碼的正確性和可維護性。本文將詳細講解這些知識點&#xff0c;并給出常見的使用技巧和陷阱。 1?…

CRYPT32!CryptMsgUpdate函數分析之CRYPT32!PkiAsn1Decode函數的作用是得到pci

第一部分&#xff1a; CryptMsgUpdate( #endifIN HCRYPTMSG hCryptMsg,IN const BYTE *pbData,IN DWORD cbData,IN BOOL fFinal) {ContentInfo *pci NULL;if ((PHASE_FIRST_FINAL pcmi->dwPhase) &&(0 pcmi->dwMsgType)) {if (0 …

華為交換機S5700設置acl

1.、配置ACL1.1、定義允許的ACL規則[sw1]acl number 3001[sw1-acl-adv-3001]rule permit ip source 192.168.20.0 0.0.0.255 destination 192.168.40.1 0[sw1-acl-adv-3001]rule permit ip source 192.168.30.0 0.0.0.255 destination 192.168.40.1 01.2、定義禁止的ACL規則[sw…

在使用spring ai進行llm處理的rag的時候,選擇milvus還是neo4j呢?

在使用spring ai進行llm處理的rag的時候&#xff0c;選擇milvus還是neo4j呢&#xff1f; 對于Spring AI中的RAG&#xff08;Retrieval-Augmented Generation&#xff09;應用&#xff0c;選擇Milvus還是Neo4j&#xff0c;主要取決于你的數據類型以及RAG流程中對數據檢索的側重點…