Hiển thị các bài đăng có nhãn Nhập môn. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Nhập môn. Hiển thị tất cả bài đăng

Thứ Hai, 11 tháng 11, 2013

AI 1.2 - Xác suất ngẫu nhiên trong AI


  1.2 - Xác suất ngẫu nhiên trong AI

Giả sử rằng kẻ địch thực vật trong một trò chơi FPS, lúc nào cũng giết chết người chơi bằng một cú bắn, một địch thủ trong một trò đua xe lúc nào cũng chọn cho mình đường đua tốt nhất, và vượt mặt không có bất kỳ sự va chạm nào với bất kỳ chướng ngại nào. Chẳng hạn như ở một mức độ quá thông minh sẽ làm cho anh ta khó chơi đến nỗi hầu như không thể nào có thể thắng nỗi. Mặc khác, tưởng tượng một kẻ địch AI lúc nào cũng chọn cùng một con đường để đi, hoặc là cố gắng để trốn khỏi người chơi. AI điều khiển những hành động của những thực thể cùng một cách, mỗi lần người chơi gặp chúng, như thế sẽ làm cho trò chơi dễ đoán ra và dễ dàng thắng.

http://halo4nation.com/wp-content/uploads/2012/06/Screen-shot-2012-06-04-at-1.36.32-PM.png
Enemy AI trong game Halo 4

Cả hai tình huống trước đó hiển nhiên ảnh hưởng đến mặt thú vị của game, và làm cho người chơi cảm thấy game không có thách thức hoặc không còn công bằng nữa. Một cách để sửa cái kiểu AI hoàn hảo và AI ngốc nghếch này, chính là gây ra vài lỗi trong sự thông minh của chúng. Trong game, tính ngẫu nhiên và xác suất được áp dụng trong việc đưa ra quyết định lúc tiến hành các phép toán của AI. Dưới đây là các tình huống chính khi chúng ta muốn để cho các thực thể AI thay đổi một quyết định ngẫu nhiên :

- Vô tình : tình huống này đôi khi trong một game trinh thám, hoặc có lẽ một game NPC, mà có thể cần đưa ra một quyết định ngẫu nhiên, chỉ vì nó không có đủ thông tin để đưa ra một quyết định hoàn hảo, và/hoặc nó thật sự không có vấn đề gì với quyết định đưa ra. Đơn giản chỉ đưa ra quyết định một cách ngẫu nhiên và hi vọng vào việc có kết quả tốt nhất, là cách để bước vào trong một tình huống như thế này.


http://img1.lln.crunchyroll.com/i/spire3/d3b2d143aaf071ab62ab6c46e74a0c311281668978_full.jpg
Ảnh chụp từ game Personal 4
- Cố ý : tình huống này dành cho dạng AI hoàn hảoAI ngốc nghếch. Như chúng ta đã nói đến trong các ví dụ trước, chúng ta sẽ cần thêm vài tính ngẫu nhiên một cách có chủ ý, chỉ để làm cho chúng thêm hiện thực, và cũng để phù hợp mức độ khó với trình độ người chơi.

http://media.pcgamer.com/files/2012/05/Diablo-3-Lost-Head.jpg
Trò chuyện với NPC để thực hiện nhiệm vụ trong game Diablo III
Chẳng hạn tính ngẫu nhiên và xác suất có thể được dùng cho những thứ chẳng hạn như khả năng bấm nút, cộng hoặc trừ tính thiệt hại ngẫu nhiên ở trên các thiệt hại cơ bản. Việc dùng ngẫu nhiên và xác suất, chúng ta có thể thêm vào một chiều hướng không chắc chắn thực tế cho game của chúng ta và làm cho hệ thống AI có phần khó đoán.

Chúng ta cũng có thể dùng xác suất để định nghĩa các lớp nhân vật AI khác nhau. Chúng ta nhìn đến những nhân vật anh hùng trong Defense of the Ancient (DotA), là một dạng game chiến thuật RTS (real-time stategy) nổi tiếng dạng Warcraft III. Có ba kiểu hero dựa trên ba thuộc tính chính : sức mạnh (Strength), thông minh (Intelligence), và nhanh nhẹn (Agility). Các nhân vật thuộc lớp Strength là các hero mạnh về tính chất vật lý, trong khi các nhân vật Intelligence phải giỏi về cách điều khiển cấc bùa phép và ma thuật. Agility định nghĩa sự lanh lẹ của một hero để tránh những cuộc tấn công và tấn công một cách nhanh nhẹn. Một AI hero Strength sẽ có khả năng để gây nhiều sát thương trong các cuộc cận chiến, trong khi hero Intelligence sẽ có nhiều cơ hội để gây sát thương cao hơn bằng việc dùng bùa và phép. Cẩn thận trong việc cân bằng tính ngẫu nhiên và xác suất giữa các lớp và các anh hùng khác nhau, sẽ làm cho game có nhiều thách thức hơn, và làm cho DotA thú vị để chơi.

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ouo6fROhgKlIaAWWMqxs7K1MGjjXDS8OImVjrqmZ09VPIoy92VNDq8lfLMhfBIFq_z38yoAMtiOPFDJaMswPrQjGgpuGS6uij_MNAuxW8fp5DC_bBKC82L_O6ShMUSfHr3zqGN_AgSY/s1600/6.75_Loadscreen.jpg
Loadscreen từ map DotA 6.75


