‫Xin chào và chào mừng.
‫Trong bài giảng này, chúng ta sẽ tạo ra một khẩu súng và chúng ta sẽ tìm hiểu cách chúng ta
‫sẽ chế tạo súng cho trò chơi này để chúng có thể thay thế được, để chúng ta có thể có các thuộc tính khác nhau trên các
‫loại súng khác nhau.
‫Và đó thường là cách các kiến trúc hoạt động trong game bắn súng góc nhìn thứ nhất hoặc thứ ba, hãy đi sâu vào và xem nó được thực
‫hiện như thế nào.
‫Được chứ.
‫Vì vậy, chúng tôi đã không kiểm tra kế hoạch dự án của mình trong một thời gian ngắn.
‫Bất cứ khi nào chúng tôi đạt được kế hoạch, chuyển động được thực hiện.
‫Hoạt ảnh bây giờ đã xong và việc quay phim, đó là điều tiếp theo chúng tôi cần tập trung vào.
‫Bây giờ, có một chút khó hiểu ở đây vì lưới của chúng tôi dường như đã có một khẩu súng, nhưng thực sự chúng tôi
‫không muốn sử dụng khẩu súng này.
‫Chúng tôi muốn sử dụng nó theo một cách khác.
‫Lý do là trong một trò chơi thuộc thể loại bắn súng, bạn thường muốn có thể chuyển đổi giữa các loại vũ khí hoặc ít nhất là
‫có thể có các nhân vật khác nhau, có vũ khí khác nhau.
‫Và cách dễ nhất để làm điều đó là kiến trúc khẩu súng như một thứ riêng biệt với nhân vật để bạn có thể
‫hoán đổi chúng để nó có thể chịu trách nhiệm về cách nó bắn.
‫Nếu đó là súng phóng tên lửa hoặc súng ngắn hoặc súng trường, chúng sẽ làm mọi thứ theo những cách khác nhau.
‫Bây giờ, bạn có thể nói, được rồi, chúng ta hãy tạo một thành phần súng và chúng ta
‫có thể dán thành phần súng đó bên dưới lưới của chúng ta sẽ hoạt động, ngoại trừ việc sau đó chúng ta mất mô-đun cho phép chúng
‫ta thêm nhiều thành phần vào súng.
‫Vì vậy, những gì chúng tôi thực sự muốn làm là đi xuống lộ trình có một diễn viên cho khẩu súng trẻ con cho nhân
‫vật bắn súng.
‫Bây giờ, đây là điều mà chúng tôi chưa từng gặp trước đây, nhưng nó hoạt động như thế này.
‫Bạn có thể có một nhân vật bắn súng và một khẩu súng khi nó là con và nhân vật bắn súng có thể có nhiều thành
‫phần là ID con của nhau.
‫Vì vậy, bạn đã có viên đạn, chúng tôi đã có lưới như một con của viên nang vào lúc này
‫và các thành phần của súng có thể là ID con của nó.
‫Vì vậy, lưới lấy ID con cho lưới của ký tự.
‫Và nếu nó có bất kỳ thành phần nào khác, chẳng hạn như có thể là hiệu ứng hạt ở họng súng,
‫nó có thể được thêm vào lưới.
‫Vì vậy, bạn có thể thấy rằng các cấu trúc phân cấp này là độc lập, rằng bạn đã có các thành phần cảnh,
‫những thành phần có chuyển đổi ở bên phải và chúng có thể nằm trong một hệ thống phân cấp nhất định.
‫Và sau đó, hệ thống phân cấp diễn viên thực sự tuân theo hệ thống phân cấp của các thành phần cảnh.
‫Các diễn viên không có một hệ thống phân cấp của riêng họ.
‫Đây là phần hơi mất một chút thời gian để tìm hiểu xung quanh và
‫tôi đã rất ngạc nhiên khi nó nhấp vào đối với tôi là trên thực tế không có phân cấp diễn viên, chỉ có phân cấp
‫các thành phần cảnh.
‫Có những diễn viên sở hữu các thành phần cảnh và vì vậy họ kết thúc có một hệ thống phân cấp
‫vì các thành phần cảnh của họ có liên quan đến nhau, nhưng thực sự họ không có mối quan hệ nào với nhau.
‫Vì vậy, với điều đó đã nói, để thiết lập bối cảnh, điều đầu tiên chúng tôi muốn đi và làm thực sự là
‫tạo cho mình một diễn viên súng C ++.
‫Và trong trường hợp này, nó sẽ không phải là một con tốt hay một nhân vật hay bất cứ thứ gì tương tự.
‫Nó sẽ trở thành một diễn viên thẳng thắn bởi vì chúng tôi không cần bất kỳ hành vi nào.
‫Bạn không cần phải sở hữu nó.
‫Chúng ta không cần phải làm gì cả.
‫Nó chỉ là một diễn viên đơn giản, đơn giản.
‫Vì vậy, chúng ta hãy tiếp tục và làm điều đó.
‫Trong thực tế, một thử thách nhỏ dành cho bạn.
‫Hãy tiếp tục và tạo tác nhân C ++ đó, một cái gì đó bạn có thể thực hiện một thử thách nhỏ, hãy
‫thử nó.
‫Được chứ.
‫Và quay lại, tôi sẽ làm nó với lớp C ++ mới và chúng ta không cần phải xem, diễn viên.
‫Đó là loại chúng tôi muốn chọn và chúng tôi sẽ tiếp tục gọi đây là một khẩu súng, đơn giản như chúng ta hãy
‫tạo lớp đó.
‫Và khi đã xong, nó sẽ bật lên trong trình soạn thảo mã của bạn và chúng tôi chưa cần làm
‫gì với nó vì điều đầu tiên tôi muốn làm là tạo một lớp con bản thiết kế.
‫Vì vậy, hãy nhấp chuột phải vào lớp học của bạn trong trình duyệt nội dung và thay vì gọi nó là Súng của tôi, tôi không biết tại
‫sao nó lại tự động đặt mặc định đó là khẩu súng gạch dưới tiếng bíp.
‫Tôi sẽ đặt nó vào phần gốc của nội dung.
‫Bốn.
‫Bây giờ chúng ta có thể sắp xếp lại một chút khi chúng ta có nhiều lớp hơn.
‫Như tôi đã nói trước đây, chúng ta sẽ tạo lớp Blueprint.
‫Như bạn có thể thấy, nó hoàn toàn trống rỗng.
‫Nó có gốc cảnh mặc định này.
‫Chúng tôi sẽ muốn khắc phục điều đó.
‫Những gì chúng tôi muốn làm thực sự là thêm một thành phần trong C ++ vì đây là một khóa học C ++.
‫Hãy thực hành cơ bắp của việc thêm các thành phần trong C ++.
‫Điều đó cũng có nghĩa là chúng ta sẽ có quyền truy cập vào các thành phần đó từ bên trong mã C ++ của chúng ta để thao tác và viết
‫mã của chúng ta ở đó.
‫Bây giờ thiết lập mà chúng ta sẽ muốn là có một thành phần gốc của cảnh, thành phần này sẽ chỉ là một
‫thành phần cảnh và sau đó là một lưới là con của nó.
‫Tại sao chúng tôi muốn điều đó?
‫Bởi vì chúng tôi muốn có thể thay đổi vị trí của mắt lưới so với gốc của súng để về cơ bản chúng tôi có thể
‫đặt tay cầm ở các vị trí khác nhau cho các mắt lưới khác nhau.
‫Vì vậy, nếu chúng ta có các loại súng khác nhau, chúng ta có thể đảm bảo rằng tất cả chúng đều
‫có tay cầm này ở cùng một vị trí để khi chúng ta gắn nó vào tay nhân vật, nó sẽ xuất hiện với tay cầm trong tay
‫nhân vật.
‫Vì vậy, làm thế nào chúng ta sẽ làm điều đó?
‫Chúng ta sẽ xem xét mã Visual Studio của chúng ta và tôi sẽ tạo một phần riêng tư ở đây, nơi chúng ta sẽ
‫lưu trữ các thuộc tính mới cho các thành phần khác nhau mà chúng ta sẽ
‫đưa ra.
‫Vì vậy, tôi sẽ tạo một thuộc tính mới có thể nhìn thấy ở bất kỳ đâu mà chúng tôi muốn các thành phần của chúng tôi hiển thị ở bất kỳ đâu
‫vì chúng là con trỏ.
‫Chúng tôi không muốn có thể chỉnh sửa các con trỏ, nhưng chúng tôi muốn có thể xem các thuộc tính của các
‫con trỏ đó và có thể.
‫Chính những điều đó, và điều đó sau đó trở thành mục tiêu của lớp học mà chúng tôi đang hướng tới.
‫Điều đó sau đó quyết định những gì được hiển thị, những gì có thể chỉnh sửa.
‫Vì vậy, tất cả những gì chúng tôi muốn nói ở đây là nó không phải là con trỏ có thể chỉnh sửa được.
‫Vì vậy, đó là lý do tại sao chúng tôi sẽ hiển thị.
‫Dù sao, một chút sửa đổi ở đó.
‫Bây giờ chúng tôi muốn đây là bạn bởi vì nó là một thành phần, sau đó nó là một thành phần cảnh mà chúng tôi muốn.
‫Nếu tôi có thể gõ nó một cách chính xác, tôi đã thấy các thành phần và nó là một con trỏ đến nó và đây
‫sẽ là thành phần gốc của chúng tôi.
‫Như vậy và sau đó chúng tôi sẽ muốn có một tài sản của bạn.
‫Một lần nữa hiển thị ở bất kỳ đâu cho lưới của chúng tôi.
‫Lớp cho lưới sẽ là một thành phần lưới tĩnh mới vì đây không phải là lưới xương, nó cứng, không có bất
‫kỳ khung xương nào, bất kỳ xương nào.
‫Vì vậy, muốn nó trở thành một con trỏ và điều này sẽ gọi lưới như vậy.
‫Trong thực tế, tôi nghĩ rằng tôi cần phải cẩn thận một chút ở đây vì tôi nghĩ rằng thành phần gốc đã
‫tồn tại trong lớp cha cho diễn viên.
‫Vì vậy, tôi sẽ chỉ gọi tuyến đường này thay thế.
‫Và sau đó chúng ta đã có một hàm tạo trong C ++.
‫Chúng tôi chỉ cần đưa các tệp tiêu đề thích hợp vào đây.
‫Bây giờ, một mẹo nhỏ khi bạn đang sử dụng mã Visual Studio là tìm ra vị trí của tệp tiêu đề.
‫Bạn sử dụng Control P và bạn sẽ tìm kiếm.
‫Trong trường hợp này, chúng ta muốn biết lưới tĩnh.
‫Vì vậy, các thành phần lưới tĩnh và chúng ta có thể thấy rằng các thành phần lưới tĩnh chấm h nếu tôi tiếp tục và mở nó lên
‫và di chuột qua tab, bạn có thể thấy rằng nó nằm dưới đường dẫn dài này.
‫Nhưng điều thú vị là nó nằm dưới các lớp học, sau đó chúng ta có thể tra cứu từ đó.
‫Nó sẽ là các thành phần, thành phần lưới tĩnh.
‫Vì vậy, tôi có thể đóng tab đó xuống và ngay phía trên bao gồm của chúng tôi trên thực tế, bên dưới
‫bao gồm cho súng của chúng tôi, chúng tôi sẽ thực hiện bao gồm băm cho các thành phần và sau đó là thành phần lưới tĩnh.
‫Thực ra, tôi mới nhớ rằng các mắt lưới mà chúng ta có được vì một lý do nào đó không thực sự là các mắt lưới
‫tĩnh.
‫Tôi tin rằng chúng có thể là những lưới xương.
‫Bạn có thể tìm ra điều này bằng cách đi vào các gói tài sản, bắn vũ khí trò chơi và xem các biện pháp
‫này.
‫Và chắc chắn, nếu bạn di chuột qua chúng, bạn có thể thấy chúng là những tấm lưới hình xương.
‫Đừng hỏi tôi tại sao.
‫Vì một số lý do đó là những gì họ đang có.
‫Vì vậy, chúng tôi sẽ muốn thay đổi kiểu thành lưới xương trong tệp tiêu đề.
‫Vì vậy, thay vì lưới tĩnh, nó sẽ sử dụng lưới xương thay thế.
‫Và tương tự đối với phần bao gồm, nó sẽ là bộ xương.
‫Các thành phần lưới mà chúng ta muốn ghi nhớ.
‫Không có bạn trong các tệp tiêu đề.
‫Và tôi tin rằng họ đang nhìn thấy các thành phần đã được bao gồm ở đây theo mặc định.
‫Vì vậy, đã đến lúc thử thách để thêm một thành phần lưới của riêng bạn.
‫Chúng ta sẽ tạo một thành phần cảnh gốc, đặt nó thành gốc và đặt nó thành gốc cho lớp và tạo một thành
‫phần lưới và thiết lập phần đính kèm giữa hai thành phần lưới để thành phần lưới là
‫con của đường nối gốc đó thành phần.
‫Tạm dừng video và bắt đầu.
‫Được rồi, chào mừng bạn trở lại.
‫Vì vậy, chúng tôi sẽ đi qua và thiết lập.
‫Trước hết, root của chúng ta, nó sẽ là một đối tượng phụ mặc định của kiểu tạo.
‫Bạn đã thấy các thành phần và sau đó chúng tôi sẽ đặt cho nó một cái tên sẽ có trong macro văn bản, chúng tôi sẽ
‫gọi nó là root và kết thúc bằng dấu chấm phẩy.
‫Sau đó, chúng tôi sẽ đặt nó làm gốc.
‫Vì vậy, thiết lập các thành phần gốc sẽ đặt nó làm thành phần gốc cho tác nhân.
‫Vì vậy, hãy đặt root làm thành phần gốc.
‫Đồ tốt.
‫Sau đó, chúng tôi sẽ muốn tạo lưới của chúng tôi.
‫Vì vậy, mesh bằng tạo đối tượng con mặc định và đó là thành phần lưới khung xương của bạn mà chúng tôi muốn làm lớp và
‫sau đó là macro văn bản để gọi nó là lưới và thêm dấu chấm phẩy vào cuối ở đó.
‫Sau đó, chúng tôi muốn thiết lập tệp đính kèm.
‫Vì vậy, nó sẽ được thiết lập mũi tên lưới.
‫Thiết lập tệp đính kèm và chúng tôi sẽ muốn đính kèm vào gốc giống như những thứ thú vị để chúng tôi có thể tiếp
‫tục và lưu tệp đó và hy vọng biên dịch và xây dựng và chúng tôi sẽ chuyển sang Unreal và xem xét lớp
‫con của chúng tôi.
‫Và chắc chắn, ở đây chúng ta đã có root cho mình, chúng ta có sub mesh, chúng ta cũng có root cảnh mặc định
‫này đang treo xung quanh, tôi nghĩ chúng ta hãy khởi động lại trình chỉnh sửa và xem liệu điều đó có biến
‫mất hay không.
‫Đôi khi khi thêm các thành phần, mọi thứ có thể kéo dài như vậy và được lưu vào bộ nhớ đệm.
‫Và chắc chắn, nếu chúng tôi mở lại bản thiết kế súng BP, bạn có thể thấy rằng chúng tôi vừa có hai thành
‫phần đó.
‫Chúng tôi đã thêm gốc và lưới, và chúng tôi có thể muốn tiếp tục và thay đổi lưới cho một trong các lưới
‫bộ xương từ các gói nội dung từ trò chơi bắn súng.
‫Chúng tôi có súng trường, chúng tôi có một bệ phóng.
‫Tôi sẽ chọn cái này làm súng trường.
‫Vì vậy, thực sự gọi nó là một khẩu súng BP là một chút không đáng kể.
‫Đây có lẽ là khẩu súng trường BP.
‫Vì vậy, hãy tiếp tục và đổi tên nó, chuyển đến trình duyệt nội dung và đổi tên nó thành BP Rifle hoặc BP Gun,
‫gạch dưới súng trường.
‫Bây giờ gọi nó trực tiếp là súng trường BP.
‫Của bạn đây.
‫Và điều đó đã mang lại cho chúng tôi một khẩu súng.
‫Rõ ràng là bây giờ, điều này có nghĩa là chúng ta có thể có tất cả các loại thuộc tính chống lại tác nhân
‫này, chẳng hạn như sức mạnh của vũ khí, phạm vi của nó, v.v., bằng cách tạo các thuộc tính mới trong C ++.
‫Và đó là điểm mạnh của kiến trúc này là các khẩu súng sau đó có thể hơi khác một chút.
‫Chúng ta có thể có các cơ chế bắn khác nhau cho súng trường so với súng bắn tỉa so với game nhập vai, những thứ tương tự như vậy.
‫Vì vậy, điều đó thật tuyệt.
‫Và chúng ta cũng có thể có các chỉ số khác nhau để chúng ta có thể có một khẩu súng trường mạnh và một khẩu súng trường yếu
‫tùy thuộc vào các phân lớp bản thiết kế khác nhau.
‫Những thứ tuyệt vời.
‫Bây giờ trong bài giảng tiếp theo, chúng ta sẽ xem xét cách chúng ta sẽ thực sự sinh ra khẩu súng này khi
‫còn nhỏ của nhân vật hiện tại của chúng ta.
‫Tôi sẽ gặp bạn ở đó.