คำถามติดแท็ก sprites

การเรนเดอร์ 2D ของวัตถุในอวกาศ

2
สีขาวเป็นสีฐานที่ดีที่สุดที่จะเริ่มต้นเมื่อวางแผนที่จะแรเงาภายใน Unity หรือไม่?
ฉันกำลังมองหาต้นแบบในเกมใน Unity ซึ่งจะประกอบด้วย sprite / tiles แบบ solid square ฉันคิดว่าฉันสามารถแสดงประเภทของวัตถุที่แตกต่างกันด้วยสีที่แตกต่างกันสำหรับแต่ละกระเบื้องในเกม ฉันคิดว่าฉันสามารถนำเข้าสไปรต์สี่เหลี่ยมจัตุรัสเดียวและแรเงาได้อย่างเหมาะสมใน Unity เมื่อเทียบกับสี่เหลี่ยมที่นำเข้าที่มีสีแตกต่างกันมากมาย ประสบการณ์ของฉันในการปรับเฉดสีและความอิ่มตัวของสีใน Photoshop แสดงให้เห็นว่าสีขาวไม่ใช่สีที่ง่ายต่อการเปลี่ยนแปลงเนื่องจากสิ่งที่เป็นสีขาวมักจะเป็นสีขาวอยู่เสมอ การทดสอบของฉันใน Unity แสดงให้เห็นว่าฉันสามารถเปลี่ยน "สี" ของสไปรต์เป็นสิ่งอื่นที่ไม่ใช่สีขาวและสไปรต์นั้นได้รับการแรเงาอย่างเหมาะสมแม้ว่าฉันจะคิดว่าจะได้รับประสบการณ์ Photoshop ของฉันก็ตาม เนื่องจากวัตถุสีขาวดูเหมือนจะใช้การแรเงาสีที่เหมาะสมเมื่อมีการเปลี่ยนแปลงภายใน Unity ไส้ในของฉันบอกฉันว่านี่เป็นสีเริ่มต้นที่ดีที่สุดซึ่งหมายความว่าฉันสามารถนำเข้าสไปรต์สี่เหลี่ยมจัตุรัสสีขาวเดี่ยวและปรับสีเพื่อแสดงวัตถุต่าง ๆ และวัตถุฯ สไปรท์สีขาวจริง ๆ แล้วเป็นสไปรต์สีที่ดีที่สุดในการเริ่มต้นและทำไมบางสิ่งเช่นนี้ทำงานใน Unity ซึ่งตรงข้ามกับการปรับเฉดสีและความอิ่มตัวภายใน Photoshop
10 unity  sprites  color 

2
ภาพเคลื่อนไหวเกี่ยวกับตัวละคร / วัตถุโต้ตอบทำงานอย่างไรในเกมภาพวาดสามมิติ?
ฉันกำลังวางแผนเกมจำลองธุรกิจจำลองภาพสามมิติที่ผู้เล่นเห็นสำนักงานพร้อมเฟอร์นิเจอร์ตามปกติเช่นโต๊ะทำงานกระดานไวท์บอร์ดเป็นต้น ตัวละคร (พนักงาน / NPC) ภายในเกมควรโต้ตอบกับวัตถุเหล่านี้โดยทำงานบางอย่างที่กำหนดไว้ล่วงหน้าเช่นการพิมพ์บนแป้นพิมพ์ที่โต๊ะทำงานหรือเขียนบนกระดานไวท์บอร์ดเป็นต้น สิ่งที่ฉันสนใจโดยเฉพาะคือสถานการณ์ต่อไปนี้: ตัวละครเคลื่อนข้ามสำนักงาน (1) ไปที่โต๊ะทำงาน (2) แล้วนั่งลงและเริ่มพิมพ์ (3) จากสิ่งที่ฉันเข้าใจฉันจะมีแผ่นผีสางสำหรับการเคลื่อนไหวของตัวละคร (1) และสไปรต์แบบคงที่สำหรับโต๊ะ (2) แต่ฉันไม่เข้าใจว่าจะจัดการขั้นตอนที่สามได้อย่างไร มีสไปรต์รวมที่มีทั้งโต๊ะและตัวละครหรือไม่? ฉันคิดว่าไม่งั้นฉันจะต้องมีแผ่นผีสางสำหรับโต๊ะและตัวละครทุกชุด วิธีนี้จัดการได้อย่างไร แก้ไข: นี่คือตัวอย่างภาพเคลื่อนไหวเฉพาะจากเกม Theme Hospital คุณสามารถดูวิดีโอที่นี่ เท่าที่ฉันเห็นภาพเคลื่อนไหวแบ่งออกเป็นหลายขั้นตอน ขั้นตอนที่ 1 - ตัวละครเคลื่อนไหวระหว่างโต๊ะและเก้าอี้ นี่แสดงให้เห็นว่าเก้าอี้และโต๊ะทำงานนั้นแตกต่างกันในความเป็นจริง ขั้นตอนที่ 2 - ตัวละครนั่งลงภาพเคลื่อนไหว สังเกตว่าในกรอบสุดท้ายที่เก้าอี้อยู่ใกล้กับโต๊ะมากขึ้น ขั้นตอนที่ 3 - ภาพเคลื่อนไหวโต๊ะ ขั้นตอนที่ 4 - ภาพเคลื่อนไหวที่โดดเด่น เหมือนกับนั่ง แต่เล่นในสิ่งที่ตรงกันข้าม ขั้นตอนที่ 5 - …

