Trang

Hiển thị các bài đăng có nhãn CustomSceneNode. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn CustomSceneNode. Hiển thị tất cả bài đăng

24/11/14

CustomAnimator !

CustomAnimator  hỗ trợ vật lý 
SoftBody của Bullet !


Đến bây giờ mình đã làm được thêm CstomAnimator hỗ trợ thêm đang tương tác vật liệu mềm (như vãi, cao su) bên cạnh vật thể cứng RigidBody !
Mình cũng làm song song một dạng khác là dùng trực tiếp chuyền sceneNode thành dạng Rigid hay Soft một cách trực tiếp (cách này nhanh như khó lưu và nạp sceneNode, còn cách tạo cuatomAnimator thì lưu và nạp sceneNode hoàn toàn tự động do Irrlicht hỗ trợ)
Mình đang nghên cứu tiếp phần Ragdoll phục vụ cho tư thế hy sinh của nhân vật.
Và thêm một cái nữa là customAnimator hỗ trợ điều khiển nhân vật một cách tự động (máy điều khiển) và nhân công (người chơi điều khiền)
Clip của mình :

25/12/12

SceneNode tự sinh cây có lá là billboard và LOD

Vừa hoàn thành các phần sinh cây bụi và cỏ dạng billboard (luông quay mặt hướng về Camera).
Mình bắt tay làm luôn cho nó xong phần SceneNode tạo cây có lá là billboard và có LOD (level of Detail) thêm một chút xíu hiệu ứng gió nữa.
Vậy là mình có 02 class sinh cây giống nhau về cơ bản nhưng khác nhau về cấu trúc lá (dĩ nhiên lá tĩnh nó sẽ chạy nhanh hơn lá có thêm hiệu ứng rồi)
Nhưng vì có cài thêm LOD cho nó nên tốc độ có thể chấp nhận được.
Sau đây là clip của nó :

Cây bụi dạng billboard


Mới nghiên cứu thêm được một ít.
Do quyết định nâng cấp phần cây và cỏ do chương trình tự sinh nên mình quyết định làm phần này.
Lý do là mình định nâng cấp cỏ thành BillBoard và Cây thì có lá là billboard luôn như vậy trông sẽ tự nhiên hơn.
Sau đây là clip của nó (xem fullscreen trên Youtube hé)

Mình thay bằng clip của grassscenenode mới nâng cấp

Nâng cấp hiệu ứng vũ khí

Lâu quá rồi không có viết thêm được cái gì gọi là hay nên mình tranh thủ nâng cấp lại các phiên bản về hiệu ứng cho vũ khí. Bao gồm :
+ Hiệu ứng vệt cho vũ khí
+ Hiệu ứng tia sét (cho vũ khí và cho node bất kỳ)
+ Hiệu ứng tạo lửa cho vũ khí
Nói chung là vũ khí bây giờ sau khi kết hợp các hiệu ứng thì trong cũng tạm ổn rồi.Nhưng vẫn chưa hoàn chỉnh (khi clone ra node mới thì lại sai, nó không đi theo node mới. Cái đó mình sẽ nghiên cứu sau)
Sau đây là clip của nó :

Tạo Sound SceneNode và SoundAnimator




Đến lúc lồng nhạc nền và hiệu ứng âm thanh cho game của mình rồi.

Hôm nay mình Up lên luôn (Source include) , các bạn có thể down về nghiên cứu

Mình dùng thư viện âm thanh Audiere (cách nó dùng thế nào thì trong ví dụ mình dã thể hiện rất cụ thể). Vì nó là thư viện 2D nên mình cũng đã giả lập 3D cho nó ( nhưng chỉ có Left và Right thôi), nhưng như thế cũng đã quá tuyệt rồi.

Mình đà thêm nó vào Game Cô Kiến Trinh Sát của mình (chắc hôm nào phải mua cuốn này về đọc lại quá), thấy hay hơn hẳn.