Hệ thống cảm biến

Nhân vật AI của chúng ta cần biết về những việc quanh chúng ta, và thế giới họ đang tương tác đến, để đưa ra một quyết định riêng biệt. Chẳng hạn thông tin có thể là như sau :

- Vị trí của người chơi : thông tin này dùng để quyết định tấn công hoặc săn, hoặc tiếp tục tuần tra.
- Công trường và những vật thể gần đó : thông tin này được dùng để trốn hoặc ẩn núp.
- Máu của người chơi và của chính nhân vật AI : thông tin còn lại được dùng để quyết định có hay không rút lui hoặc tiến tới.
- Vị trí của những tài nguyên trên bản đồ ở game RTS : thông tin này được dùng để chiếm đóng và thu thập tài nguyên, cần cho việc xây dựng và tạo ra các đơn vị khác.

http://insertcredit.com/wp-content/uploads/2011/12/sc2.jpg
Ảnh chụp trong game chiến thuật hay nhất mọi thời đại Starcraft 2
Như bạn có thể thấy, nó có thể thay đổi nhiều, phụ thuộc vào hình thức của game chúng ta đang cố gắng xây dựng. Vì thế, làm sao để chúng ta thu thập thông tin đó ?


http://store.haynhucnhoi.com/data/2013/10/11/d61df2f03f6c4ae056388e7aa8adc928.gif
Hệ thống cảm biến của thiết bị game
Bỏ phiếu

Một phương thức để thu thập thông tin là việc bỏ phiếu. Chúng ta có thể đơn giản làm if/else hoặc chuyển đổi phương thức FixedUpdate nhân vật AI của chúng ta. Nhân vật AI chỉ là thăm dò thông tin chúng ta quan tâm đến thế giới game, làm những kiểm tra, và hành động dựa vào đó. Những cách thức bỏ phiếu hoạt động tuyệt vời, nếu không có nhiều thứ để kiểm tra. Tuy nhiên, vài nhân vật có thể không cần thăm dò tình trạng thế giới mỗi hệ thống. Những nhân vật khác có thể cần những tỷ lệ phiếu bầu khác nhau. Vì thế, thông thường trong những game lớn, hệ thống AI phức tạp hơn, chúng ta cần sắp xếp một cách thức điều khiển theo sự kiện bằng cách dùng một hệ thống thông điệp tổng thể.

Hệ thống thông điệp

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhILIq0PPLd-bvAvV-GBJkBrns546kzwDNQndWLtpF4IH8UY7d25UZ0ZJsV9fIxfqF3vm2uOf5qUwxPNw9_m92ZfNUrJxmuqz5_FKO6dRMn1WyXo5ksAVHcfOFKimlM-USv6RbU7YGA2p96/s1600/J1RG_130-1.pngAI đưa ra quyết định hồi đáp cho những sự kiện trong thế giới. Những sự kiện được kết nối giữa thực thể AI và người chơi, thế giới, hoặc những thực thể AI khác thông qua một hệ thống thông điệp. Chẳng hạn, khi người chơi tấn công một đơn vị kẻ địch từ một nhóm lính tuần tra, những đơn vị AI khác cần biết về tai nạn này, để mà chúng có thể bắt đầu tìm kiếm và tấn công người chơi. Nếu chúng ta dùng phương thức bỏ phiếu, những thực thể AI của chúng ta sẽ cần kiểm tra tình trạng của tất cả các thực thể AI khác, để biết về tai nạn này. Nhưng với một hệ thống thông điệp điều khiển theo sự kiện, chúng ta có thể bổ sung điều này vào một cách có thể quản lý và phát triển. Những nhân vật AI quan tâm một sự kiện riêng có thể được đăng ký như những thính giả. Những thực thể AI có thể tiếp tục để có những hành động thích hợp, hoặc thực hiện kiểm tra xa hơn.


Hệ thống điều khiển sự kiện không cung cấp máy móc nhanh hơn việc bỏ phiếu. Nhưng nó cung cấp một hệ thống kiểm tra thuận tiện, trung tâm, mà cảm nhận thế giới và thông tin cho các đặc vụ AI quan tâm, đỡ hơn mỗi cá nhân đặc vụ phải kiểm tra cùng một sự kiện trong mỗi hệ thống. Trong thực tế, cả hai việc bỏ phiếu và hệ thống thông điệp được dùng cùng với nhau hầu hết. Chẳng hạn, AI có thể bỏ phiếu để có nhiều thông tin khi nó nhận một sự kiện từ hệ thống thông điệp.

Thứ Ba, 15 tháng 10, 2013

AI 1.1 - Giới thiệu về AI



  1.1 - Giới thiệu về AI (Trí Tuệ Nhân Tạo)

