MC Toolkit

คู่มือ / คำสั่งและข้อมูล

คัตซีนกล้องแบบไม่ต้องใช้ม็อด: คีย์เฟรม การอินเทอร์โพเลต และเทคนิคสเปกเตเตอร์

วานิลลาเลื่อนกล้องได้แบบเดียว — ฟังก์ชันเทเลพอร์ตที่ทำงานทุกติ๊ก — ส่วนรีจิสทรีไทม์ไลน์ช่วยกำหนดอารมณ์รอบ ๆ ตัวมัน แต่ละวิธีเหมาะกับอะไร และการปรับให้เนียนที่ทำให้ไม่ดูเป็นหุ่นยนต์

ในวานิลลาไม่มีออบเจ็กต์กล้อง ดังนั้นคัตซีนจึงเป็นภาพลวงตาที่สร้างจากการเทเลพอร์ต โดยมีไทม์ไลน์คอยเปลี่ยนโลกไปรอบ ๆ

วิธีที่ 1: เทเลพอร์ตผู้เล่นทุกติ๊ก

วิธีเก่าแก่ที่ใช้ได้ทั่วไป ใส่ผู้เล่นเข้าโหมดสเปกเตเตอร์ แล้วเลื่อนไปตามเส้นทาง:

gamemode spectator @s
tp @s 100.0 70.0 200.0 -90.0 10.0

หนึ่ง tp ต่อติ๊กจากเชนฟังก์ชัน ใช้ได้กับทุกเวอร์ชันและไม่ต้องมีอะไรพิเศษ ปัญหาทั้งหมดอยู่ที่ความเนียน:

  • 20 คีย์เฟรมต่อวินาที ช็อตสิบวินาทีคือ 200 บรรทัด tp
  • การเดินแบบเชิงเส้นดูเป็นกลไก การเคลื่อนกล้องจริงจะค่อย ๆ เร่งและผ่อน
  • การหมุนวนกลับผิดพลาดง่าย จาก yaw 170 ไป -170 คือการหัน 20 องศา แต่การอินเทอร์โพเลตแบบตรง ๆ จะหมุน 340 องศาไปผิดทาง ต้องนอร์มัลไลซ์ผลต่างมุมให้อยู่ในช่วง -180…180 ก่อนเดินทีละขั้น

การสร้างบรรทัดเหล่านั้นคือหน้าที่ของเครื่องมือคีย์เฟรม — คุณวางตำแหน่งแค่ไม่กี่จุด แล้วมันจะสร้างฟังก์ชันรายติ๊กพร้อมการ easing ให้

การ Easing

สิ่งที่แยกงานมือสมัครเล่นออกจากงานที่ดูได้ คือเส้นโค้งการอินเทอร์โพเลต ระหว่างสองคีย์เฟรม โดยมี t จาก 0 ถึง 1:

linear      t
ease-in-out t < 0.5 ? 2t²  :  1 − 2(1−t)²
smoothstep  t² × (3 − 2t)

smoothstep เป็นค่าปลอดภัยที่ใช้ได้ทั่วไป ใช้กับตำแหน่งและการหมุนพร้อมกัน ไม่งั้นกล้องจะไปถึงก่อนหันเสร็จ

วิธีที่ 2: ไทม์ไลน์ สำหรับทุกอย่างยกเว้นกล้อง

เวอร์ชันใหม่ ๆ เพิ่มรีจิสทรี timeline เข้ามา และมันชวนให้อ่านว่าเป็นแทร็กกล้อง:

data/<namespace>/timeline/intro.json

มันไม่ใช่ ไทม์ไลน์ทำงานกับนาฬิกาของโลก และคีย์เฟรม แอตทริบิวต์ของสภาพแวดล้อม — สีท้องฟ้าและหมอก เสียงบรรยากาศและเพลง บล็อกแสง — พร้อมการอินเทอร์โพเลตแบบเนทีฟ มันเลื่อนผู้เล่นไม่ได้ ดังนั้นตัวกล้องยังต้องใช้วิธีที่ 1 สิ่งที่ไทม์ไลน์ทำได้ดีคือ อารมณ์ ของคัตซีน: เฟดท้องฟ้า เปลี่ยนหมอก และสลับเพลงให้ตรงจังหวะกับการเทเลพอร์ต โดยไม่ต้องมีคำสั่งรายติ๊กสำหรับแต่ละอย่าง

ข้อเสียคือมันมีแค่ในเวอร์ชันใหม่ ๆ ดังนั้นแผนที่ที่รองรับไคลเอนต์เก่าต้องจำลองอารมณ์ด้วย /time และ /weather

ทำให้ผู้เล่นอยู่กับที่

เส้นทางเทเลพอร์ตต้องสู้กับสองอย่าง:

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

ซ่อน HUD

โหมดสเปกเตเตอร์และ F1 พาไปได้เกือบสุดทาง สำหรับเฟรมที่สะอาด รีซอร์สแพ็กที่ลบสไปรต์ HUD จะกำจัดเป้าเล็งและฮอตบาร์ โดยผู้เล่นไม่ต้องกดอะไร — ดูคู่มือ HUD

วางคีย์เฟรมบนเส้นทางแล้วเอ็กซ์พอร์ตฟังก์ชันรายติ๊ก และสร้างไทม์ไลน์ที่กำหนดฉากรอบ ๆ มัน ด้วย Cutscene & Timeline Builders

ตัวสร้างคัตซีนและไทม์ไลน์ →

คู่มือเพิ่มเติม

ดูทั้งหมด →