วิธีการสร้าง (สร้าง) ปลูกต้นไม้ศิลป์ (2D) ในแบบเรียลไทม์ (L-System)


20

เมื่อเร็ว ๆ นี้ฉันตั้งโปรแกรมโมดูลระบบ Lมันทำให้ฉันสนใจมากขึ้น ฉันเป็นขี้ยา Plants vs Zombies เช่นกันชอบแนวคิดของ Tree of Wisdom จริงๆ ชอบที่จะสร้างงานศิลปะขั้นตอนที่คล้ายกันเพียงเพื่อความสนุกสนานและเรียนรู้เพิ่มเติม

คำถาม: ฉันจะเข้าใกล้กระบวนการสร้างต้นไม้ศิลปะ (2d บางทีด้วยกล้อง / มุมมองคงที่) แบบไดนามิกได้อย่างไร

เป็นการดีที่ฉันต้องการเริ่มต้นด้วยพืช (เฉพาะก้านที่มีใบ) และปลูกแบบไดนามิกโดยใช้อิทธิพลบางอย่าง (การกระทำของผู้ใช้ / ผู้ใช้) เหนือโครงสร้างของมัน อิทธิพลเหล่านี้อาจส่งผลให้เกิดการแตกแขนงแตกต่างกันไปตามกิ่งก้านสาขาการแพร่กระจายที่ตั้งของผลไม้สีของดอกไม้เป็นต้นต้องการให้เต็มไปด้วยชีวิต / วิญญาณ :)

Plants vs Zombies: ต้นไม้แห่งปัญญา มันยอดเยี่ยมมากที่ได้ปลูกต้นไม้แบบเดียวกัน แต่จะมีการเปลี่ยนแปลงและภาพเคลื่อนไหวมากขึ้น

พื้นหลังของฉัน: โปรแกรมเมอร์ใช้เครื่องมือเกมไม่กี่ตัว (Ogre3d, cocos2d, unity) ยังไม่ได้ตั้งโปรแกรมโดยตรงโดยใช้ openGL พยายามแก้ไข :)

ฉันพร้อมที่จะใช้เวลามากโปรดแจ้งให้เราทราบเกี่ยวกับ API หรือไม่ และผู้เชี่ยวชาญอย่างคุณจะรับมือกับปัญหานี้อย่างไร

ทำไมต้องเป็น 2D? ฉันคิดว่ามันง่ายกว่าที่จะแก้ปัญหาโดยพิจารณาจาก 2 มิติเท่านั้น

แรงบันดาลใจทางศิลปะ:

เฉพาะต้นไม้ที่มีผลไม้และใบไม้โดยไม่มีพุ่มไม้ที่ด้านล่าง

ต้นไม้ใหญ่ (สาขามองเห็นใบสีเขียว, ดอกไม้, ผลไม้, ฯลฯ ) ด้านซ้ายหลังลิง

PixelJunk's Eden (แรงบันดาลใจในสไตล์ศิลปะ)

Apple Tree ที่สร้างขึ้นตามขั้นตอนโดยใช้ Fractals

โปรดแจ้งให้เราทราบหากคุณเข้าใจคำถามได้ง่ายฉันอาจอธิบายเพิ่มเติมได้

ฉันหวังว่าการอภิปรายเกี่ยวกับวิธีการต่างๆจะเป็นประโยชน์สำหรับทุกคน พวกคุณยอดเยี่ยมมาก


2
ฉันอาจไม่ได้คำตอบสำหรับคุณ แต่ฉันต้องการดูว่าสิ่งนี้จะไปที่ไหน แนวคิดที่ยอดเยี่ยม!
Bloodyaugust

คำถามที่ดีฉันได้รับความสนใจใน L-ระบบในขณะที่ แต่มีอะไรที่ไม่ได้ทำด้วยความสนใจว่า :)
ลูเทอร์

อีกหนึ่งศิลปะอ้างอิง jinsonathemes.com/demo3/wp-content/uploads/2011/02/…
lal

1
@ สตีเฟ่นเพียงเพื่อให้คุณรู้ว่าคำถามนี้มาจาก 2011 และได้ necro'd ไปด้านบนโดยผู้ใช้ถามคำถามที่แก้ไขออกStudent/จากStudent/Programmer
PeterT

@lalan โปรดแก้ไขสิ่งที่สำคัญสำหรับคำถามเท่านั้นความจริงที่ว่าคุณไม่ใช่นักเรียนอีกต่อไปไม่ใช่การเปลี่ยนแปลงที่สำคัญหรือเหตุผลในการแก้ไข
MichaelHouse

คำตอบ:



8

แนวคิดบางประการสำหรับ "เกม" ของคุณ:

  • ให้ผู้ใช้ชื่อต้นไม้ของเขาก่อน ใช้ชื่อนั้นเพื่อสร้าง seed สำหรับอัลกอริทึม ดังนั้นชื่อจะมีต้นไม้ที่ไม่ซ้ำกัน เมล็ดสามารถมีอิทธิพลต่อชนิดของใบไม้และผลของต้นไม้
  • คุณสามารถใช้ "tree tamagotchi " ที่ต้นไม้โตขึ้นและ nicer ยิ่งผู้ใช้ให้ความสำคัญกับมันมากขึ้น (ให้ปุ๋ยน้ำ ฯลฯ )
  • สร้างรายการคะแนนสูงสุดของต้นไม้สูงสุด ความคิดอื่นก็คือการแสดงความสูงและชื่อของผู้ใช้รายอื่นที่อยู่ถัดจากต้นไม้ของคุณ เพื่อให้คุณสามารถเปรียบเทียบความสูงของต้นไม้กับผู้ใช้รายอื่นได้โดยตรง ดูวิดีโอนี้เป็นตัวอย่าง กลุ่มเมฆหมายถึงความสูงที่ผู้ใช้รายอื่นทำได้

มีอัลกอริธึมและเอกสารจำนวนมากสำหรับการสร้างแผนผังขั้นตอนออกไป ( เธรดนี้อาจน่าสนใจ ) งานที่ยากคือการผสมผสานสาขาอย่างลงตัว 2D นั้นจะง่ายกว่าในเรื่องนั้นเนื่องจากคุณสามารถแก้ปัญหานั้นได้ด้วยการผสมอัลฟา

เนื่องจากคุณมีประสบการณ์กับ Ogre3D, Unitiy และ cocos2d คุณสามารถไปข้างหน้าและนำสิ่งนั้นไปใช้ (ไม่จำเป็นต้องเริ่มเรียนรู้ OpenGL ในขณะนี้ IMHO) ส่วนตัวผมเลือก cocos2d และปล่อยสำหรับ iPad และ / หรือ iPhone เพื่อให้ทุกคนสามารถพกต้นไม้ของเขาไปด้วยอุปกรณ์มือถือของเขา


1
ฉันต้องการใช้เกมนั้นเล่นกับ L-Systems ในแบบสังคม / การแข่งขัน
deft_code

1
ขอบคุณที่ชี้นำฉันไปที่ gamedev ด้าย .. ความคิดที่ดี Tamagotchi และ goo-tower .. แอปพลิเคชันมือถือจะเจ๋งจริงๆ พบวิดีโอปลั๊กอิน 3DS Max - ซึ่งเป็นเรื่องที่ค่อนข้างน่ากลัวลิงค์ ..
Lal

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