Quyển sách này giúp bạn kết hợp chặt chẽ nhiều kỹ thuật AI (Trí tuệ nhân tạo) trong các game của bạn. Chúng ta sẽ thảo luận về những kỹ thuật quyết định chẳng hạn như Finite State Machines (Máy Trạng Thái) và Behavior Tree (Cây Hành Vi). Chúng ta cũng sẽ nhìn vào động tác, tránh thoát chướng ngại, và tập hợp lại. Chúng ta cũng biết được làm sao để theo dấu, làm sao tạo một con đường bằng cách dùng thuật toán tìm đường A*, và rồi cách nào để đi đến đích bằng cách dùng một mạng lưới điều hướng. Như một phần thưởng, chúng ta sẽ đi vào chi tiết về tính ngẫu nhiên và khả năng có thể xảy ra, và rồi kết hợp chặt chẽ những ý kiến này vào một project cuối cùng.

1. Giới thiệu về AI

Chương này sẽ giúp bạn hiểu một chút nền tảng về trí tuệ nhân tạo ở nhà trường, những lĩnh vực truyền thống, và những ứng dụng chuyên biệt của game. Chúng ta sẽ học để biết ứng dụng và sự thi hành của AI trong game khác với những lĩnh vực khác ra sao, cùng những yêu cầu quan trọng và đặc biệt cho AI trong game. Chúng ta cũng học thêm những kỹ thuật cơ bản của AI được dùng trong game. Chương này dùng để tham khảo cho các chương sau, chúng ta sẽ thực thi những kỹ thuật AI đó trong Unity.


Trí tuệ nhân tạo - Artificial Intelligence (AI)

Các tổ chức sống như động vật và con người có vài loại trí tuệ, giúp chúng ta trong việc đưa ra quyết định riêng để thực hiện vài điều. Mặc khác, máy tính chỉ là thiết bị điện tử có thể xử lý dữ liệu, thực hiện những phép toán logic ở tốc độc cao, và xuất ra kết quả. Vì thế, Trí tuệ nhân tạo (AI) là đề tài chính của việc tạo ra máy tính có thể suy nghĩ và quyết định như tổ chức sống, để thực thi những phép toán chuyên biệt.

Hiển nhiên đây là chủ đề lớn. Và không có thể nào một quyển sách nhỏ như thế này có thể nói hết mọi điều liên quan đến AI. Nhưng nó thật sự quan trọng để hiểu những điều căn bản của AI, khi đang được sử dụng trong những lĩnh vực khác nhau. AI chỉ là một thuật ngữ chung; những thi hành của nó cùng những ứng dụng của nó thì khác nhau cho những mục đích khác nhau, giải quyết những tập vấn đề khác nhau.

Trước khi chúng ta chuyển sang những kỹ thuật game riêng biệt, chúng ta sẽ nhìn về những phạm vi nghiên cứu trong các ứng dụng AI :

Thị giác máy tính (Computer vision) : Đó là khả năng để lấy nhập liệu hình ảnh từ các nguồn chẳng hạn như video hay camera, và phân tích chúng để thực thi các phép toán riêng chẳng hạn như nhận dạng khuôn mặt, nhận dạng vật thể, và nhận dạng ký tự bằng quang học.

Thực thi ngôn ngữ tự nhiên (Natural language processing - NLP) : Đó là khả năng cho phép một máy tính đọc và hiểu các ngôn ngữ, cũng như chúng ta đọc và nói một cách bình thường. Vấn đề là những ngôn ngữ chúng ta dùng hôm nay khó để máy hiểu. Có quá nhiều cách khác nhau để nói về một điều, và cùng một câu có thể hiểu theo nhiều nghĩa khác nhau tuỳ theo ngữ cảnh. NLP là bước tiến quan trọng cho máy tính, khi chúng cần hiểu ngôn ngữ và những diễn đạt chúng ta dùng, trước khi chúng có thể thực hiện chúng và trả lời một cách hợp lý. May thay, có một tập thông tin khổng lồ có thể trên Web, chúng có thể giúp nhà nghiên cứu làm các phân tích tự động về ngôn ngữ.

Lý luận phán đoán theo kinh nghiệm (Common sense reasoning) : Đây là một kỹ thuật mà bộ não của chúng ta có thể dễ dàng dùng để vẽ ra những câu trả lời thậm chí từ các lĩnh vực chúng ta không hiểu rõ. Kiến thức về việc phán đoán dựa theo kinh nghiệm là một cách thông thường cho chúng ta để cố gắng vượt qua các câu hỏi chắc chắn, khi bộ não chúng ta có thể hoà trộn và tác động lẫn nhau giữa ngữ cách, nền tảng kiến thức, và sự thành thạo ngôn ngữ. Nhưng việc làm ra các bộ máy để áp dụng kiến thức như thế vô cùng phức tạp và vẫn là một thách thức lớn đối với các nhà nghiên cứu.
AI trong game