À mình cũng vừa thử làm cái Menu cho game lọai đơn giản nhưng thấy cũng tạm ổn (các bạn xem screenshot phía trên đó)

Địa chỉ download :

Lớp điều khiển nhân vật - phần 2




Bây giờ thì nhân vật của mình có thể đánh nhau cận chiến một cách thực sự rồi !

Nhân vật nếu bị tấn công sẽ bị thương và chết một cách giống như thực tế chiến đấu của các chú kiến.

Các phần cần làm thêm trong thao tác chiến đấu là đánh tầm xa ! Cái này mình đang đau đầu vì phải xác định xem đường bắn có trúng quân của mình không ! Hay mình sẽ làm cách khác là bắn hình vòng cung và nó đánh nhân vật từ trên xuống (cách này thấy hay hơn đây) và khi chạm đất thì đạn chỉ có tác dụng trong một thời gian rất ngắn. Khoảng cách bắn cũng hạn chế như vậy mới hợp lý.

Còn phần đi theo nhóm và dẫn nhóm đi ! Cái này không khó vì trong Vua Heo mình đã làm cách này rồi.

Sau đây là clip của nó :


Class điều khiển hoạc cảnh nhân vật (70%)




Mình làm phần canh chỉnh nhân vật sát với địa hình (Normal Align) nhưng cơ bản vẫn chưa hoàn thành (vì nó chỉ chính xác trên địa hình Terrain chừng 70% thôi). Không để để lún hoài chổ đó nên mình để đó chừng nào tìm được thuật toán chính xác sẽ chỉnh lại sau.

Bây giờ mình bắt tay làm phần mà game nào cũng chờ đợi đó là phần đánh nhau ! Mình mới chỉ làm phần đánh nhau một cách thô sơ còn thiếu phần dùng chất độc (hay phép thuật) , chưa kiểm tra cho mất máu khi bị trúng đòn.Nói chung là mới test thử cái A* khi dùng nó cho đánh nhau có tốt hay không thôi !

Mình sẽ từ từ hoàn thiện nó sau, và mình sẽ đưa kết quả lên các entry sau, các bạn chờ nhé !

sau đây là clip của nó :


Điều khiển họat động nhân vật dùng astar để tìm đường




Hôm nay mình đưa thêm thành quả mới đây !

Cái CharacterControlAnimator của mình bi giờ đã hòan tòan áp dụng A* vào phần tìm đường cho nhân vật ! A* riêng là một chuyện còn tích hợp nó vô Animator để điều khiển di chuyển của nhân vật thì hòan tòan khác, mệt thật !

Vẫn chưa hòan thành việc kiểm tra va chạm nhưng phần đó không khó lắm, mình sẽ thêm nó vào lúc cho các nhân vật đánh nhau luôn !

Nhân vật của mình sẽ đi theo nhóm và có lọai khác nhau (khác lọai mà lại gần thì sẽ óanh nhau đó), nếu nhân vật cùng nhóm thì nó sẽ đi chung ... cần nhiều thuộc tính cho nhân vật nữa.

Sau đây là clip của nó :


Lớp nhân vật và lớp điều khiển họat động của nhân vật



Mấy ngày nay nghiên cứu tiếp tục mới được thành quả thế này !

- Mình đã làm cơ bản class nhân vật theo dạng SceneNode của Irrlicht. Cái khó của class này là phải quản lý các họat cảnh của nhân vật

- Còn cái class điều khiển chuyển động của nhân vật thì còn khó hơn nhiều :

+ Thứ nhất nó có thể do người chơi điều khiển (demo = false)

+ Thứ hai là do máy điều khiển : mình chọn 2 cách là di chuyển ngẫu nhiên (mới làm xong) và di chuyển theo đích (có thể ngẫu nhiên hay có chủ ý) theo thuật tóan A*

- Cơ bản thì hiện nay mình đã làm được cái di chuyển ngẫu nhiên (chưa kiểm tra va chạm + giới hạn biên)

