‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะสร้างปืนและเราจะเรียนรู้ว่าเราจะสร้างปืนสำหรับเกมนี้ได้อย่างไร
‫เพื่อให้สามารถสับเปลี่ยนได้ เพื่อให้เราสามารถมีคุณสมบัติที่แตกต่างกันในปืนประเภทต่างๆ
‫และนั่นคือวิธีการทำงานของสถาปัตยกรรมโดยทั่วไปในนักกีฬาคนแรกหรือคนที่สาม มาดำดิ่งลงไปและดูว่ามันทำอย่างไร
‫ตกลง.
‫ดังนั้นเราจึงไม่ได้ตรวจสอบแผนโครงการของเรามาระยะหนึ่งแล้ว
‫เมื่อใดก็ตามที่เราไปถึงแผน การเคลื่อนไหวก็เสร็จสิ้น
‫แอนิเมชั่นสำหรับตอนนี้เสร็จแล้วและการถ่ายทำ นั่นคือสิ่งที่เราต้องโฟกัสต่อไป
‫ตอนนี้ มันค่อนข้างจะสับสนนิดหน่อย เพราะตาข่ายของเรามีปืนอยู่แล้ว แต่จริงๆ แล้ว เราไม่ต้องการใช้ปืนนี้
‫เราต้องการนำไปใช้ในทางที่ต่างออกไป
‫เหตุผลที่อยู่ในประเภทเกมยิงปืน คุณมักจะต้องการสลับไปมาระหว่างอาวุธหรืออย่างน้อยก็มีตัวละครที่แตกต่างกัน
‫มีอาวุธต่างกัน
‫และวิธีที่ง่ายที่สุดในการทำเช่นนี้คือการออกแบบปืนให้เป็นสิ่งที่แยกจากตัวละคร เพื่อให้คุณสามารถสลับออกเพื่อให้มันรับผิดชอบในวิธีการยิง
‫ถ้าเป็นเครื่องยิงจรวด ปืนลูกซอง หรือปืนไรเฟิล พวกเขาจะทำสิ่งที่แตกต่างออกไป
‫ตอนนี้ คุณอาจบอกว่า โอเค มาสร้างส่วนประกอบปืน และเราสามารถติดส่วนประกอบปืนนั้นไว้ใต้ตาข่ายของเราที่จะใช้งานได้
‫ยกเว้นว่าเราจะสูญเสียโมดูลาร์ที่ช่วยให้เราสามารถเพิ่มส่วนประกอบหลายอย่างให้กับปืนได้
‫สิ่งที่เราอยากทำจริงๆ ก็คือ ไปในเส้นทางของการมีนักแสดงสำหรับปืนที่เด็กสำหรับตัวละครที่ยิง
‫นี่คือสิ่งที่เราไม่เคยเจอมาก่อน แต่มันใช้งานได้แบบนี้
‫คุณสามารถมีตัวละครนักกีฬาและปืนได้ตั้งแต่ยังเป็นเด็ก และตัวละครนักกีฬาสามารถมีองค์ประกอบหลายอย่างที่เป็น
‫ID เด็กซึ่งกันและกัน
‫คุณมีแคปซูลแล้ว เรามีตาข่ายเหมือนลูกของแคปซูลในขณะนี้ และส่วนประกอบของปืนสามารถเป็นรหัสเด็กได้
‫ดังนั้นเมชจึงรับ ID ลูกไปที่เมชของตัวละคร
‫และถ้ามันมีส่วนประกอบอื่นๆ เช่น อาจมีอนุภาคที่ปากกระบอกปืน ก็อาจถูกเพิ่มเข้าไปในตาข่าย
‫คุณจะเห็นได้ว่าลำดับชั้นเหล่านี้มีความเป็นอิสระ คุณมีองค์ประกอบของฉาก
‫ลำดับชั้นที่แปลงไปทางด้านขวา และสามารถอยู่ในลำดับชั้นที่แน่นอนได้
‫จากนั้นลำดับชั้นของนักแสดงก็เป็นไปตามลำดับชั้นขององค์ประกอบฉาก
‫นักแสดงไม่มีลำดับชั้นของตนเอง
‫นี่เป็นบิตที่ใช้เวลาเล็กน้อยในการทำความเข้าใจและเป็นช่วงเวลาที่ฉันคลิกจริงๆ
‫ที่จริงแล้วไม่มีลำดับชั้นของนักแสดง มีเพียงลำดับชั้นขององค์ประกอบของฉาก
‫มีนักแสดงที่เป็นเจ้าขององค์ประกอบของฉาก ดังนั้นพวกเขาจึงมีลำดับชั้นเนื่องจากองค์ประกอบของฉากมีความเกี่ยวข้องกัน
‫แต่จริงๆ แล้วพวกเขาไม่มีความสัมพันธ์ระหว่างกัน
‫จากที่กล่าวมา ในการกำหนดบริบท สิ่งแรกที่เราต้องการทำคือสร้างตัวเองเป็นนักแสดงปืน
‫C++
‫และในกรณีนี้จะไม่ใช่เบี้ยหรือตัวละครหรืออะไรทำนองนั้น
‫มันจะเป็นนักแสดงที่ตรงไปตรงมาเพราะเราไม่ต้องการพฤติกรรมใดๆ
‫คุณไม่จำเป็นต้องครอบครองมัน
‫เราไม่ต้องทำอะไร
‫เป็นนักแสดงที่เรียบง่ายและเรียบง่าย
‫ไปข้างหน้าและทำอย่างนั้น
‫อันที่จริง ความท้าทายเล็กน้อยสำหรับคุณ
‫ไปข้างหน้าและสร้างนักแสดง C ++ สิ่งที่คุณควรจะสามารถทำความท้าทายเล็ก ๆ น้อย ๆ ลองทำดู
‫ตกลง.
‫กลับมา ฉันจะทำคลาส C++ ใหม่ ไม่จำเป็นต้องมี มาดูกันเลย นักแสดง
‫นั่นคือสิ่งที่เราต้องการเลือก และเราจะดำเนินการต่อไปและเรียกปืนกระบอกนี้ว่า ปืนเดียว ง่ายๆ อย่างมาสร้างคลาสกันเถอะ
‫และเมื่อเสร็จแล้ว มันจะปรากฏขึ้นในตัวแก้ไขโค้ดของคุณ และเราไม่ต้องทำอะไรกับมันเลย
‫เพราะสิ่งแรกที่ฉันต้องการทำคือสร้างคลาสย่อยพิมพ์เขียว
‫คลิกขวาที่ชั้นเรียนของคุณในเบราว์เซอร์เนื้อหาและแทนที่จะเรียกมันว่าปืนของฉัน ฉันไม่รู้ว่าทำไมมันจึงตั้งค่าเริ่มต้นที่เสียงบี๊บที่ขีดเส้นใต้ปืนโดยอัตโนมัติ
‫ฉันจะใส่ไว้ในรากของเนื้อหา
‫สี่.
‫ตอนนี้เราสามารถจัดระเบียบใหม่ได้เล็กน้อยเมื่อเรามีชั้นเรียนมากขึ้น
‫อย่างที่ฉันพูดไปก่อนหน้านี้ เราจะสร้างคลาส Blueprint
‫อย่างที่คุณเห็นมันว่างเปล่าอย่างสมบูรณ์
‫มีรากของฉากเริ่มต้นนี้
‫เราต้องการที่จะแก้ไขปัญหานั้น
‫สิ่งที่เราอยากทำคือเพิ่มส่วนประกอบใน C++ เพราะนี่คือหลักสูตร C++
‫มาฝึกกล้ามการเพิ่มส่วนประกอบใน C++ กัน
‫นอกจากนี้ยังหมายความว่าเราจะเข้าถึงส่วนประกอบเหล่านั้นจากภายในโค้ด C++ ของเราเพื่อจัดการและเขียนโค้ดของเราที่นั่น
‫ตอนนี้การตั้งค่าที่เราต้องการคือการมีองค์ประกอบรูทของฉาก ซึ่งจะเป็นองค์ประกอบฉากและจากนั้นก็ตาข่ายที่เป็นลูกของสิ่งนั้น
‫ทำไมเราต้องการสิ่งนั้น
‫เพราะเราต้องการที่จะเปลี่ยนตำแหน่งของตาข่ายที่สัมพันธ์กับรูทของปืน เพื่อให้เราสามารถวางที่จับในตำแหน่งต่างๆ
‫สำหรับตาข่ายที่แตกต่างกันได้
‫ดังนั้นถ้าเรามีปืนที่แตกต่างกัน เราสามารถตรวจสอบให้แน่ใจว่าพวกมันทั้งหมดมีด้ามจับนี้ในที่เดียวกัน
‫เพื่อที่ว่าเมื่อเราติดมันเข้ากับมือของตัวละคร มันจะปรากฏขึ้นพร้อมกับด้ามจับในมือของตัวละคร
‫แล้วเราจะทำอย่างนั้นได้อย่างไร?
‫เราจะไปที่โค้ด Visual Studio ของเรา และฉันจะสร้างส่วนส่วนตัวที่นี่ ซึ่งเราจะเก็บคุณสมบัติใหม่สำหรับส่วนประกอบต่างๆ
‫ที่เรากำลังจะเกิดขึ้น
‫ฉันจะสร้างคุณสมบัติใหม่ที่มองเห็นได้ทุกที่ที่เราต้องการให้ส่วนประกอบของเรามองเห็นได้ทุกที่เพราะเป็นตัวชี้
‫เราไม่ต้องการที่จะแก้ไขพอยน์เตอร์ได้ แต่เราต้องการเห็นคุณสมบัติของพอยน์เตอร์เหล่านั้นและสามารถทำได้
‫สิ่งเหล่านั้น และนั่นกลายเป็นขอบเขตของชั้นเรียนที่เราชี้ไป
‫จากนั้นจะตัดสินว่าจะแสดงสิ่งใด สิ่งใดแก้ไขได้
‫ทั้งหมดที่เราต้องการจะพูดในที่นี้คือไม่ใช่ตัวชี้ที่สามารถแก้ไขได้
‫นั่นเป็นเหตุผลที่เราจะมองเห็นได้อยู่แล้ว
‫อย่างไรก็ตามมีการแก้ไขเล็กน้อยที่นั่น
‫ตอนนี้เราต้องการให้สิ่งนี้เป็นคุณเพราะเป็นองค์ประกอบ แล้วก็เป็นองค์ประกอบฉากที่เราต้องการ
‫หากฉันสามารถพิมพ์ได้อย่างถูกต้อง ฉันเคยเห็นส่วนประกอบและเป็นตัวชี้ไปยังส่วนประกอบนั้น และนี่จะเป็นองค์ประกอบรูทของเรา
‫เช่นนั้นแล้วเราจะต้องการทรัพย์สินของคุณ
‫มองเห็นได้ทุกที่สำหรับตาข่ายของเราอีกครั้ง
‫คลาสสำหรับตาข่ายจะเป็นส่วนประกอบตาข่ายแบบคงที่ใหม่เพราะนี่ไม่ใช่ตาข่ายโครงกระดูก มันแข็ง
‫ไม่มีโครงกระดูก ไม่มีกระดูก
‫อยากให้มันเป็นพอยน์เตอร์ แล้วนี่จะเรียกว่าเมชอย่างนั้น
‫อันที่จริง ฉันคิดว่าฉันต้องระวังเล็กน้อยที่นี่ เพราะฉันคิดว่าองค์ประกอบรูทมีอยู่แล้วในคลาสหลักสำหรับนักแสดง
‫เลยจะเรียกเส้นทางนี้แทน
‫แล้วเราก็ได้คอนสตรัคเตอร์ไปแล้วใน C++
‫เราจะต้องรวมไฟล์ส่วนหัวที่เหมาะสมไว้ที่นี่
‫ตอนนี้ เคล็ดลับเล็กน้อยเมื่อคุณอยู่ในโค้ด Visual Studio คือการค้นหาว่าไฟล์ส่วนหัวอยู่ที่ไหน
‫คุณใช้ Control P และคุณจะค้นหา
‫ในกรณีนี้ เราต้องการทราบสแตติกเมช
‫ส่วนประกอบตาข่ายแบบคงที่และเราจะเห็นว่าส่วนประกอบตาข่ายแบบคงที่จุด h หากฉันเปิดขึ้นแล้ววางเมาส์เหนือแท็บ
‫คุณจะเห็นว่ามันอยู่ใต้เส้นทางยาวนี้
‫แต่สิ่งที่น่าสนใจก็คือมันอยู่ภายใต้ชั้นเรียน ซึ่งเราสามารถมองขึ้นไปจากที่นั่นได้
‫มันจะเป็นส่วนประกอบ องค์ประกอบตาข่ายแบบคงที่
‫ดังนั้นฉันสามารถปิดแท็บนั้นลงและเหนือส่วนรวมของเรา อันที่จริงด้านล่างที่รวมไว้สำหรับปืนของเรา
‫เราจะทำการรวมแฮชสำหรับส่วนประกอบและส่วนประกอบตาข่ายแบบคงที่
‫ที่จริงแล้ว ฉันเพิ่งจำได้ว่าตาข่ายที่เรามีด้วยเหตุผลบางอย่างไม่ใช่ตาข่ายแบบคงที่
‫ฉันเชื่อว่าพวกมันอาจเป็นโครงตาข่าย
‫คุณสามารถค้นพบสิ่งนี้ได้โดยเข้าไปในชุดสินทรัพย์ ยิงอาวุธในเกม และดูมาตรการเหล่านี้
‫และแน่นอนว่า ถ้าคุณวางเมาส์เหนือพวกมัน คุณจะเห็นว่าพวกมันเป็นโครงตาข่าย
‫อย่าถามฉันว่าทำไม
‫ด้วยเหตุผลบางอย่างนั่นคือสิ่งที่พวกเขาเป็น
‫ดังนั้นเราจึงต้องการเปลี่ยนประเภทเป็น skeletal mesh ในไฟล์ส่วนหัว
‫ดังนั้นแทนที่จะใช้ตาข่ายแบบคงที่ มันจะใช้ตาข่ายโครงกระดูกแทน
‫และเช่นเดียวกัน มันจะเป็นโครงกระดูก
‫ส่วนประกอบตาข่ายที่เราอยากจำ
‫ไม่มีคุณอยู่ในไฟล์ส่วนหัว
‫และฉันเชื่อว่าพวกเขากำลังเห็นส่วนประกอบที่รวมอยู่ที่นี่โดยค่าเริ่มต้นแล้ว
‫ดังนั้นถึงเวลาท้าทายในการเพิ่มองค์ประกอบตาข่ายของคุณเอง
‫เราจะสร้างองค์ประกอบรูทฉาก ตั้งค่าเป็นรูทและตั้งค่าเป็นรูทสำหรับคลาส และสร้างองค์ประกอบตาข่ายและตั้งค่าสิ่งที่แนบมาระหว่างทั้งสองเพื่อให้องค์ประกอบตาข่ายเป็นลูกของตะเข็บรูทนั้น
‫ส่วนประกอบ.
‫หยุดวิดีโอชั่วคราวและไปกันเลย
‫โอเค ยินดีต้อนรับกลับ
‫ดังนั้นเราจะไปตั้งค่า
‫อย่างแรกเลย รูทของเรา มันจะเป็นการสร้างอ็อบเจ็กต์ย่อยที่เป็นค่าเริ่มต้นของประเภท
‫คุณเห็นส่วนประกอบแล้วเราจะตั้งชื่อให้มันโดยใช้มาโครข้อความ เราจะเรียกมันว่ารูทและปิดท้ายด้วยเครื่องหมายอัฒภาค
‫จากนั้นเราจะตั้งเป็นรูท
‫ดังนั้น set root component จะตั้งเป็นองค์ประกอบ root สำหรับนักแสดง
‫ดังนั้นให้ตั้งรูทเป็นส่วนประกอบรูท
‫สิ่งที่ดี.
‫จากนั้นเราจะต้องการสร้างตาข่ายของเรา
‫ดังนั้นเมชเท่ากับสร้างออบเจ็กต์ย่อยเริ่มต้นและเป็นองค์ประกอบโครงร่างโครงร่างของคุณที่เราต้องการเป็นคลาสแล้วมาโครข้อความเพื่อเรียกมันว่าเมชและเพิ่มอัฒภาคที่ส่วนท้าย
‫จากนั้นเราต้องการตั้งค่าไฟล์แนบ
‫มันจะเป็นตาข่ายลูกศรตั้งขึ้น
‫ตั้งค่าไฟล์แนบ และเราต้องการแนบไปกับรูทอย่างของเจ๋งๆ เพื่อให้เราสามารถดำเนินการต่อและบันทึกไฟล์นั้นได้
‫และหวังว่าจะคอมไพล์และสร้าง แล้วเราจะไปที่ Unreal และดูคลาสย่อยของเรา
‫และแน่นอนว่าในที่นี้ เราได้รูทของตัวเองแล้ว เรามีตาข่ายย่อย เรายังมีรูทของฉากเริ่มต้นซึ่งติดอยู่รอบๆ
‫ฉันคิดว่าเรามาเริ่มตัวแก้ไขใหม่แล้วดูว่าจะหายไปไหม
‫บางครั้งเมื่อเพิ่มส่วนประกอบ สิ่งต่างๆ อาจค้างอยู่อย่างนั้นและถูกแคชไว้
‫และแน่นอนว่า ถ้าเราเปิดพิมพ์เขียวปืน BP อีกครั้ง คุณจะเห็นว่าเราเพิ่งมีส่วนประกอบทั้งสองนี้
‫เราได้เพิ่มรูทและเมชแล้ว และเราอาจต้องการดำเนินการต่อและเปลี่ยนเมชสำหรับตาข่ายโครงกระดูกอันใดอันหนึ่งจากแอสเซทแพ็กจากเกมยิงปืน
‫เรามีปืนยาว เรามีปืนยิงปืน
‫ฉันจะเลือกอันนี้เป็นปืนไรเฟิล
‫ดังนั้นการเรียกมันว่าปืน BP นั้นค่อนข้างไม่สุภาพ
‫นี่น่าจะเป็นปืนไรเฟิล BP
‫มาเปลี่ยนชื่อกันเถอะ ไปที่เบราว์เซอร์เนื้อหาแล้วเปลี่ยนชื่อเป็น BP Rifle หรือ BP Gun ไรเฟิลขีดเส้นใต้
‫ตอนนี้เรียกมันว่าปืนไรเฟิล BP โดยตรง
‫ไปเลย
‫และนั่นทำให้เรามีปืน
‫เห็นได้ชัดว่าตอนนี้หมายความว่าเราสามารถมีคุณสมบัติทุกประเภทในการต่อต้านนักแสดงคนนี้
‫เช่นความแรงของอาวุธ ระยะของอาวุธ และอื่นๆ โดยการสร้างคุณสมบัติใหม่ใน C++
‫และจุดแข็งของการมีสถาปัตยกรรมนี้ก็คือว่าตัวปืนนั้นมีความแตกต่างกันเล็กน้อย
‫เราสามารถมีกลไกการยิงที่แตกต่างกันสำหรับปืนไรเฟิลกับสไนเปอร์กับเกม RPG อะไรทำนองนั้น
‫ดีมาก
‫และเรายังสามารถมีสถิติที่แตกต่างกัน เพื่อให้เราสามารถมีปืนไรเฟิลที่แข็งแกร่งและปืนไรเฟิลที่อ่อนแอ ขึ้นอยู่กับคลาสย่อยของพิมพ์เขียวที่แตกต่างกัน
‫สิ่งที่เย็น.
‫ในการบรรยายครั้งต่อไป เราจะมาดูกันว่าเราจะวางไข่ปืนนี้อย่างไรในฐานะลูกของตัวละครปัจจุบันของเรา
‫ฉันจะไปพบคุณที่นั่น.