http://somegamez.com/wp-content/uploads/2013/09/the-art-of-game-design.jpgGame AI cần bổ sung chất lượng của một game. Vì thế chúng ta cần hiểu yêu cầu nền tảng mà mỗi game cần có. Câu trả lời sẽ dễ dàng hơn. Đó là nhân tố thú vị. Vì vậy, điều gì làm cho một trò game trở nên thú vị để chơi ? Đây là chủ đề cho việc thiết kế game, và tham khảo tốt là trong The Art of Game Design của tác giả Jesse Schell. Chúng ta hãy thử để thảo luận câu hỏi này mà không cần đi sâu vào chủ đề thiết kế game. Chúng ta sẽ nhận ra rằng một trò chơi kích thích thật sự là niềm vui để chơi. Để tôi nhắc lại : đó là về việc làm ra một trò chơi mang tính thách thức. Có nghĩa là game không nên quá khó mà người chơi không thể đánh bại đối thủ, hoặc là quá dễ thắng. Tìm ra mức độ thử thách đúng đắn là chìa khoá để làm cho trò chơi trở nên thú vị.

Và đó là nơi AI đóng góp. Vai trò của AI trong game là để tạo thú vị bằng việc cung cấp những đối thủ khiêu chiến, và những nhân vật NPCs (non-player characters) hành động một cách có đầu óc trong thế giới game. Vì thế, dẫu rằng mục tiêu ở đây không để tái tạo toàn bộ quá trình của loài người và động vật, nhưng để làm cho NPCs có vẻ thông minh bằng việc phản ứng lại để thay đổi tình thế trong thế giới game theo một cách có nghĩa đối với người chơi.

http://i1.cdnds.net/13/28/618x371/gaming-pokemon-x-and-y-july-12-screenshots-10.jpg 

Lý do mà chúng ta không muốn làm hệ thống AI trong game quá xa hoa máy móc là, sức mạnh thực thi cần cho những tính toán AI cần được chia sẻ giữa những phép toán khác như việc lót đồ hoạ và mô phỏng vật lý. Cũng như, đừng quên rằng chúng ta, tất cả đều đang xảy ra trong thế giới thật, và cũng thật sự quan trọng để có được một tốc độ khung qua game. Thậm chí có những nỗ lực để tạo ra bộ xử lý trong máy tính chuyên dụng cho những phép toán AI (Bộ xử lý Intia của AI Seek). Với sức mạnh thực thi chưa từng tăng thêm, chúng ta bây giờ có nhiều chỗ hơn cho các phép toán AI. Tuy nhiên, như tất cả những quy luật khác trong việc lập trình game, việc tối ưu hoá những tính toán AI còn là một thách thức lớn đối với những nhà lập trình AI.

Những kỹ thuật AI

Trong phần này, chúng ta sẽ đi qua vài kỹ thuật AI đang được dùng trong các hình thức khác nhau của game. Chúng ta sẽ học làm sao để thực thi mỗi đặc tính đó trong Unity trong những chương tiếp theo. Khi đó quyển sách này không tập trung vào những kỹ thuật AI chính nó, nhưng việc thực thi của những kỹ thuật đó bên trong Unity, chúng ta sẽ không đi quá sâu vào chi tiết về những kỹ thuật đó ở đây. Vì thế, hãy xem nó như một buổi học cấp tốc, trước khi đi vào thực hiện đầy đủ hiển nhiên. Nếu bạn muốn học nhiều về AI cho game, thật sự có vài quyển sách hay ở đó, chẳng hạn như Programming Game AI by Example bởi Mat Buckland và Buckland and Artificial Intelligence for Games của Ian Millington và John Funge. Bộ sách AI Game Programming Wisdom cũng chứa nhiều tài nguyên hữu ích và các bài về các kỹ thuật AI gần nhất.

Máy Trạng Thái - Finite State Machines (FSM)

Máy Trạng Thái (FSM) có thể được xem như một trong những mô hình AI đơn giản nhất, và thông dụng trong phần lớn các game. Máy trạng thái cơ bản bao gồm một số trạng thái có hạn với một trạng thái khởi tạo, và rồi quan sát những sự kiện và các quy luật mà sẽ gây ra một sự chuyển đổi trạng thái này sang trạng thái khác. Chính xác thì một thực thể game chỉ có thể ở trong một trạng thái vào một thời điểm bất kỳ.

Ví dụ, chúng ta hãy xét một lính canh gác AI trong một game thể loại bắn súng. Trạng thái của nó có thể đơn giản chỉ là đi tuần tra, săn đuổi, và bắn.


FSM đơn giản của một lính canh gác AI


Cơ bản có 4 thành phần trong một FSM đơn giản :


Trạng thái : thành phần này định nghĩa một tập trạng thái mà game hoặc một NPC có thể chọn trong tuần tra, đi săn, và bắn.

· Chuyển trạng thái : thành phần này định nghĩa mối quan hệ giữa các trạng thái khác nhau


· Quy luật : thành phần này được dùng để khởi đầu một sự chuyển trạng thái (người chơi trong tầm ngắm, tiếp cận đủ gần để tấn công, và người chơi thua hoặc bị giết)


· Sự kiện : đây là thành phần, mà sẽ khởi động để kiểm tra quy luật (khu vực có thể thấy của lính, khoảng cách với người chơi,…)

