ซีซันเปลี่ยนเอฟเฟกต์เปิดเผย


10

ฉันกำลังดูตัวอย่างทีเซอร์สำหรับซีซั่น After Fallและฉันรู้สึกประทับใจกับผลที่พวกเขาใช้ในการเปลี่ยนระหว่างฤดูกาล (ประมาณ 21-24 วินาที):

แอนิเมชันที่แสดงเอฟเฟกต์เปิดเผย

ศิลปะระดับรวมถึงพื้นหลังและแพลตฟอร์มเบื้องหน้าเปลี่ยนจากฤดูใบไม้ร่วงสีซีเปียเป็นฤดูหนาวลาเวนเดอร์ด้วยเอฟเฟกต์ที่กระจายออกไปจากตัวละครของผู้เล่นคล้ายกับน้ำที่ไหลผ่านกระดาษ

ดูเหมือนว่ามากกว่าการเปลี่ยนจานสีเนื่องจากรายละเอียดในรูปแบบใบไม้และเปลือกไม้เปลี่ยนไปในช่วงการเปลี่ยนภาพ

ฉันจะได้รับเอฟเฟกต์แบบนี้ในเกม 2D Unity ได้อย่างไร

คำตอบ:


12

วิธีหนึ่งในการบรรลุเป้าหมายนี้คือการผสมผสานระหว่างพื้นหลังทั้งสองโดยใช้แผนที่อัลฟ่า วิธีการง่ายๆก็คือการแสดงพื้นหลัง "back" (ซ่อน) จากนั้นพื้นหลัง "front" (มองเห็นได้ครั้งแรก) ใช้ช่องอัลฟาของพื้นหลังด้านหน้าหรือพื้นผิวอัลฟาแยกต่างหากเพื่อควบคุมความโปร่งใสของพื้นหลังด้านหน้าเช่นเดียวกับสไปรต์ที่โปร่งใสหรือโปร่งแสง ที่แผนที่อัลฟานี้มีค่าน้อยกว่าหนึ่งชิ้นส่วนของพื้นหลังด้านหลังจะปรากฏขึ้น

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

คุณสามารถปรับแต่งวิธีการนี้ตามที่คุณต้องการเพื่อปรับแต่งเอฟเฟกต์ที่คุณต้องการ วงกลมธรรมดาอาจมองดู "blotchy" น้อยเกินไปและคุณอาจต้องการที่จะประทับตรา "brush brush" ที่สุ่มเลือกไว้ล่วงหน้าลงในหน้ากากแทน แม้แต่การจัดวางแบบสุ่มเองก็อาจดูยุ่งเหยิงไปหน่อยและคุณอาจเลือกที่จะสวมหน้ากากอัลฟ่าตามเส้นโค้งหรือเส้นโค้งที่เขียนไว้ล่วงหน้าเพื่อเน้นสไตล์ที่เฉพาะเจาะจง


อุ๊ปส์ฉันพิมพ์คำตอบที่คล้ายกันมากในเวลาเดียวกับคุณดูเหมือนว่า ^ _ ^; ขออภัยในความซ้ำซ้อน
DMGregory

ขอบคุณสำหรับการตอบกลับฉันจะลองและกลับไปหาคุณในการทำงาน! ขอบคุณอีกครั้ง
เจสก้าสโตน

คุณสามารถวาดช่วงการเปลี่ยนภาพสี่หรือห้าครั้งด้วยมือและเพียงแค่สุ่มหมุนเล็กน้อย ฉันสงสัยว่าทุกคนจะสนใจเมื่อสถานการณ์นั้นเป็นไปอย่างรวดเร็วและแย่ที่สุดคุณสามารถเล่นกับการหมุนและการปรับสเกลแนวนอน
คดีฟ้องร้องกองทุนโมนิก้า

ขออภัยที่รบกวนอีกครั้ง แต่ฉันสงสัยว่าคุณสามารถทำอย่างละเอียดได้มากกว่านี้เพราะฉันกำลังทดสอบมันออกมาเอง แต่มันก็ค่อนข้าง clunky และฉันก็ไม่สามารถทำให้โปร่งใส ขออภัยในความวุ่นวายอีกครั้งและขอขอบคุณ!
Jessca Stone

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

7

ฉันจะใช้วิธีนี้โดยใช้ shader ที่กำหนดเองบน SpriteRenderers ของฉันซึ่งมีพื้นผิวสองแบบหนึ่งแบบสำหรับแต่ละเวอร์ชันที่คุณต้องการเปลี่ยนระหว่าง

(แม้ว่าการใช้เอฟเฟกต์นี้เพื่อการเปลี่ยนระหว่างรัฐมากกว่าสองรัฐฉันยังคงพยายามจัดโครงสร้างเกมดังนั้นเราจึงต้องการเพียงสองภาพในการแสดงผลในเวลาใดก็ได้: รัฐเก่าและรัฐต่อไปเราจะปล่อยให้เล่นเปลี่ยนช่วงนั้น จะเสร็จสิ้นก่อนที่เราจะให้ผู้เล่นเริ่มต้นการเปลี่ยนไปสู่สถานะที่สาม ณ จุดที่เราสามารถแทนที่สถานะ "เก่า" ก่อนหน้าของเราเนื่องจากไม่เห็นอีกต่อไป)

Shader นี้จะข้ามระหว่างพื้นผิวทั้งสองโดยใช้พื้นผิวช่องเดียวที่สามเป็นหน้ากากสำหรับเอฟเฟกต์ (เช่นสีดำ = สถานะเก่า 100% สีเทา = 50/50 ผสมผสานสีขาว = สถานะใหม่ 100%) ฉันจะจับคู่รูปแบบหน้ากากนี้ในหน้าจอ

จากนั้นฉันจะตั้งค่ากล้องที่สองเพื่อแสดงเป็น RenderTexture เพื่อสร้างมาสก์นี้ กล้องตัวที่สองนี้จะเคลื่อนที่ด้วยกล้องหลักของฉันและตรงกับขนาดของ FoV / orthographic ดังนั้นการเคลื่อนไหวใด ๆ ในมุมมองของฉันจึงมีผลกับทั้งโลกและเปิดเผยหน้ากากอย่างสม่ำเสมอ กล้องนี้จะแสดงต่อหน้ากล้องหลักของฉันและตั้งค่าให้ดูเฉพาะเนื้อหาในเลเยอร์ "เปิดเผย" ที่กำหนดเป็นพิเศษ ในตัวอย่างวิดีโอดูเหมือนว่าพวกเขาใช้ระบบอนุภาคเพื่อแยกส่วนของรูปร่างเมฆขนาดเล็กออกมาในพื้นผิวที่เผยให้เห็นซึ่งขยายออกไปตามกาลเวลา


ขอบคุณสำหรับการตอบกลับฉันจะลองและกลับไปหาคุณในการทำงาน! ขอบคุณอีกครั้ง!
Jessca Stone
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.