Làm thế nào để thủ tục (tạo) phát triển một cây nghệ thuật (2D) trong thời gian thực (Hệ thống L?)


20

Gần đây tôi đã lập trình một mô-đun hệ thống L , nó khiến tôi quan tâm hơn nữa. Tôi cũng là một người nghiện Plants vs Zombies, thực sự thích khái niệm Tree of Wisdom. Rất thích tạo ra nghệ thuật thủ tục tương tự chỉ để cho vui và tìm hiểu thêm.

Câu hỏi: Làm thế nào tôi nên tiếp cận quá trình tạo cây nghệ thuật (có lẽ 2d với máy ảnh / phối cảnh cố định) một cách linh hoạt?

Lý tưởng nhất là tôi muốn bắt đầu với một cây (chỉ một thân có lá) và phát triển nó một cách linh hoạt bằng cách sử dụng một số ảnh hưởng (hành động đầu vào / người dùng) trên cấu trúc của nó. Những ảnh hưởng này có thể dẫn đến các loại phân nhánh khác nhau, các đường cong trong cành, sự lan rộng của nó, vị trí của trái cây, màu sắc của hoa, v.v. Muốn nó thực sự tràn đầy sức sống / tinh thần. :)

Plants vs Zombies: Tree ofellect Thật tuyệt vời khi tự động phát triển một cây tương tự, nhưng với nhiều biến thể và hoạt hình hơn đang diễn ra.

Bối cảnh của tôi: Lập trình viên, đã sử dụng một vài công cụ trò chơi (Ogre3d, cocos2d, unity). Không thực sự được lập trình trực tiếp bằng openGL, cố gắng khắc phục điều đó :).

Tôi đã sẵn sàng dành thời gian đáng kể, Xin vui lòng cho tôi biết về các API? và làm thế nào một chuyên gia như bạn sẽ đảm nhận vấn đề này?

Tại sao lại là 2D? Tôi nghĩ việc giải quyết vấn đề chỉ dễ dàng hơn khi xem xét 2 chiều.

Cảm hứng nghệ thuật:

Chỉ có cây, với trái và lá, không có cây bụi ở phía dưới

Cây lớn (cành có thể nhìn thấy, lá xanh, hoa, quả, v.v.) ở bên trái, phía sau khỉ.

PixelJunk's Eden (Cảm hứng phong cách nghệ thuật).

Cây táo được tạo theo thủ tục bằng Fractals

Xin vui lòng cho tôi biết nếu bạn dễ hiểu câu hỏi, tôi có thể giải thích thêm.

Tôi hy vọng một cuộc thảo luận về phương pháp khác nhau sẽ hữu ích cho mọi người. Các bạn thật tuyệt vời.


2
Tôi có thể không có câu trả lời cho bạn, nhưng tôi chắc chắn muốn xem điều này sẽ đi đến đâu. Khái niệm tuyệt vời!
Bloodyaugust

Câu hỏi tuyệt vời, tôi đã quan tâm đến L-Systems trong một thời gian nhưng chưa làm gì với sở thích đó :)
Luther

Thêm một nghệ thuật tham khảo. jinsonatheme.com/demo3/wp-content/uploads/2011/02/ khăn
lal

1
@Stephen chỉ để bạn biết câu hỏi này là từ năm 2011 và đã được người dùng yêu cầu chỉnh sửa câu hỏi Student/từStudent/Programmer
PeterT

@lalan Vui lòng chỉ thực hiện các chỉnh sửa đáng kể cho câu hỏi, thực tế là bạn không còn là học sinh nữa không phải là một thay đổi đáng kể hoặc lý do để chỉnh sửa.
MichaelHouse

Câu trả lời:



8

Một số ý tưởng cho "trò chơi" của bạn:

  • Trước tiên hãy quảng cáo cho người dùng một tên cho cây của mình. Sử dụng tên đó để tạo hạt giống cho thuật toán. Vì vậy, mỗi tên sẽ có cây độc đáo. Hạt giống cũng có thể ảnh hưởng đến loại lá và quả của cây.
  • Bạn có thể thực hiện một số loại "cây tamagotchi " trong đó cây phát triển lớn hơn và đẹp hơn, người dùng càng quan tâm đến nó (bón phân, nước, v.v.)
  • Tạo một danh sách các cây cao nhất. Một ý tưởng khác là hiển thị chiều cao và tên của những người dùng khác bên cạnh cây của bạn. Vì vậy, bạn có thể so sánh chiều cao cây của bạn trực tiếp với người dùng khác. Xem video này là một ví dụ. Các đám mây cho biết chiều cao mà người dùng khác đã đạt được.

Có rất nhiều thuật toán và giấy tờ để tạo cây thủ tục ngoài kia ( chủ đề này có thể thú vị ). Một nhiệm vụ khó khăn là pha trộn độc đáo các chi nhánh. 2D chắc chắn sẽ dễ dàng hơn trong vấn đề đó, vì bạn có thể giải quyết điều đó bằng cách trộn alpha.

Vì bạn đã có kinh nghiệm với Ogre3D, Unitiy và cocos2d, bạn có thể tiếp tục và triển khai điều đó (không cần phải bắt đầu học OpenGL ngay bây giờ IMHO). Cá nhân tôi sẽ chọn cocos2d và phát hành cho iPad và / hoặc iPhone, để mọi người có thể mang cây của mình đi khắp nơi bằng thiết bị di động của mình.


1
Tôi đã chơi trò chơi đó chỉ để chơi với L-Systems theo cách xã hội / cạnh tranh.
deft_code

1
Cảm ơn đã chỉ cho tôi chủ đề gamedev .. Những ý tưởng hay, tamagotchi và goo-tower .. ứng dụng di động sẽ rất tuyệt. tìm thấy một video 3DS Max Plugin - đó là khá awesome liên kết ..
lal

5

Context-Free và đó là cấu trúc đối tác 3DSynth có thể là một cơ sở hoặc nguồn cảm hứng tuyệt vời.

Ví dụ:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây v.v ...

Ngày nay, bạn có thể viết một trình hiển thị trực tuyến bằng WebGL!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.