1
ฉันจะวาดส่วนของแผ่นสไปรต์ด้วยตนเองได้อย่างไร
ฉันทำงานใน Unity และฉันพบว่าอนิเมเตอร์ไม่ทำงานในสิ่งที่ฉันพยายามทำในเกม 2D ของฉัน ฉันต้องการสร้างภาพเคลื่อนไหวที่เฉพาะเจาะจงโดยใช้แผ่นงานสไปรต์และสามารถนำภาพเคลื่อนไหวเดิมมาใช้ซ้ำกับสไปรต์อื่น ๆ ที่มีขนาดและมิติเท่ากันโดยเซลล์ หลังจากการวิจัยบางอย่างฉันพบว่ามันเป็นไปไม่ได้ ฉันพยายามสร้างสคริปต์ภาพเคลื่อนไหวของตัวเอง แต่ฉันไม่เข้าใจวิธีบอก Unity ให้วาดเพียงบางส่วนของสไปรต์ บางสิ่งที่เหมือนใน XNA ซึ่งคุณสามารถแสดงเฉพาะรูปสี่เหลี่ยมผืนผ้าของสไปรต์โดยใช้พิกัดเริ่มต้นและสิ้นสุด ฉันจะวาดส่วนของแผ่นสไปรต์ด้วยตนเองได้อย่างไร

1
ทำไมไทล์ 16 × 16 พิกเซลถึงเป็นธรรมดา
มีเหตุผลที่ดีสำหรับกระเบื้อง (เช่นMinecraft ) เป็น 16x16 หรือไม่? ฉันมีความรู้สึกว่ามันเกี่ยวข้องกับเลขฐานสองเพราะ 16 อยู่10000ในเลขฐานสอง แต่นั่นอาจเป็นเรื่องบังเอิญ ฉันต้องการที่จะรู้ว่าเป็นเพราะฉันต้องการที่จะสร้างเกมที่มีการสร้างภูมิประเทศและฉันต้องการที่จะรู้ว่ากระเบื้องของฉันควรจะใหญ่แค่ไหนหรือถ้ามันไม่สำคัญ