Vì thế, một con quỷ ở Quake 2 có thể có những trạng thái sau : đứng, đi, chạy, lẩn tránh, đứng yên và tìm kiếm.
http://gunpowered.com/q2cheese/screens/quake2-12.jpg
 
FSM được dùng chủ yếu trong game AI rộng rãi, vì chúng thật sự dễ dàng để thực thi và nhiều hơn cho cả những game đơn giản và phức tạp hơn một chút. Việc sử dụng if/else hoặc switch, chúng ta có thể dễ dàng thực thi một FSM. Nó có thể lộn xộn, khi chúng ta bắt đầu có nhiều trạng thái và nhiều chuyển đổi. Chúng ta xem cách quản lý một FSM đơn giản trong chương tiếp theo.

Thứ Ba, 8 tháng 10, 2013

UNITY CĂN BẢN BÀI 2 - TÙY BIẾN KHÔNG GIAN LÀM VIỆC

Bạn có thể tùy ý thay đổi cấu trúc của các Views bằng cách clic-dragging những tab tới những nơi bạn muốn. Đặt cạnh một View nào đó, nó sẽ tự phân chia windows ra, đặt ra ngoài nó sẽ tự động tạo thành một windows riêng. (dịch thoáng).

Views có thể được đặt bên cạnh bên, hay bên dưới bất kỳ cửa sổ nào.




Các tab cũng có thể kéo ra ngoài cửa sổ chính và được sắp xếp theo ý thích người dùng. Nếu cần thiết, bạn cũng có thể cho nó nằm ngang hàng với các Views khác trong cửa sổ chính.


Cửa sổ Editor nổi cũng giống như cửa sổ Editor chính, ngoại trừ nó không có Toolbar (thanh công cụ)

Bạn cũng có thể lưu lại những thiết lập về cấu trúc của các Views, bằng cách click vào menu dropdown Layout ở thanh Toolbar, chọn Save Layout... Đặt tên cho nó và sau đó bạn dễ dàng gọi nó ra bằng cách chọn nó trong dropdown menu.

Một Layout đã hoàn toàn được chỉnh sửa

Bất kỳ lúc nào bạn cũng có thể right-click lên một tab của bất kỳ góc nhìn nào để xem những tính năng khác như Maximize hay thêm vào một tab mới trong cùng một cửa sổ.


UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 6: INSPECTOR




Games trong Unity được tạo ra bởi tập hợp rất nhiều GameObject, trong đó bao gồm meshes, scripts, âm thanh, hay những đối tượng graphic như nguồn sáng v..v... Inspector sẽ hiển thị mọi thông tin về đối tượng đang làm việc một cách chi tiết, kể cả những Components được đính kèm và những thuộc tính của nó. Tại đây bạn có thể điều chỉnh, thiết lập mọi thông số chức năng của những mối liên kết GameObject-Component.




















Mọi thuộc tính thể hiện trong Inspector đều có thể được tùy biến một cách trực tiếp. Ngay cả với những biến trong script cũng có thể được hiệu chỉnh mà không cần xem mã. Trong script, nếu bạn định nghĩa một giá trị là public cho một kiểu đối tượng (như GameObject hay Transform), bạn có thể drag-drop một GameObject hay một Prefab vào trong Inspector để gán giá trị cho nó.




 

Chúng ta có thể click lên icon hình bánh răng nhỏ bên phải hay click chuột phải lên tên cảu Component để xuất hện context menu dành cho những thiết lập của Component.

 



Inspector cũng sẽ thể hiện mọi thông số Import Setting của assets đang làm việc.


Sử dụng thanh sổ Layer để sắp xếp các lớp sẽ được hiển thị..Thanh sổ của mục Tag giúp bạn đặt tag cho đối tượng được chọn.

Labels (Nhãn)

Unity cho phép các tài nguyên được gắn Label để dễ dàng truy cập và phân loại. Mục nằm dưới cuối cùng của  thẻ Inspector là bảng lựa chọn nhãn cho tài nguyên.

Nút (...) ở góc dưới bên phải cho phép bạn truy cập đến danh sách các nhãn của tài nguyên đang có.

 
 
Bạn có thể chọn một hoặc nhiều nhãn từ danh sách để gắn nhãn cho tài nguyên. Nếu bạn đã lựa chọn nhãn rồi mà tiếp tục chọn lại nhãn đó, chương trình sẽ hủy bỏ việc gắn nhãn đó cho tài nguyên.

 
 
Danh sách có phần cho bạn tìm kiếm cách nhãn trong danh sách. Bạn có thể tạo thêm các nhãn mới bằng việc gõ vào khung textbox, nhãn mới sẽ được thêm vào danh sách và được gắn vào tài nguyên đang được chọn. Nếu bạn hủy bỏ việc gắn nhãn tự tạo của tất cả tài nguyên thì nhãn tự tạo đó sẽ biến mất trong danh sách.

UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 5: Khung nhìn trong game







