IKControl

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

IKControl ตัวอย่างจะสร้างโปสท่าอนิเมชันที่เป็นธรรมชาติโดยใช้ Inverse Kinematics (IK) พวกเขาช่วยให้คุณสามารถทำให้ตัวละครตอบสนองต่อสภาพแวดล้อมของพวกเขาได้อย่างเป็นธรรมชาติ

เช่น คุณสามารถทำให้ตัวละครวางนิ้วของมันบนจุดหมุนประตูอย่างถูกต้องและตัวละครจะทำเช่นนั้นอย่างอิสระโดยไม่ต้องสร้างแอนิเมชันมากขึ้นสำหรับเกมของคุณในขณะที่ให้ประสบการณ์ที่เหมาะสม

IKControls ต้องเป็นลูกของ Humanoid หรือ AnimationController

คุณสามารถใช้ IKControls เพื่อสร้างตัวละคร:

  • หมุนหัวและลำตัวของมันเพื่อดูสิ่งที่น่าสนใจในโลก
  • ปรับตำแหน่งเท้าของมันเพื่อตอบสนองต่อการเปลี่ยนแปลงของพื้นที่ ปรับให้ขาและเท้าของมันเพื่อวางพวกเขาตามลำดับบนพื้นด้วยหินและสโคลเปีย
  • ถือปืนและวางมือของมันอย่างเหมาะสมบนด้ามจับโดยไม่จำเป็นต้องสร้างอนิเมชันสำหรับแต่ละปืนในเกม
  • เล็งไปที่จุดหนึ่งในโลกเพื่อให้ด้านหัวของปืนของคุณตรงไปยังสิ่งที่คุณต้องการยิง เป็นประโยชน์อย่างมากสำหรับผู้ที่ยิงในบุคคลที่สาม
  • วางมือของมันบนหน้าจอของรถและติดตามมันเมื่อมันหมุน
  • มากขึ้น!

IKControl จะเปลี่ยนแปลงอนิเมชั่นสำหรับทุกส่วนระห

ตัวอย่างโค้ด

IKControl setup

local character = script.Parent.Character
local humanoid = character.Humanoid
local root = character.HumanoidRootPart
-- Create a new attachment to use as the IKControl.Target
local target = Instance.new("Attachment")
target.CFrame = CFrame.new(-1, 0, -1)
target.Parent = root
local ikControl = Instance.new("IKControl")
ikControl.Type = Enum.IKControlType.Position
ikControl.EndEffector = character.LeftHand
ikControl.ChainRoot = character.LeftUpperArm
ikControl.Target = target
ikControl.Parent = humanoid

สรุป

คุณสมบัติ

  • อ่านพร้อมๆ กัน

    ส่วนที่สุดท้ายที่คุณสนใจในการย้ายตัวละครของคุณ เช่น ข้อมือด้านบน ต้องเป็นบรรพบุรุษของ EndEffector และต้องเป็น BasePart หรือ Class.B

  • อ่านพร้อมๆ กัน

    เปิด/ปิดการควบคุม. เป็นปกติโดยความเคร่งเครียด

  • อ่านพร้อมๆ กัน

    ส่วนที่คุณสนใจในการย้ายเพื่อให้ไปถึง Target ตัวอย่างเช่น มือของคุณ ต้องเป็นลูกพี่น้องของ ChainRoot และเป็น <

  • อ่านพร้อมๆ กัน

    มีการปรับออเฟ็กต์เพิ่มเติมที่ด้านบนของ EndEffector ในพื้นที่โคลนเพื่อเปลี่ยนสถานที่ที่มันเคลื่อนที่

  • อ่านพร้อมๆ กัน

    มีการปรับออฟเซ็ตเพิ่มเติมที่ด้านบนของ Target เพื่อเปลี่ยนสถานที่ที่ EndEffector เคลื่อนที่

  • อ่านพร้อมๆ กัน

    ตัวอย่างออปชันที่กำหนดว่าอย่างไรสายพันธุ์จะยืด คุณสามารถใช้สิ่งนี้เพื่อระบุว่าอย่างไรข้อมือหรือ ข้อเท้าเอาชีวิตรอด

  • อ่านพร้อมๆ กัน

    ระบุลำดับที่ควบคุมจะแก้ไข มีค่าสูงสุดมีความสำคัญสูงสุด

  • อ่านพร้อมๆ กัน

    ระบุจํานวนเวลาเฉลี่ยที่ใช้สําหรับ EndEffector เพื่อเข้าถึง Target อย่างราบรื่น

  • อ่านพร้อมๆ กัน

    วัตถุที่ EndEffector เข้าถึงหรือชี้ไปที่ มันสามารถเป็นอะไรก็ได้ที่มีตำแหน่งในโลกเช่น Class.BasePart``Class.Attachment 1>

  • อ่านพร้อมๆ กัน

    ระบุวิธีที่ solver ตอบสนองการควบคุมนี้

  • อ่านพร้อมๆ กัน

    ระบุน้ำหนักของเป้าหมายการควบคุม IK ควรอยู่ในช่วง [0, 1]