2
ติดตามเส้นทางในแบบเรียบ
ขณะนี้ฉันกำลังสร้างเกมป้องกันหอคอย 2d ที่มีช่องทางเคลื่อนที่ที่กำหนดไว้ล่วงหน้าซึ่งศัตรูติดตาม (เช่นหอคอยไม่สามารถบล็อกเส้นทางและการค้นหาเส้นทางไม่ใช่ปัญหาที่ฉันพยายามแก้ไข) ฉันพยายามคิดว่าจะให้หน่วยตามช่องทางนี้อย่างราบรื่นได้อย่างไร ฉันมีแนวคิดคร่าวๆสองข้อเกี่ยวกับวิธีการทำเช่นนี้ แต่ฉันชอบที่จะป้อนข้อมูลบางอย่างซึ่งน่าจะง่ายต่อการใช้ / เทคนิคมาตรฐานมากขึ้น หรือแน่นอนถ้าฉันมีวิธีที่แตกต่างกันโดยสิ้นเชิงซึ่งฉันไม่คิดว่าฉันจะรักที่จะเรียนรู้เกี่ยวกับสิ่งนั้นเช่นกัน จุดอ้างอิง: ความคิดแรกของฉันคือการกำหนดเส้นทางเป็นชุดของจุดอ้างอิงแบบตายตัว หน่วยจะใช้อัลกอริทึมการหมุนแบบ "ค้นหา" ขั้นพื้นฐาน (เช่นอันนี้ ) เพื่อย้ายไปยังแต่ละจุดตามเส้นทางในเส้นทางที่ต่อเนื่องกัน อย่างไรก็ตามฉันสงสัยว่ามันอาจเป็นการยากที่จะป้องกันไม่ให้หน่วยเบี่ยงเบนไปจากเลนที่ฉันต้องการให้พวกเขาติดตาม ฉันสงสัยว่าการไม่สามารถเลี้ยวอย่างรุนแรงพออาจทำให้พวกเขา "เหิน" ออกจากเลนที่ต้องการหรือไม่ ฉันคิดว่าฉันอาจสามารถป้องกันได้โดยอนุญาตให้ใช้กำลังบังคับที่ค่อนข้างแรง Bezier Curves: วิธีที่สองที่ฉันพิจารณาคือกำหนดเส้นทางด้วยเส้นโค้ง bezier และในแต่ละขั้นตอนจะคำนวณจุดตามเส้นโค้งด้วย (dt * speed) ห่างจากตำแหน่งปัจจุบันของหน่วย ฉันสงสัยว่าเทคนิคนี้จะทำให้การกำหนดเส้นทางที่หน่วยจะปฏิบัติได้ง่ายขึ้น แต่ฉันไม่รู้ว่าจะดำเนินการอย่างไร ข้อเสนอแนะใด ๆ นอกจากนี้ฉันไม่ต้องการเปลี่ยนคำตอบของทุกคน แต่หน่วยต่างๆจะต้องสามารถเดินทางด้วยความเร็วคงที่ตลอดเส้นทาง นอกจากนี้ฉันกำลังเขียนโปรแกรมเกมนี้ในไพ ธ อนโดยใช้ pyglet framework หากมีคำถามเกี่ยวกับคำถามที่ไม่ชัดเจนโปรดแจ้งให้เราทราบ แก้ไข: นอกจากนี้สำหรับสิ่งที่คุ้มค่าผมเรียงลำดับของการพยายามที่จะทำซ้ำพฤติกรรมการเคลื่อนไหวของศัตรูในราชอาณาจักร Rush

1
Xbox thumbstick ที่ใช้ในการหมุนสไปรต์สูตรพื้นฐานทำให้มัน“ ติด” หรือรู้สึก“ เหนียว” ที่ระยะ 90 องศา! คุณจะหมุนอย่างราบรื่นได้อย่างไร?
ฉันใช้สูตรพื้นฐานมากในการคำนวณมุมของเทพดา (ยานอวกาศ) ที่ควรจะหันหน้าไปทางบนพื้นฐานของ thumbstick Xbox คอนโทรลเลอร์เช่นคุณใช้ thumbstick เพื่อหมุนเรือ ในวิธีการอัพเดทหลักของฉัน: shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y); ในวิธีการวาดหลักของฉัน: spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1); อย่างที่คุณเห็นมันค่อนข้างเรียบง่ายฉันเอาเรเดียนปัจจุบันจากนิ้วหัวแม่มือและเก็บมันไว้ในทุ่นshuttleAngleแล้วใช้นี่เป็นอาร์กิวเมนต์มุมการหมุน (เป็นเรเดียน) สำหรับวาดรูปกระสวย ด้วยเหตุผลบางอย่างเมื่อฉันหมุน sprint มันให้ความรู้สึกเหนียวที่มุม 0, 90, 180 และ 270 องศา มันต้องการที่จะตั้งถิ่นฐานที่มุมเหล่านั้น มันไม่ให้การหมุนที่ราบรื่นและเป็นธรรมชาติเหมือนกับที่ฉันรู้สึกในเกมที่ใช้กลไกที่คล้ายคลึงกัน PS: ตัวควบคุม Xbox ของฉันไม่เป็นไร!
9 xna  c#  sprites  rotation  gamepad 

