Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Diễn đàn đồ họa blender dành cho mọi người.


2 posters

    Trao đổi về làm Game trong blender

    avatar
    xyz_90


    Tổng số bài gửi : 19
    Join date : 30/10/2011

    Trao đổi về làm Game trong blender Empty Trao đổi về làm Game trong blender

    Bài gửi by xyz_90 Sun Oct 30, 2011 10:06 pm

    Do có một số vấn đề trong việc làm Game của Blender chưa được nắm rõ nên mình hi vọng có thể thảo luận với các bạn .Mình sẽ post những gì mình hiểu và nếu có chỗ nào không thỏa đáng,cùng như sai thuật ngữ thì các bạn có thể ghi nhận lại cho mình

    LÀM GAME NHƯ THẾ NÀO
    Để làm một Game thông thường ta tạo ra một thế giới cùng với các nhân vật trong nó .
    Sau khi tạo xong ta sẽ lập trình cài đặt các trình xử lí sự kiện cho các đối tượng trong Game bằng một ngôn ngữ lập trình cụ thể nào đó .Tức là cài đặt các ứng xử và hành vi của các đối tượng trong Game .
    Đối với blender bạn có thể cài các trình xử lí sự kiện cho các đối tượng Game một cách trực quan thông qua bảng Logic

    Trao đổi về làm Game trong blender 358a3d6a9441318d88f6d4b247d59fe8_37290048.a

    Đây là bảng logic trong làm Game .
    Bảng logic là khung sườn làm Game trong Blender ,nó là phần cơ bản mà bạn phải nắm các chức năng về nó .Bảng logic giúp cho bạn ánh xạ sự kiện và cài đặt hành vi cho các đối tượng trong Game.
    Tuy nhiên đó chỉ là một cách để có thể cài đặt được hành vi của đối tượng .
    Bảng logic có thể xem là mặt trực quan của Blender Game Engine(BGE)
    Ta có thể viết script Python để điều khiển ứng xử đối tượng trực tiếp thông qua controller .
    BGE cung cấp sẵn cho các bạn một tập các modul thư viện mà bạn có thể dùng để lấy một đối tượng ,và kiểm soát hành vi của chúng .

    Đây là 4 thư viện cơ bản
    • GameLogic cung cấp các hàm cho phép truy xuất các logic brick .
    • GameKeys các hàm liên quan tới sự kiện bàn phím.
    • Rasterizer hiển thị và kết xuất ảnh
    • GameTypes chứa các kiểu dữ liệu được định nghĩa riêng cho Engine.
    Còn một vài bộ thư viện nữa có trên trang API lập trình Game của python .Ta có thể lên đó xem nếu muốn viết một script python điều khiển cho nhân vật .

    Tóm lại học làm game là học gì ?
    -Đó là học cách xây dựng nên các đối tượng trong Game (modelling ... trong Game)ta không bàn ở đây
    -Đó là học cách xây dựng các hành vi cho đối tượng trong Game,trong Blender để xây dựng được hành vi của chúng ta có thể thực hiện một cách trực quan trong Blender bằng ánh xạ logic trong bảng Logic
    -Học các thư viện của BGE ,trong đó quan trọng nhất là modul Game Logic .Hiển nhiên BGE là công cụ tạo Game trực quan và ta không nhất thiết biết python,nhưng nếu phải tạo một Game phức tạp bắt buộc phải lập trình python.Tạo các ánh xạ và xử lí sự kiện thông qua Logic panel cũng chỉ là một phần hỗ trợ tạo Game giúp giảm thời gian tạo Game chứ không thể làm Game mà không lập trình .
    avatar
    xyz_90


    Tổng số bài gửi : 19
    Join date : 30/10/2011

    Trao đổi về làm Game trong blender Empty Re: Trao đổi về làm Game trong blender

    Bài gửi by xyz_90 Sun Oct 30, 2011 10:10 pm

    TỔNG QUAN VỀ BẢNG LOGIC
    Trong thế giới thực các đối tượng có các thuộc tính vật lí.
    Một đối tượng Game(một thực thể trong Game)có các đặc tính ,thực chất là các biến dữ liệu để thông qua qua đó người lập trình có thể sử dụng nó để tác động đến đối tượng .
    Ngoài ra một đối tượng trong môi trường cũng phải tự thân ứng xử với những sự kiện xảy ra của môi trường .
    Vậy làm Game thông qua bảng logic gồm các bước :
    -Thiết lập đặc tính vật lí cho đối tượng
    -Thiết lập các biến điều khiển cần thiết cho đối tượng .
    -Ánh xạ sự kiện cho đối tượng và xử lí sự kiện cho đối tượng .
    Bảng logic :
    Trao đổi về làm Game trong blender 5dbf8813b29d10cc8791e1ffc5f32afb_37290572.a
    Trong hình này block số 2 giúp ta thiết lập đặc tính vật lí cho đối tượng
    Block số 3 giúp ta thêm biến dữ liệu vào đối tượng
    Các phần còn lại gồm
    Sensor,Controller,actuator
    giúp cài đặt hành vi và sự kiện mà đối tượng cảm nhận trong môi trường
    avatar
    xyz_90


    Tổng số bài gửi : 19
    Join date : 30/10/2011

    Trao đổi về làm Game trong blender Empty Re: Trao đổi về làm Game trong blender

    Bài gửi by xyz_90 Sun Oct 30, 2011 10:33 pm

    Đề cài đặt hành vi cho đối tượng trước tiên ta phải chọn đối tượng đó trong cảnh Sau đó tại cài đặt về hành vi .
    Sensor : nói chính xác hơn là bộ cảm nhận ,tức giác quan của đối tượng như con người vậy .Nó dùng để phát hiện ra sự kiện xảy ra trong môi trường .Hiển nhiên chỉ có những sự kiện nào nó có giác quan thì đối tượng mới biết được sự kiện tương ứng xảy ra (nói theo nghĩa khác là những sự kiện nào được ta ánh xạ cho đối tượng đối tượng mới phản ứng )
    Controller : là bộ não kiểm soát các tín hiệu sensor gửi đến nó .Kiểm soát đó có thể thông qua các hàm Bool,biểu thức ,hoặc script python .Mọi lập trình Game trong Blender đều thông qua viết script bằng python,và được chạy bằng controller .Tuy nhiên lập trình Script ta sẽ không nói tới ở đây
    Actuator :có thể hiểu là hành vi của đối tượng .Khi gặp sự kiện nào đó thì đối tượng phải phản ứng và hành vi này được định nghĩa bằng actuator .

    Sensor định nghĩa sẵn rất nhiều sự kiện,Actuator cũng vậy định nghĩa rất nhiều kiểu hành vi sẵn có,ta chỉ việc kết nối nó .

    Tiếp theo ta sẽ nói sơ qua về block sensor

    avatar
    xyz_90


    Tổng số bài gửi : 19
    Join date : 30/10/2011

    Trao đổi về làm Game trong blender Empty Re: Trao đổi về làm Game trong blender

    Bài gửi by xyz_90 Sun Oct 30, 2011 10:45 pm

    -Nút sensor màu trắng :
    Như bạn thấy trong hình tên có nút sensor màu trắng góc trái bảng .Khi bấm vào đó nó hiện lên thực đơn cho phép bạn ẩn hay hiện các bộ cảm nhận mà không cần thiết. The menu labeled Sensors looks like a label but is a menu. It has four options:
    • Show Objects hiện đối tượng
    • Hide Objects ẩn tất cả sensor và chỉ còn đối tượng
    • Show Sensors hiện tất cả bộ cảm nhận
    • Hide Sensors thu gọn tất cả bộ cảm nhận thành một thanh
    -Bốn nút tùy chọn còn lại :
    • Sel hiện tất cả các bộ cảm nhận của đối tượng đang được chọn.
    • Act chỉ hiện các bộ cảm nhận của đối tượng đang kích hoạt.
    • Link hiện các bộ cảm nhận có liên kết tới controller.
    • State:hiện các bộ cảm nhận liên kết tới controller của trạng thái hiện tại.
    -Bốn nút tùy chọn còn lại :
    • Sel hiện tất cả các bộ cảm nhận của đối tượng đang được chọn.
    • Act chỉ hiện các bộ cảm nhận của đối tượng đang kích hoạt.
    • Link hiện các bộ cảm nhận có liên kết tới controller.
    • State:hiện các bộ cảm nhận liên kết tới controller của trạng thái hiện
    b.Các nút cài đặt bộ cảm nhận và các xung sự kiện

    Thêm bộ cảm nhận


    Trao đổi về làm Game trong blender Df98af81c6df48ae1560c779b01e4f20_37291547.a



    Mỗi bộ cảm nhận được tổ chức thành 2 hàng
    Trao đổi về làm Game trong blender 748c1e04b4b1ece32fcd9f678c0d71ee_37291626.a
    Mỗi bộ cảm nhận được tổ chức thành 2 hàng
    Hàng 1
    Trao đổi về làm Game trong blender 1a2e23826b26dc36d235ac7e652191d8_37291648.a
    Dấu x
    Xóa bộ cảm nhận
    Dấu spin
    Chọn bộ cảm nhận ứng với từng loại sự kiện .Đây là phần quan trọng ta sẽ bàn sau
    Tên bộ cảm nhận
    Được dùng để mà truy xuất từ mã của python
    Nút tam giác màu cam
    ẩn bộ cảm nhận


    Hàng 2 :

    Trao đổi về làm Game trong blender 32d7f0eda1a347bf929401545ff38a2d_37291700.a
    Bộ sensor sẽ cảm nhận sự kiện và sẽ gửi xung kích hoạt về cho controller .Có 2 loại xung :xung TRUE ,và FALSE .
    Thanh kích hoạt xung này sẽ giúp ta thiết đặt cách gửi các xung TRUE, FALSE như thế nào đến bộ controller .
    Một sự kiện diễn ra trong một khoảng thời gian nào đó,khi bộ sensor phát hiện sự kiện này thì nó sẽ gửi các xung TRUE về cho bộ controller,và ngược lại sự kiện mà bộ sensor này cảm nhận không diễn ra thì nó sẽ gửi xung FALSE về cho bộ controller .
    Vấn đề ở đây là bộ sensor sẽ gửi các xung theo thời gian như thế nào .Giả sử như sự kiện nhấn phím diễn ra trong khoảng thời gian vài giây,vậy trong khoảng thời gian đó nó chỉ gửi về một xung TRUE hay là nhiều xung TRUE liên tiếp theo thời gian .Tương tự nếu như phím không được nhấn thì nó sẽ gửi một xung FALSE hay là một dãy các xung FALSE theo thời gian ?
    Có nhiều cách gửi ,cách gửi như thế nào phụ thuộc vào việc ta cài đặt trong thanh kích hoạt xung như thế nào ?
    Dấu ‘’’ cao :
    Thiết lập cách gửi tín hiệu xung TRUE cho bộ controller .
    Khi một sự kiện đang diễn ra trong một khoảng thời gian nào đó thì bộ sensor sẽ nhận biết sự kiện này trong khoảng thời gian đó.Nếu bạn bật nút này thì có nghĩa là bạn đang thiết lập cách gửi liên tục .Tức là ,xung TRUE sẽ được gửi liên tục cho bộ controller khi mà sự kiện vẫn còn diễn ra .Thời gian cách nhau giữa 2 lần gửi liên tiếp sẽ phụ thuộc vào tần số f mà bạn đặt trong thanh kích hoạt này .
    Nếu bạn không bật nó thì bộ sensor chỉ gửi một lần khi phát hiện ra sự kiện xảy ra .
    Dấu ‘’’ thấp :
    Thiết lập cách gửi tín hiệu xung FALSE cho bộ controller .
    Khi mà không có sự kiện nào diễn ra bộ cảm nhận sẽ biết không có sự kiện xảy ra và nó sẽ gửi xung FALSE đến cho bộ controller .Nếu bạn bật nút này thì có nghĩa là bạn đang thiết lập cách gửi liên tục .Tức là ,xung FALSE sẽ được gửi liên tục cho bộ controller khi không phát hiện sự kiện nào được cài đặt cho bộ sensor diễn ra .Thời gian cách nhau giữa 2 lần gửi liên tiếp sẽ phụ thuộc vào tần số f mà bạn đặt trong thanh kích hoạt xung này .
    Tần số f
    Tham số f đo theo đơn vị tích tắc logic(tick) ,nó là độ trễ giữa các lần gửi xung đến cho controller.Mỗi đơn vị tick tương ứng với thời gian là 1/60 của giây).Mặc định là không .Có nghĩa là gửi liên tiếp mỗi 1/60 giây đều gửi tín hiệu .
    Ví dụ :
    • f=1 nghĩa là xung sẽ được gửi sau mỗi 1/60 của giây của lần gửi trước.
    • f=30 nghĩa là các xung sẽ được kích hoạt sau mỗi 30 lần đếm trôi qua của lần gửi trước. Điều này có nghĩa là các xung được kích hoạt sau môi nửa giây ;
    • f=60 nghĩa là các xung sẽ được kích hoạt sau mỗi 60 tick, tức là 1 giây sau lần gửi trước .
    Tăng giá trị của f là cách tốt để tiết kiệm hiệm suất.
    Level

    Tap
    Một tùy chọn cho cách gửi xen kẽ đối với việc gửi xung TRUE.Xung FALSE nếu xảy ra vẫn gửi bình thường .
    -Nếu bạn không thiết lập bật nút TRUE(dấu ‘’’ cao) thì khi một xung TRUE vừa gửi xong ,thì nó gửi thêm một xung FALSE nữa và ngừng việc gửi tại đây .
    -Nếu bạn thiết lập bật nút TRUE nhưng mà f=0 thì nó vẫn gửi liên tục xung TRUE mà không gửi xung FALSE vào .
    -Nếu bạn thiết lập bật nút TRUE nhưng f>0 thì mỗi lần gửi TRUE nó sẽ gửi ngay một xung FALSE kèm theo ,rồi và cứ luân phiên như vậy .
    Inv
    Tham số này thiết lập sẽ đảo ngược xung truyền từ bộ sensor tới controller.
    Đây là bảng tổng quan các thiết lập
    Trao đổi về làm Game trong blender B4dd0f514acc15819d29147f575af7ff_37291787.a
    avatar
    xyz_90


    Tổng số bài gửi : 19
    Join date : 30/10/2011

    Trao đổi về làm Game trong blender Empty Re: Trao đổi về làm Game trong blender

    Bài gửi by xyz_90 Sun Oct 30, 2011 10:47 pm

    Vấn đề là nút level ý nghĩa ra sao các bạn có thể nói cho mình biết được không
    avatar
    Admin
    Admin


    Tổng số bài gửi : 25
    Join date : 11/09/2011

    Trao đổi về làm Game trong blender Empty Re: Trao đổi về làm Game trong blender

    Bài gửi by Admin Fri Nov 04, 2011 9:17 pm

    Theo mình nghĩ thì toàn là các frame , nếu thực hiện cái gì đó thì nó sẽ tương tác lại, bạn muốn nó tương tác cao thế nào thì level bạn sẽ chỉnh cái nào cao tương tác với vật đó càng cao.

    Sponsored content


    Trao đổi về làm Game trong blender Empty Re: Trao đổi về làm Game trong blender

    Bài gửi by Sponsored content


      Hôm nay: Fri May 17, 2024 9:13 am