Sau đây là clip của nó


Camera bay theo nhân vật



- Mình đang chuẩn bị thực hiện một game nhỏ theo thể lọai Action nên mình cải tiến lại cái 3rd Camera thành Follow Camera.Giống như là có một nhân vật cầm camera bay theo nhân vật của mình điều khiển vậy.

- Mới chỉ thực hiện code sơ bộ nhưng kết quả cũng tạm chấp nhận được !

- Sau đây là clip của nó :


Tự tạo Animator (bộ điều khiển họat ảnh) trong Irrlicht




- Để bắt tay làm tiếp game mình cần thêm một số thứ :

+ Do mình để cho engine lo tòan bộ việc lưu và nạp màn chơi. Nên mình phải làm tất cả các class nhân vật và phần điều khiển nhân vật của mình phải là SceneNode và SceneNodeAnimator. (các bạn chú ý mình sẽ không dùng GUI đâu - Nếu có thì chỉ dùng trong phần editor mà thôi)

+ SceneNode tự tạo mình đã thành cônng rồi (class treeSceneNode họat động hòan hảo)

+ Bây giờ đến phần điều khiển họat cảnh nhân vật bằng Animator rồi. Mình cũng đã làm được class cô bản cho nó ! Nó lấy từ source của RotationAnimator nhưng có thênphần dịch chuyển SceneNode lên xuống bằng phím mũi tên lên và xuống

- Download Custom Animator Demo !

Tự sinh mô hình cây 3D với LOD




Mình đã nâng cấp chương trình tự động sinh cây của mình lên phiên bản mới !

Các cây sinh ra thực sự là 01 SceneNode của Irrlicht và nó được hỗ trợ Level of Detail (Chi tiết mô hình dựa theo khỏang cách) . Mình chia làm 4 mức LOD tất cả, nếu lớn hơn thì cây sẽ không hiển thị ! LOD=0 là full detail, còn lod=2 là mini detail (lúc này nó hiện như là cây 2D mà thôi) còn xa hơn nữa thì cây chỉ còn lá, xa hơn nữa thì biến mất ! (xa quá rồi)

Cây sinh ra bằng chương trình này có thể lưu và nạp (thông qua hàm saveScene và loadScene của Irrlicht cũng như các sceneNode mặc định của Irrlicht)

Chắc là phần cây mình tạm dừng ở đây ! Phần nâng cao của nó sẽ lảm sau (lúc đó cây sinh ra có thể thuộc lọai cây mình định trước)

Sau đây là clip của nó :


Chương trình tự động sinh

mô hình cây 3D

Kết quả mới nhấ đây !







Đang nghiên cứu làm cỏ cho địa hình, nhưng mình thấy phần này quan trọng hơn do đó mình chuyết định chuyển qua phần này.

Phần sinh cỏ mình đã làm xong 50% ! Còn phần tăng tốc chương trình ( hiện giờ fps chỉ đạt được từ 400-500 mà thôi), mình dự định cho nó tăng lên 1000 thì mới đảm bảo để thêm các phần khác.

Bắt tay vô làm phần sinh mô hình cây tự động, mình chỉ mới làm xong phần sinh kiến trúc khung xương của nó (còn dùng hay không thì tùy mình).

Các phần khác của chương trình này cần làm là :

+ Bao lớp da cho cây (vỏ cây)

+ Tạo lá cho cây

+ Sinh các lọai cây khác nhau như : cây bụi, cây cổ thụ, cây họ dừa, cây có nhánh đối xứng và không đối xứng.. còn nhiều lắm, nhưng mình sẽ cố làm cho xong.

+ Tăng tốc chương trình sinh cây khi cây đã được render (culling, level of detail...)

+ Nếu có thể thì làm luôn phần animation cho cây (đong đưa trước gió...)

Hẹn gặp lại các bạn trong các entry tới.

* Clip mới nhất về nó đây !


Bài đăng phổ biến