3
วิธีการแยกแผ่นสไปรต์
ฉันมีสไปรต์จำนวนมากที่มีรูปแบบไม่ดีซึ่งฉันต้องการย่อยสลายหรือแยกออกเป็นภาพขนาดเล็กจำนวนมากหนึ่งภาพสำหรับแต่ละสไปรต์ หากฉันสามารถทำได้ฉันสามารถใช้เครื่องมือตัวสร้างแพ็คเกอร์กำหนดพื้นผิวของฉันเพื่อสร้างเนื้อหาเกมด้วย เครื่องมือในการพัฒนาของฉันคือ XNA และ C # ที่กำหนดเป้าหมายเป็น Windows ฉันจะสลายภาพได้อย่างไร?

4
ภาพเคลื่อนไหวสไปรต์ใน openGL
ฉันกำลังประสบปัญหาในการนำแอนิเมชั่นสไปรท์มาใช้ใน openGL ES ฉัน googled มันและสิ่งเดียวที่ฉันได้รับคือการสอนการใช้งานผ่าน Canvas ฉันรู้วิธี แต่ฉันมีปัญหาในการใช้งาน สิ่งที่ฉันต้องการ: ภาพเคลื่อนไหวสไปรต์ในการตรวจจับการชน ฉันทำอะไร: ฟังก์ชั่นตรวจจับการชนกันทำงานได้อย่างถูกต้อง PS: ทุกอย่างทำงานได้ดี แต่ฉันต้องการใช้แอนิเมชั่นใน OPENGL เท่านั้น Canvas จะไม่ทำงานในกรณีของฉัน ------------------------ แก้ไข ----------------------- ตอนนี้ฉันมีแผ่นสไปรต์พูดข้างล่างมีพิกัดบางอย่าง แต่ผู้ประสานงาน (u, v) จะเริ่มจากที่ไหน? ฉันควรพิจารณาคุณ, v ประสานงานจาก (0,0) หรือจาก (0,5) และฉันควรเก็บไว้ในรูปแบบใดในรายการของฉัน .. ? ----> จากซ้ายไปขวาหรือ ----> จากบนลงล่าง ฉันจำเป็นต้องมีอาร์เรย์ 2D ในคลาสสไปรต์ของฉันหรือไม่ นี่คือภาพเพื่อความเข้าใจที่ดีขึ้น ฉันสมมติว่าฉันมีแผ่นสไปรต์ NxN โดยที่ N = …

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

2
ขนาดฮีโร่ / ตัวละครเมื่อเปรียบเทียบกับขนาดของกระเบื้อง
ดังนั้นฉันจึงสร้าง platformer ง่าย ๆ นี้ที่ Hero มีขนาด 16x16 แต่ยังมีขนาดไทล์เป็น 16x16 ซึ่งฟังดูดีใช่มั้ย แต่หน้าต่างเกม / โลกของฉันคือ 800x416 ซึ่งทำให้ Hero มีขนาดเล็กมากเมื่อเปรียบเทียบ สิ่งนี้ทำให้ฉันประหลาดใจจริงๆ แต่เนื่องจากฉันไม่เคยทำ platformer มาก่อนมันเป็นการค้นพบใหม่ มีกฎกำหนดไว้สำหรับสเกลในเกม platformer หรือไม่? ฉันต้องการให้หน้าต่างเกมของฉันยังคงมีขนาดเท่าเดิม (800x416) ทำให้เกมมีขนาดใหญ่ แต่ฮีโร่ของฉันควรใหญ่ขนาดไหน? ฉันหวังว่าฉันจะชัดเจนกับคำถามและฉันขอขอบคุณข้อมูลเชิงลึกใด ๆ ขอบคุณ