คุณสมบัติ

ChainRoot

อ่านพร้อมๆ กัน

โดยการระบุ ChainRoot และ Class.IKControl.End

Enabled

อ่านพร้อมๆ กัน

คุณสมบัตินี้ช่วยให้คุณเปิด/ปิดการใช้งานการควบคุม IK โดยใช้ IK โดยปกติ เมื่อ Enabled เป็นปลอม การควบคุม IK จะปิดและไม่ได้รับการแก้ไขโดยนักแก้ปัญหาเบื้องหลัง

EndEffector

อ่านพร้อมๆ กัน

Class.IKControl.EndEffector|EndEffector อธิบาย

EndEffectorOffset

อ่านพร้อมๆ กัน

ค่าเริ่มต้นของเอฟเฟคเตอร์คือออฟเซ็ตจากด้านบนของ CFrame ที่ผลิต

นอกจากนี้คุณสามารถใช้อุปกรณ์เสริมโดยการตั้งอุปกรณ์เสริมเป็น EndEffector ซึ่งย้ายมันไปที่ Target ผลการค้นหา

คุณยังสามารถใช้ EndEffectorOffset เพื่อปรับแต่งว่าแกนใดของ EndEffector ที่ชี้ไปที่ Class.IKControl.Target

Offset

อ่านพร้อมๆ กัน

ค่าเรียบร้อยเป็นค่าเรียบร้อ

อ่านพร้อมๆ กัน

Class.IKControl.Pole|Pole เป็นตัวเลือก Instance ที่ให้คุณควบคุมว่าตัวผู้เล่นของคุณจะเอา

Priority

อ่านพร้อมๆ กัน

เมื่อมีการควบคุมหลายอันในตัวละคร คำสั่งที่ระบบปฏิบัติการพื้นฐานแก้ไขจะส่งผลกระทบต่อตำแหน่งที่สุดท้ายที่สร้างขึ้น โดยการเ

SmoothTime

อ่านพร้อมๆ กัน

ค่านี้ระบุจำนวนเวลาเฉลี่ยที่ใช้เวลาในการเข้าถึง EndEffector สู่ Class

Target

อ่านพร้อมๆ กัน

Class.IKControl.Target|Target เป็

อ่านพร้อมๆ กัน

โดยการเปลี่ยนแปลง Type คุณสามารถเปลี่ยนแปลงพฤติกรรมของการควบคุมได้ นี่คือตัวเลือกที่มีอยู่:

  • Transform: มันเป็นข้อจํากัด 6-DoF ที่เต็มรูปแบบ จัดตําแหน่ง EndEffector``Datatype.CFrame ให้ตรงกับ Class.IKControl.Target|Target
  • ตําแหน่ง: จัดตําแหน่ง EndEffector ให้ตรงกับตําแหน่ง Target
  • การหมุน: จัดเรียงการหมุนของ EndEffector ให้ตรงกับการหมุนของ Target
  • มอง: ย้ายและหมุนวงจรทั้งหมดเพื่อสร้างแกน (โดยปกติจะเป็นแกนด้านหน้า) บน EndEffector จุดที่ตรงในตำแหน่งโลกที่กำหนดโดย Target .

Weight

อ่านพร้อมๆ กัน

คุณสามารถควบคุมว่าการควบคุมที่ให้ผลกระทบต่อตัวละครโดยใช้สมบัตินี้ มีค่าเป็นตัวเลขในช่วง [0, 1] หรือไม่มีผล 0 หมายถึงไม่มีผล และ 1 หมายถึงผลเต็มขอ

น้ำหนักกำหนดตัวแปรการแปลงระหว่าง End-Effector และ IK ตัวเป้า การตั้งค่าน้ำหนักให้เป็น 0 ไม่ได้ปิดการควบคุม IK เนื่องจากปัจจัยอื่น เช่น SmoothTime สมูซผิวและ Pole

วิธีการ

GetChainCount


ส่งค่ากลับ

GetChainLength


ส่งค่ากลับ

GetNodeLocalCFrame

พารามิเตอร์

index: number

ส่งค่ากลับ

GetNodeWorldCFrame

พารามิเตอร์

index: number

ส่งค่ากลับ

GetRawFinalTarget


ส่งค่ากลับ

GetSmoothedFinalTarget


ส่งค่ากลับ

อีเวนต์