Khung nhìn trong game chính là góc nhìn từ các Camera trong game của bạn. Nó là phần đặc trưng cho phần hậu kì sản xuất game. Bạn cần phải sử dụng một hoặc nhiều camera để điều khiển những gì người chơi của bạn sẽ nhìn thấy khi đang chơi game của bạn. Hãy tìm hiểu kĩ hơn về các camera trong phần Tài liệu component.

Chế độ chơi thử nghiệm:



Sử dụng các nút trong Toolbar để điều khiển chế độ chơi thử nghiệm và trải nghiệm cảm giác trò chơi của bạn sản xuất sẽ hoạt động ra sao. Khi bạn ở chế độ chơi thử nghiệm, bất kì sự thay đổi nào bạn làm nhất thời đều sẽ bị hoàn tác vụ khi thoát chế độ chơi thử nghiệm. Editor UI sẽ tối lại và nhắc nhở bạn điều này.

Thanh điều khiển góc nhìn:



Thanh sổ đầu tiên là thanh Tỉ lệ. Đây là nơi bạn có thể chỉnh tỉ lệ khung nhìn của góc nhìn trong game thành các giá trị khác nhau. Giúp bạn có thể kiểm tra game của bạn sẽ trông như thế nào trên màn hình với các tỉ lệ khung hình khác nhau.

Ở phía bên phải thanh này là Maximize on Play. Khi bạn kích hoạt, góc nhìn của game sẽ đạt kích thước 100% trong cửa sổ Editor khi chơi ở chế độ chơi thử nghiệm

Kế bên là nút Stats, đây là nút thể hiện thông số rất hữu dụng cho việc hiển thị hiệu suất đồ họa trong game của bạn.




Nút cuối cùng là Gizmos. Khi bật nút này, đối tượng trong Khung nhìn điều được hiển thị lên Khung nhìn trong game. Thanh sổ cạnh bên để bật, tắt hiển thị các Components khác nhau được sử dụng trong game.


Kế bên tên của các Component là các biểu tượng thiết lập liên quan của mỗi đối tượng. Mỗi biểu tượng đều có một hộp thoại để có thể điều chỉnh định dạng khác nhau.

Thứ Tư, 31 tháng 7, 2013

UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 2: Thẻ Hierarchy

II/ Thẻ Hierarchy:




Thẻ Hierarchy bao gồm các GameObject (Các đối tượng làm nên một game hoàn chỉnh) trong Scene (một cảnh / một phân đoạn / một màn chơi riêng...) hiện hành. Nó bao gồm các tài nguyên như model 3D, prefabs (các gói tài nguyên), các đối tượng tự tạo góp phần tạo nên một game hoàn chỉnh. Bạn có thể lựa chọn các đối tượng trong thẻ Hierarchy và kéo nó vào một đối tượng khác để tạo mối liên hệ cha con cho đối tượng. Khi một đối tượng đượt thêm hay xóa trong scene, nó sẽ xuất hiện hoặc biến mất trong thẻ Hierarchy.

Quan hệ cha con:

Nếu bạn muốn bất kỳ GameObject thành con của một cái khác, bạn có thể kéo thả nó vào đối tượng khác trong thẻ Hierarchy. Một đối tượng con sẽ di chuyển và xoay tròn giống như đối tượng cha. Bạn có thể sử dụng tam giác nhỏ phía trước đối tượng cha để hiển thị và ẩn các đối tượng con nếu cần thiết.


Hình: Hai đối tượng bình thường.


Hình: Đối tượng cha và đối tượng con.

UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 3: Toolbar (Thanh công cụ)



Toolbar (Thanh công cụ) bao gồm 5 phần điều khiển cơ bản. Mỗi phần đều liên quan đến các mục đích khác nhau của Unity Editor.

: Bộ công cụ biến đổi -- sử dụng với Cửa sổ Scene.

: Biến đổi chốt Gizmo -- ảnh hưởng đến hiển thị khung nhìn Scene.

: Các nút Chạy/Ngưng/Chạy từng bước -- sử dụng để chạy thử game.

Thanh xổ Layer -- điều khiển các đối tượng được hiển thị trong khung nhìn Scene.

Thanh xổ Layout -- điều khiển việc bố trí giao diện màn hình.

UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 4: Khung nhìn Scene


 
Hình: Khung nhìn Scene

Khung nhìn Scene là nơi để bạn chọn và bố trí các đối tượng như cảnh quan, người chơi, camera, kẻ địch và mọi đối tượng khác trong game. Sự bố trí hoạt cảnh với khung nhìn Scene là một chức năng quan trọng nhất của Unity, vì thế chúng ta có thể thực hiện việc này một cách nhanh chóng. Unity cung cấp các phím tắt cho hầu hết các chức năng thông dụng.



Định hướng khung nhìn Scene:

Bài này mình chỉ nói sơ lược qua về phần định hướng khung nhìn Scene. Qua phần Nhập môn dựng cảnh mình sẽ nói rõ hơn.