2
ปรับขนาดไฟล์ภาพพิกเซลของฉันเมื่อออกแบบหรือเมื่อแสดงผล?
หากฉันสร้างไฟล์ภาพพิกเซลที่ต้องปรับขนาดบนหน้าจอในภายหลังเพื่อให้พิกเซลเดียวกลายเป็นกล่องขนาด 4 พิกเซล ฉันควรสร้างพิกเซลงานศิลปะของฉันด้วย 2x2 พิกเซลหรือฉันควรสร้างด้วยพิกเซล 1x1 เพื่อให้ฉันสามารถปรับขนาด 1: 2 ในภายหลังใน XNA เป็น 2x2 พิกเซลได้หรือไม่ ฉันมักจะเชื่อว่า 1: 1 จะให้รายละเอียดมากเกินไปมากกว่าเอฟเฟกต์พิกเซลดังนั้นฉันต้องการผลลัพธ์สุดท้ายในสไตล์ 2: 1 โดยที่ 1x1 พิกเซลของสไปรต์ที่ฉันตั้งใจจะใช้ 2x2 พิกเซลบนหน้าจอ
9 xna  c#  sprites 

2
เทพดาแผ่นหรือทรัพยากรหลาย ๆ
เมื่อแอนนิเมชั่นสำหรับแพลตฟอร์ม Android เป็นวิธีปฏิบัติที่ดีกว่าในการสร้างสไปรต์ชีทที่มีหลายสถานะสำหรับแต่ละสไปรต์ในรูปภาพเดียวหรือฉันควรส่งออกแต่ละภาพแทนสำหรับแต่ละอักขระ / รัฐ / ฯลฯ ตัวเลือกใดที่ทำให้ฉันมีขนาดไฟล์เล็กลงสำหรับทรัพยากรและโปรแกรมที่ทำให้เคลื่อนไหวได้ง่ายขึ้น?

4
วิธีปรับปรุงประสิทธิภาพการทำงานเป็นชุด
ฉันกำลังพัฒนาเกม 2D แบบเทพดาสำหรับแพลตฟอร์มมือถือและฉันใช้ OpenGL (จริง ๆ แล้ว Irrlicht) เพื่อสร้างภาพกราฟิก ครั้งแรกที่ฉันใช้สไปรท์เรนเดอร์ด้วยวิธีง่าย ๆ : ทุก ๆ เกมจะแสดงผลเป็นรูปสี่เหลี่ยมด้วยการเรียกการวาดด้วย GPU ของตัวเองซึ่งหมายความว่าถ้าฉันมีวัตถุในเกม 200 รายการฉันทำการโทร 200 ครั้งต่อเฟรม แน่นอนว่านี่เป็นตัวเลือกที่ไม่ดีและเกมของฉันมีซีพียูที่เชื่อมโยงอย่างสมบูรณ์เพราะมีค่าใช้จ่ายซีพียูเล็กน้อยในการเรียกใช้ GPU ทุกครั้ง GPU อยู่เฉยตลอดเวลา ตอนนี้ฉันคิดว่าฉันสามารถปรับปรุงประสิทธิภาพได้โดยการรวบรวมวัตถุเป็นชุดใหญ่และแสดงชุดเหล่านี้ด้วยการเรียกสายเพียงไม่กี่ครั้ง ฉันใช้การแบทช์ (เพื่อให้ทุกเกมของวัตถุที่แชร์พื้นผิวเดียวกันมีการแสดงผลเป็นแบทช์เดียวกัน) และคิดว่าปัญหาของฉันหมดไป ... เพียงเพื่อจะพบว่าอัตราเฟรมของฉันต่ำกว่าเดิม ทำไม? ฉันมีวัตถุเกม 200 (หรือมากกว่า) และพวกมันได้รับการอัพเดท 60 ครั้งต่อวินาที ทุกเฟรมที่ฉันต้องคำนวณตำแหน่งใหม่ (การแปลและการหมุน) สำหรับจุดยอดในซีพียู (GPU บนแพลตฟอร์มมือถือไม่รองรับการติดตั้งดังนั้นฉันจึงไม่สามารถทำได้ที่นั่น) และทำการคำนวณนี้ 48000 ต่อวินาที (200 * 60 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.