‫ดังนั้นเราจึงต้องการให้กล้องสั่นเมื่อกระสุนของเรากระทบ อะไรทำนองนั้น
‫และเราต้องการให้มันสั่นเมื่อสระของเราตาย
‫เฮ้ ยินดีต้อนรับกลับมา
‫ในวิดีโอนี้ เราจะเพิ่มเอฟเฟกต์พิเศษอีกประเภทหนึ่งให้กับเกมของเราที่เกี่ยวข้องกับการเขย่ากล้อง
‫เราต้องการเขย่ากล้องเมื่อกระสุนพุ่งชนบางสิ่ง และเมื่อบ่อน้ำของเราตาย
‫สิ่งนี้จะเพิ่มความสมบูรณ์ให้กับเกมอีกเล็กน้อยซึ่งจะทำให้รู้สึกเป็นมืออาชีพมากขึ้นอีกเล็กน้อย
‫มาดำน้ำกันตอนนี้เลย
‫เราอยู่ในเครื่องมือแก้ไขแล้ว และฉันต้องการเพิ่มคลาสใหม่สำหรับการสั่นของกล้อง
‫Unreal Engine มีคลาสในตัวสำหรับการเขย่ากล้อง
‫ตอนนี้ฉันกำลังจะสร้างโฟลเดอร์ใหม่ที่นี่ในโฟลเดอร์พิมพ์เขียวและเรียกกล้องนี้ว่ากล้องสั่น
‫และในโฟล์เดอร์การสั่นของกล้อง
‫ฉันจะคลิกขวาและสร้างพิมพ์เขียวใหม่
‫เหตุผลที่เราสร้างพิมพ์เขียวก็เพราะว่านี่เป็นหนึ่งในสิ่งที่สร้างได้ง่ายกว่ามากจากด้านพิมพ์เขียว
‫เนื่องจากมีตัวแปรมากมายที่ต้องปรับให้เข้ากับการสั่นของกล้อง และชั้นเรียนที่เราต้องการคือกล้องมาติเน่ เขย่าเพื่อให้เราสามารถค้นหาการสั่นของกล้องและเลือก
‫Matinée กล้องสั่น
‫คลิกเลือกแล้วเราจะเรียกการสั่นของกล้องเป็นครั้งแรก
‫BP ตีกล้องสั่น
‫ตอนนี้ ให้ดับเบิลคลิกพิมพ์เขียวใหม่นี้แล้วเปิดขึ้นมา เราจะเห็นว่ามีแผงรายละเอียดที่มีตัวแปรต่างๆ
‫มากมายให้เลือก
‫และมาพูดถึงพารามิเตอร์บางอย่างที่มีอยู่ในคลาสการสั่นของกล้องกัน
‫ขณะนี้ มีบางส่วนที่นี่ และเราจะพูดถึงเฉพาะบางคู่ที่ส่งผลต่อความรู้สึกโดยรวมของการสั่นของกล้อง
‫ตอนนี้คุณจะเห็นว่ามีส่วนที่เรียกว่าการสั่น
‫และเหตุผลที่ส่วนนี้เรียกว่าการสั่นนั้นเป็นเพราะการสั่นของกล้องเกี่ยวข้องกับการสั่นของกล้อง
‫นี่คือหน้า Wikipedia สำหรับคลื่นไซน์
‫คลื่นไซน์เป็นฟังก์ชันทางคณิตศาสตร์ และเราไม่จำเป็นต้องเข้าใจคณิตศาสตร์ที่อยู่เบื้องหลังคลื่นไซน์
‫แต่มันช่วยให้เห็นว่าคลื่นไซน์เป็นอย่างไร
‫ถ้าฉันเลื่อนลงมาทางขวาตรงนี้ ฉันเห็นคลื่นสีแดงนี่ตรงนี้ และมันเขียนว่า sine a sine wave oscillates
‫นั่นหมายความว่ามันขึ้นและลงหรือกลับไปกลับมา
‫ดังนั้นถ้ากล้องของเราถูกกระตุกไปมาอย่างราบรื่น เราว่ากล้องสั่น
‫ตอนนี้เราเห็นว่าเรามีระยะเวลาการแกว่งและเวลาผสมผสานและเวลาผสมผสาน
‫ระยะเวลาส่งผลต่อระยะเวลาที่การสั่นจะคงอยู่
‫ค่าเหล่านี้เป็นค่าที่คุณสามารถทดลองได้ แต่ฉันได้ทำการทดลองไปแล้วและรู้ค่าของ
‫ballpark ที่ดีสำหรับการสั่นของกล้องที่กระทบ
‫เมื่อโปรเจกไทล์ชนกับบางสิ่ง เราจะมีระยะเวลาค่อนข้างสั้น
‫ทีนี้ นี่คือหน่วยวินาที และผมจะเลือก 0 2 5 วินาทีสำหรับระยะเวลาของการสั่นของกล้องนี้และสำหรับเวลาผสมผสานและผสมผสาน
‫ฉันจะใช้ค่า 0 05 ดังนั้น 0 05 สำหรับการผสมผสานในเวลาและ 0 05 สำหรับเวลาผสม
‫นี่คือระยะเวลาที่ใช้ในการผสานเข้าและออกจากการสั่นของกล้อง ซึ่งจะคงอยู่เป็น 0 2 5 วินาที
‫ตอนนี้เรามีการสั่นประเภทต่างๆ
‫เรามีการสั่นแบบหมุน และจะหมุนกล้องตามฟังก์ชันการสั่นนั้น
‫เรามีการสั่นของตำแหน่งที่จะเหวี่ยงกล้องไปรอบๆ ในอวกาศ และเกิดการสั่นของมุมมอง ซึ่งจะส่งผลต่อขอบเขตการมองเห็น
‫ซึ่งโดยทั่วไปแล้วจะเป็นการซูมเข้าและออกด้วยกล้อง
‫ตอนนี้การสั่นของการหมุนและขอบเขตการมองเห็นเป็นสิ่งที่มีแนวโน้มที่จะทำให้เกิดอาการเมารถมากขึ้น
‫เพื่อให้คุณสามารถทดลองกับสิ่งเหล่านั้นได้หากต้องการ
‫แต่สำหรับการสั่นของกล้องนี้ เราจะเปลี่ยนการสั่นของตำแหน่ง
‫ตอนนี้เรามีแกน X, Y และ Z สามแกน และเราเห็นว่าคลื่นไซน์จะเหวี่ยงอะไรบางอย่างไปมา
‫การสั่นเหล่านี้จะเหวี่ยงกล้องไปมาในทิศทาง X, Y และ z
‫ฉันจะคลิกดรอปดาวน์เหล่านี้เพื่อขยาย แล้วเราจะเห็นว่าแต่ละแกนมีแอมพลิจูด
‫ความถี่ ตลอดจนออฟเซ็ตเริ่มต้นและรูปคลื่น
‫ตอนนี้ ออฟเซ็ตเริ่มต้นสำหรับการสั่นของกล้องถูกตั้งค่าเป็นแบบสุ่ม และเราสามารถปล่อยให้มันเป็นแบบสุ่ม เพื่อให้เรามีการสั่นของกล้องที่คาดเดาได้น้อยลง
‫และคลื่นไซน์เป็นรูปแบบคลื่นที่ใช้เมื่อกระตุกกล้อง
‫และเราเห็นว่ามีการเคลื่อนไหวขึ้นและลงที่ราบรื่น
‫ตอนนี้แอมพลิจูดคือจำนวนการเคลื่อนไหวสูงสุดในแกนนั้นที่กล้องจะเคลื่อนที่
‫ผมจะตั้งค่าทั้งสามนี้ให้มีแอมพลิจูดเป็นสิบ X, Y และ z และความถี่จะเท่ากับความเร็วที่กล้องสั่น
‫ผมจะตั้งค่าเหล่านี้เป็นสิบด้วย
‫ตอนนี้เราจะมาดูกันว่าหน้าตาจะเป็นอย่างไรทันทีที่เราทำการสั่นของกล้อง
‫แต่ก่อนที่เราจะทำอย่างนั้น ฉันจะสร้างกล้องสั่นอีกแบบหนึ่ง และนี่จะเกิดขึ้นเมื่อตัวรับจำนำตาย
‫คลิกขวาสร้างคลาสพิมพ์เขียวใหม่และค้นหาการสั่นของกล้องและเลือกการสั่นของกล้อง
‫matinée คลิกเลือก
‫และสำหรับสิ่งนี้ เราจะเรียกสิ่งนี้ว่า BP Depth Camera Shake
‫ตอนนี้การสั่นของกล้องมรณะจะรุนแรงกว่าการสั่นของกล้องช็อตเล็กน้อย
‫การสั่นของกล้องที่กระทบจะทำให้กล้องสั่นเมื่อกระสุนปืนของเราชนกับสิ่งใดสิ่งหนึ่ง
‫แต่การสั่นของกล้องมรณะจะทำให้กล้องสั่นเมื่อมีบางอย่างตาย
‫ดังนั้นสำหรับระยะเวลาการแกว่ง ผมจะทำให้นานกว่านี้หน่อย
‫ฉันจะไปป.4 3, 5 วินาทีและสี่ ผสมผสานเวลาและเวลาออก
‫ผมจะตั้งค่าทั้งสองนี้เป็น 0 1.
‫ตอนนี้เพียงแค่บันทึกข้างเคียงผสมผสานเวลาเข้าและออก
‫เปอร์เซ็นต์ของการทำงานเต็มเวลาถูกทำให้เป็นมาตรฐานระหว่างศูนย์ถึงหนึ่งหรือไม่
‫ดังนั้นจุดที่หนึ่งคือ 10% ของระยะเวลาการแกว่งเต็ม
‫ตอนนี้ ผมจะตั้งค่าแอมพลิจูดเป็น 54 X และ Y และปล่อยให้แอมพลิจูด Z อยู่ที่ศูนย์ เพื่อที่เราจะกระตุกกล้องใน
‫X และ Y เท่านั้น -- ความตาย
‫วิธีนี้จะทำให้กล้องสั่นซึ่งดูต่างไปจากเดิมเล็กน้อย
‫และสำหรับความถี่ ผมจะตั้งค่าทั้งคู่นี้เป็น 20
‫ตอนนี้เรามีการสั่นของกล้องแล้ว และได้เวลาใช้งานจริงเพื่อเล่นการสั่นของกล้องเหล่านี้จากฝั่ง
‫C++
‫ในการที่จะเล่นการสั่นของกล้อง เราจำเป็นต้องมีตัวแปรการสั่นของกล้อง
‫หากคุณกำลังใช้ Unreal Engine รุ่นเก่ากว่า Unreal Engine 4 โดยเฉพาะอย่างยิ่ง 25 และต่ำกว่า คลาสสำหรับตัวแปรของคุณจะเป็นคุณ
‫กล้องสั่น.
‫แต่ในเวอร์ชันที่ใหม่กว่า 4 2, หกและสูงกว่า
‫และรวมถึง Unreal Engine 5 ด้วย
‫เราจะใช้คุณมาตินี
‫กล้องสั่น.
‫นั่นคือสิ่งที่เราจะใช้ในวิดีโอนี้
‫ตอนนี้ฟังก์ชั่นในการเล่นกล้องสั่นก็แตกต่างกันเช่นกัน
‫ถ้าคุณอยู่ม.4 2, 5 และต่ำกว่า จากนั้นฟังก์ชันที่คุณจะใช้คือการเล่นของไคลเอ็นต์
‫กล้องสั่น.
‫และนี่คือฟังก์ชันในคลาสคอนโทรลเลอร์ของผู้เล่นใน 4 26 ขึ้นไป รวม 5 0 ซึ่งเป็นสิ่งที่เราใช้อยู่
‫เราจะใช้การสั่นของกล้องเมื่อไคลเอนต์เริ่มเล่น
‫การสั่นของกล้องเลิกใช้แล้ว
‫เนื่องจากเราใช้ Unreal Engine 5 เราจะใช้ไคลเอนต์ เริ่มการสั่นของกล้อง
‫และถ้าคุณใช้ห้าตัว คุณจะต้องทำตามและใช้ไคลเอนต์เริ่มกล้องสั่น
‫แต่สำหรับเครื่องยนต์รุ่นเก่าๆ โดยเฉพาะ 4 2, 5 และต่ำกว่า ใช้คลาสและฟังก์ชันทางด้านซ้ายที่นั่น
‫และทุกคนใช้คลาสและฟังก์ชันทางด้านขวา
‫ตอนนี้เพื่อแสดงให้คุณเห็น นี่คือพื้นฐานการสั่นของกล้องในเอกสารประกอบ และนี่คือส่วนรวมสำหรับมัน
‫ดังนั้นคุณจะใช้ฐานการสั่นของกล้องเฉือนสำหรับการรวม
‫อย่างแรกเลย ฉันต้องการจัดการกับการสั่นของกล้องในคลาสโปรเจกไทล์
‫ที่นี่ในโพรเจกไทล์ ฉันจะเพิ่มการสั่นของกล้อง
‫ตอนนี้จะประกาศให้ทราบต่อไป
‫ฉันจะทำ U
‫ฐานสั่นกล้อง.
‫มันเป็นตัวชี้
‫และฉันจะเรียกมันว่ากล้องสั่นเพราะว่าฉันต้องการตั้งค่านี้จากพิมพ์เขียว
‫เนื่องจากเรามีพิมพ์เขียวการสั่นของกล้อง ฉันจะเปิดเผยสิ่งนี้
‫มันจะเป็นทรัพย์สินใหม่
‫ฉันจะแก้ไขที่ใดก็ได้และให้หมวดหมู่
‫และสำหรับสิ่งนี้ ฉันจะเก็บไว้ในส่วนการต่อสู้
‫ตอนนี้ฉันพร้อมที่จะเล่นกล้องสั่นแล้ว
‫ดังนั้นในโพรเจกไทล์ CP ฉันจะใส่สิ่งนี้ลงในช่องนี้เพื่อตรวจสอบนักแสดงคนอื่น
‫และอย่างแรกที่ฉันจะทำคือต้องแน่ใจว่าฉันได้ตั้งค่าการสั่นของกล้องจากพิมพ์เขียว ซึ่งหมายความว่าฉันต้องตรวจสอบให้แน่ใจว่าการสั่นของกล้องที่กระทบนั้นไม่เป็นโมฆะ
‫ดังนั้น ถ้าฉันโดนกล้องสั่น ฉันก็จะเริ่มการสั่นของกล้องได้
‫และนี่คือไคลเอนต์คอนโทรลเลอร์ของผู้เล่นเริ่มการสั่นของกล้องสำหรับเวอร์ชัน 4 26 ขึ้นไป
‫ตอนนี้สังเกตสองสามสิ่ง
‫สิ่งเหล่านี้เกี่ยวข้องกับคลาสย่อย tw ของตัวแปร ซึ่งหมายความว่าเราต้องการคลาสใหม่
‫ตอนนี้เราสร้างพิมพ์เขียวสำหรับตัวแปรเหล่านี้ ซึ่งหมายความว่าเราสามารถสร้างคลาสย่อยแทนตัวแปรปกติได้ที่นี่
‫ดังนั้นฉันสามารถนำคลาสนี้มาใช้ฐานเขย่ากล้องและใส่ไว้ในคลาสย่อย PT ได้ สมมติว่าคลาสย่อย PT ของ และฉันจะเก็บการประกาศไปข้างหน้าที่นี่
‫และฉันไม่ต้องการเครื่องหมายดอกจันเนื่องจากคลาสย่อย PT ห่อสิ่งนี้ ขึ้นในเทมเพลตและเพราะว่าการสั่นของกล้องที่ฮิตนี้เป็นคลาสย่อย
‫PT ของ ฉันจะเรียกมันว่าคลาสการสั่นของกล้องยอดฮิต และตอนนี้ในโปรเจกไทล์นั้น CPP มากกว่าการสั่นของกล้องที่กระทบ
‫ให้เรียกว่าคลาสการสั่นของกล้องยอดฮิต และตอนนี้ เราก็เรียกได้แล้ว ลูกค้าเริ่มกล้องสั่น
‫ตอนนี้ ฟังก์ชันนี้เป็นของคอนโทรลเลอร์ของผู้เล่น และเราอยู่ในโพรเจกไทล์ CP และเราไม่มีตัวแปรสำหรับคอนโทรลเลอร์ของผู้เล่น
‫แต่เรามีฟังก์ชันนี้ รับคอนโทรลเลอร์สำหรับผู้เล่นตัวแรกซึ่งมีอยู่ใน U world class ดังนั้นเราสามารถเรียก
‫get โลกแล้วเรียกรับตัวควบคุมผู้เล่นคนแรก
‫ดังนั้นเราจะทำอย่างนั้น
‫ก่อนอื่นเราจะเรียก Git World จากนั้นเราจะเรียก get first player controller และจาก get first
‫player controller เราสามารถเรียก client start กล้องสั่นและเราจะเห็นว่านี่ต้องใช้ PT
‫sub class ของเรา กำลังจะผ่านคลาสการสั่นของกล้อง Hit และพารามิเตอร์อินพุตที่เหลือเหล่านี้มีค่าเริ่มต้นเพื่อให้เราสามารถละเว้นอินพุตที่เหลือได้
‫ลองมารวบรวมสิ่งนี้กันก่อน
‫กลับมาที่นี่ในเครื่องมือแก้ไข เราพร้อมที่จะทดสอบสิ่งนี้แล้ว
‫ตอนนี้เราสร้างพิมพ์เขียวและคลาสย่อย PT ของ แต่เราต้องตั้งค่าคลาสย่อย PT นั้น
‫มาดูนักแสดงและโพรเจกไทล์ของ BP กัน
‫ฉันจะเปิดโปรแกรมแก้ไขพิมพ์เขียวฉบับสมบูรณ์และไปที่ส่วนการต่อสู้ และนี่คือคลาสย่อย
‫hit camera shake t ของฉันสามารถเปิดสิ่งนี้และเลือก hit camera shake และตอนนี้จะถูกตั้งค่า
‫เลยจะรวบรวม press play มาให้ดูกันว่าเราจะทำให้กล้องสั่นไหวไหม
‫และมันไป
‫สุดยอด.
‫ต่อไปผมอยากเล่นกล้องสั่นเมื่อพ็อดตาย
‫ผมจะเข้าไปในบ่อเบสและเพิ่มตัวแปรการสั่นของกล้องที่นี่
‫ข้างล่างนี้ เรามาสร้าง t subclass ของตัวแปรกัน
‫ข้าพเจ้าจะประกาศให้ทราบต่อไป
‫มันจะเป็นฐานการสั่นของกล้องของคุณและฉันจะเรียกคลาสการสั่นของกล้องความลึกนี้
‫และเหมือนกับอีกอันของเรา, เรากำลังจะทำให้นี่เป็นพร็อพเพอร์ตี้ U
‫แก้ไขการต่อสู้ประเภทที่ใดก็ได้ และตอนนี้เรามีคลาสการสั่นของกล้องที่นี่ในฐานพล
‫ตอนนี้ฉันจะขอท้าให้คุณเล่นกล้องสั่นความตายเพื่อจำนำเมื่อมันตาย
‫ดังนั้นคุณจะทำสิ่งนี้เมื่อ -- ตาย และนั่นจะต้องจัดการกับการทำลายล้างแน่นอน
‫ดังนั้น เลือกตำแหน่งที่ถูกต้องในฟังก์ชันนี้เพื่อเล่นกล้องสั่นแล้วคอมไพล์โค้ดของคุณ
‫ตั้งค่าคลาสย่อยของค่าในคลาสพิมพ์เขียวของรถถังและหอคอยแล้วทดสอบ
‫หยุดวิดีโอชั่วคราวและใช้กล้องมรณะ
‫เขย่าเลย
‫ตกลง.
‫ดังนั้นเราจึงมีคลาสการสั่นไหวของกล้อง def
‫ไปที่บ่อฐาน CP แล้วฉันจะเลื่อนขึ้นไปจัดการกับการทำลายล้าง
‫และอย่างแรกที่ฉันจะทำคือตรวจสอบว่าได้ตั้งค่าคลาสการสั่นของกล้องความลึก และถ้าใช่ เราก็สามารถเล่นการสั่นของกล้องได้จริง
‫ตอนนี้เราไม่มีตัวชี้ไปยังตัวควบคุมของผู้เล่นที่นี่ ดังนั้นฉันจะเรียก
‫Get World จากที่นี่ รับตัวควบคุมผู้เล่นคนแรก และจากที่นั่นฉันจะโทร
‫ลูกค้าเริ่มกล้องสั่น
‫และที่นี่เราสามารถผ่านกล้องความลึก คลาสการสั่นไหว
‫และที่นั่นเรามีมัน
‫มารวบรวมสิ่งนี้กัน แล้วเราจะกลับไปที่เครื่องมือแก้ไข และฉันจะเปิดโฟลเดอร์ --'s,
‫BP -- tank
‫และที่นี่ เรามีคลาสการสั่นของกล้องระยะชัดลึก
‫ฉันจะทำให้มันตาย
‫กล้องสั่นรวบรวมและบันทึกและปิด
‫ฉันจะปิดโปรเจ็กไทล์ด้วย
‫และเปิดบ่อ BP, ป้อมปืน และตั้งค่าการสั่นของกล้องความลึกระดับการสั่นของกล้องความลึกที่นี่เช่นกัน
‫ตอนนี้เราสามารถทดสอบความตายได้
‫เรามาดูกันว่ามันทำงานอย่างไร
‫เคย์ ฉันจะขึ้นไปบนหอคอยแห่งหนึ่งและ
‫โบห์ม.
‫กล้องสั่นทำงาน
‫สิ่งสุดท้ายที่ต้องตรวจสอบคือถ้าเราสั่นกล้องเมื่อหอคอยตาย
‫ไปกันเถอะ ไปฆ่าหอคอยแห่งใดแห่งหนึ่ง
‫และเราไปที่นั่น
‫เราก็ได้กล้องสั่น
‫สุดยอด.
‫สรุปตอนนี้เรากำลังเขย่ากล้องอยู่
‫เรากำลังเขย่าเมื่อกระสุนพุ่งชนบางสิ่งและเมื่อสระใดสระหนึ่งตาย
‫นี่เป็นเพียงหนึ่งในเอฟเฟกต์ที่สวยงามที่ทำให้เกมของเราดูเป็นมืออาชีพมากขึ้น
‫พูดถึงการขัดเกลาในวิดีโอหน้าของเรา เราจะขัดเกลาเกมและทำให้มันอยู่ในสถานะการทำงานขั้นสุดท้าย
‫เพื่อที่เราจะสามารถสรุปส่วนนี้และมีเกมที่ใช้งานได้อย่างสมบูรณ์ภายใต้เข็มขัดของเรา
‫เจอกันเร็วๆนี้ครับ