Giữ chuột phải trong phần khung nhìn Scene để kích hoạt chế độ điều chỉnh góc nhìn. Sau khi giữ chuột phải, bạn hãy kết hợp với di chuyển chuột hoặc các phím WASD để di chuyển góc nhìn, phím Q và E để di chuyển góc nhìn lên và xuống.
Chọn bất kỳ một GameObject nào và ấn phím F để chuyển góc nhìn về đối tượng đã được chọn.
Sử dụng các phím mũi tên để di chuyển trên mặt phẳng tọa độ X/Z.
Giữ Alt và kéo thả chuột trái để xoay góc nhìn theo điểm trục.
Giữ Alt và kéo thả bằng nút giữa chuột để di chuyển góc nhìn.
Giữ Alt và kéo thả chuột phải để phóng to, thu nhỏ khung nhìn tương tự như bạn lăn chuột giữa.

Bạn có thể sử dụng Công cụ thủ công (phím tắt: Q) nếu như bạn sử dụng chuột một nút.
Nhấp chuột và kéo thả để di chuyển góc nhìn.
Giữ Alt và kéo thả chuột để xoay góc nhìn quanh điểm trục.
Giữ Ctrl và kéo thả chuột để phóng to thu nhỏ góc nhìn.

Phía trên bên phải khung nhìn Scene là biểu tượng Gizmo (trục tọa độ XYZ). Đây là nơi hiển thị góc nhìn định hướng hiển tại trong khung nhìn Scene, nó giúp bạn nhanh chóng thay đổi tọa độ góc nhìn.



Mỗi màu là một trục tọa độ khác nhau. Bạn có thể nhấp vào bất kỳ màu nào để xoay góc nhìn về phía trục tọa độ tương ứng.

Định hướng cho các GameObject:

Bài này mình chỉ nói sơ lược qua về phần định hướng cho các GameObject. Qua phần Nhập môn dựng cảnh mình sẽ nói rõ hơn.

Khi xây dựng game của bạn, bạn sẽ phải đặt rất nhiều đối tượng vào thế giới trong game của bạn. Để làm điều này bạn hãy sử dụng các công cụ biến đổi trên thanh công cụ như dịch chuyển, xoay và kéo dãn đối tượng. Mỗi công cụ đều có trục tọa độ được hiển thị xung quanh đối tượng được chọn. Bạn có thể dùng chuột và thao tác bất kỳ trục tọa độ để biến đổi đối tượng, hoặc bạn có thể gõ trực tiếp giá trị vào phần ô nhập giá trị trong thẻ Inspector.



Thanh công cụ điều khiển trong khung nhìn Scene:



Thanh điều khiển khung nhìn Scene giúp bạn xem dưới nhiều chế độ hiển thị như Textured, Wireframe, RGB, Overdraw và nhiều loại khác. Nó còn có thể xem các ánh sáng, các tác động hay nghe các âm thanh trong game. Để rõ hơn các bạn hãy xem trong bài tìm hiểu về giao diện phần Góc nhìn trong game.

UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 1: Thẻ PROJECT



Hãy bỏ chút thời gian để ngắm qua và làm quen với giao diện của Unity Editor nào. Cửa sổ chính của giao diện được chia ra làm nhiều thẻ khác nhau được gọi là View. Có rất nhiều loại View khác nhau, chúng được sắp xếp tùy thuộc vào mục đích của người dùng.

I/ Thẻ Project:

Đây là nơi bạn có thể truy cập và quản lý các tài nguyên trong project của bạn.



Phần bảng bên trái là nơi hiển thị các thư mục theo cấu trúc cây thư mục. Khi nhấp chọn một thư mục ở bên cây thư mục thì các dữ liệu sẽ được hiển thị ở phần bảng bên phải. Các tài nguyên khác nhau sẽ hiển thị các biểu tượng khác nhau tùy thuộc vào định dạng của chúng (script, vật liệu, thư mục cha,...). Các biểu tượng có thể thay đổi kích cở bằng cách sử dụng thanh trượt nằm ở góc dưới bên phải. Nếu con trượt chạy về phía bên trái thì các biểu tưởng sẽ được hiển thị dưới dạng cây thư mục. Phần khoảng trống phía bên trái con trượt giúp hiển thị đường dẫn đầy đủ của file đang được chọn.

Phía trên danh sách cây thư mục là mục Favorite, đây là nơi bạn có thể truy cập nhanh đến các dữ liệu bạn thường xuyên sử dụng. Bạn có thể kéo thả dữ liệu từ trong danh sách cây thư mục vào mục Favourite và cũng có thể lưu trữ các tệp được tìm kiếm ở đó.

Phía trên mục bảng chọn hiển thị các tệp chính là đường dẫn hiển thị đường dẫn đến thư mục chứa tệp đang xem. Các thư mục được phân chia rỏ rệt để dễ dàng truy cập. Khi tìm kiếm, thanh này sẽ được thay thế để hiển thị khu vực đang tìm kiếm (thư mục chủ của tài nguyên, thư mục đang được chọn hoặc Kho tài nguyên) tùy thuộc vào tài nguyên trả phí hay miễn phí trong kho tài nguyên. Ở mục General trong Preferences của Unity có thể tắt hiển thị số lượt đếm của Kho tài nguyên nếu nó không cần thiết đối với bạn.


Hình: Phía trên khung hiện danh sách dữ liệu là thanh đường dẫn



Phía bên trái thanh công cụ, mục Create giúp bạn thêm các tài nguyên mới và thư mục mới vào thư mục hiện tại. Nói tóm lại, nó giúp bạn tìm kiếm tài nguyên cho project của bạn.

Danh sách các mục chọn trong menu Window giúp bạn chuyển đổi dạng hiển thị về dạng bảng một cột, chỉ hiển thị cây thư mục mà không có các biểu tượng định dạng tệp. Biểu tượng khóa tệp nằm kế bên danh sách giúp bạn khóa tệp được chọn lại tránh trường hợp nó bị thay đổi khi làm việc.


Tìm kiếm:

Chức năng tìm kiếm mạnh mẽ ngay cả khi các tài nguyên nằm trong các khu vực lớn hay các project không phù hợp. Thanh tìm kiếm sẽ lọc ra các tài nguyên phụ thuộc vào các kí tự trong ô tìm kiếm.



Nếu bạn chỉ gõ 1 từ thì khung tìm kiếm sẽ hiển thị tất cả tệp liên quan, nếu bạn gõ coastal scene thì nó sẽ hiển thị những tài nguyên có tên liên quan đến từ "coastal" và "scene".

Bên phải khung tìm kiếm có 3 biểu tượng nút. Cái đầu tien giúp bạn lọc ra các tài nguyên phụ thuộc vào định dạng của chúng.



Nút biểu tượng kế tiếp giúp bạn lọc theo nhãn của các tài nguyên (Nhãn được đặt cho các tài nguyên ở Thẻ Innspector). Số lượng lọc theo nhãn là rất lớn so với khung nhìn rất hạn hẹp.



Bạn có thể thêm vào các phần mở rộng như "t:" để lọc theo định dạng, hay "l:" để lọc theo nhãn. Bạn có thể gõ trực tiếp lên khung tìm kiếm nếu bạn biết rõ dữ liệu bạn đang tìm. Bạn có thể tìm kiếm một lượt nhiều định dạng hay nhãn. Khi gõ thêm nhiều định dạng, tìm kiếm sẽ giao các kết quả tìm kiếm lại. Khi gõ thêm nhiều nhãn, bộ lọc sẽ hợp các kết quả tìm kiếm theo nhãn lại.



Biểu tượng nút cuối cùng sẽ lưu các kết quả tìm kiếm lại vào mục Favourites trong danh sách tài nguyên.

Tìm kiếm trong Kho tài nguyên

Thẻ Project còn cho phép bạn tìm kiếm các tài nguyên đang hiện có trên Kho tài nguyên của Unity, các tài nguyên trả phí và miễn phí đều được hiển thị ở đây. Việc tìm kiếm tương tự như tìm tài nguyên trong một project của Unity. Công cụ tìm kiếm sẽ kiểm tra tên tài nguyên trước rồi đến gói tên, gói nhãn và gói mô tả theo tuần tự (Vì thế các tài nguyên có tên gần nhất so với từ trong ô tìm kiếm sẽ được xếp trước rồi mới đến các tài nguyên được tìm thấy trong phần gói mô tả bộ sản phẩm).



Nếu bạn lựa chọn một tài nguyên từ danh sách tìm kiếm này, chi tiết mục trả phí hay tải về sẽ được hiển thị kèm theo bên dưới. Một vài tài nguyên còn có những phần mô tả để bạn có thể tham khảo trước khi mua. Ngoài ra còn có các mục để xem các chi tiết phụ trong Kho tài nguyên.

Phím tắt:

F - Chọn trang.
Tab - Chuyển đổi qua lại giữa cột thứ nhất và cột thứ hai.
Ctrl/Cmd + F - Tìm kiếm.
Ctrl/Cmd + A - Chọn tất cả các đối tượng hiện có trong danh sách.
Ctrl/Cmd + D - Nhân đôi tài nguyên đang được chọn.
Delete - Xóa có hộp thoại.
Delete + Shift - Xóa không có hộp thoại.
Backspace + Cmd - Xóa không có hộp thoại (OSX)
Enter - Đổi tên đối tượng được chọn (OSX)
Cmd + mũi tên xuống -  Mở tài nguyên được chọn (OSX)
Cmd + mũi tên lên - Đến thư mục cha (OSX)
F2 - Đổi tên đối tượng được chọn (Win)
Enter - Mở tài nguyên được chọn (Win)
Backspace - Đến thư mục cha (Win)
Mũi tên phải - Mở bung mục được chọn (xem dưới dạng cây thư mục và kết quả tìm kiếm). Nếu đối tượng đã được mở sẵn, nó sẽ chọn thư mục con đầu tiên
Mũi tên trái -  Thu gọn mục được chọn (xem dưới dạng cây thư mục và kết quả tìm kiếm). Nếu đối tượng đã được thu gọn, nó sẽ chọn thư mục cha.
Alt + mũi tên phải - Mở bung đối tượng khi đang xem thử tài nguyên.
Alt + mũi tên trái - Thu gọn đối tượng khi đang xem thử tài nguyên.