‫Xin chào và chào mừng trở lại.
‫Bây giờ trong video này, chúng ta sẽ bắt đầu nói về cách chúng ta có thể di chuyển xe tăng của mình.
‫Vì vậy, để di chuyển xe tăng, chúng ta sẽ phải thêm một số loại bù đắp và một động cơ không thực.
‫Khi nói đến việc thêm một phần bù, chúng ta cần đưa ra quyết định có nên thực hiện phần bù trong không gian
‫cục bộ hay không gian thế giới.
‫Vì vậy, chúng ta hãy thảo luận về sự khác biệt giữa hai điều này.
‫Bây giờ, ở đây trong trình chỉnh sửa, tôi đã chọn - tank và ngay sau khi tôi chọn nó, bạn sẽ
‫nhận thấy rằng có một gizmo.
‫Đó là những gì thứ này được gọi là, một gizmo.
‫Nó có ba mũi tên và mỗi mũi tên có một màu khác nhau.
‫Bây giờ, nếu bạn không để ý, ở dưới cùng bên trái của màn hình là một gizmo khác nhỏ hơn.
‫Và kiểu này trông tương tự như gizmo trên diễn viên mà chúng tôi đang chọn.
‫Vì vậy, nếu tôi chọn bất kỳ diễn viên nào, chúng tôi luôn nhận được gizmo này.
‫Và tất nhiên, gizmo thay đổi khi chúng ta chuyển từ dịch sang xoay sang chế độ chia tỷ lệ.
‫Vì vậy, miễn là chúng tôi đang dịch, mà chúng tôi có thể truy cập từ biểu tượng ngoài cùng bên trái này ở trên
‫cùng bên phải của chế độ xem hoặc bằng phím W, chúng tôi có thể di chuyển mọi thứ hoặc dịch chúng bằng cách kéo vào một trong
‫các mũi tên trên gizmo.
‫Và các màu tương ứng với các trục là màu đỏ như trục x màu xanh lá cây là trục y và màu xanh lam là trục z.
‫Bây giờ, nếu chúng ta xoay chế độ xem của mình và nhìn theo một hướng khác, chúng ta sẽ thấy rằng gizmo đó vẫn
‫hướng theo cùng một hướng ban đầu.
‫Và khi chúng ta đang quay xung quanh, gizmo ở dưới cùng bên trái của khung nhìn đang quay vì
‫hướng thế giới không thay đổi.
‫Càng xa càng tốt.
‫Bây giờ những gì chúng ta đang xem xét là hướng không gian thế giới, nhưng đối với mỗi tác nhân trên thế giới, có một hướng
‫cục bộ.
‫Và chúng ta có thể thấy điều đó bằng cách nhấp vào biểu tượng trông giống như một thế giới và cửa sổ bật lên cho biết
‫các chu kỳ, hệ thống tọa độ gizmo biến đổi giữa thế giới và không gian địa phương.
‫Khi chúng ta nhìn thấy một thế giới ở đây, điều đó có nghĩa là chúng ta đang nhìn vào không gian thế giới, nhưng
‫nếu chúng ta nhấp vào nó, nó giờ biến thành một khối lập phương và chúng ta hiện đang xem xét không gian cục bộ cho tác nhân nhất định mà chúng ta đã chọn.
‫Gizmo ở dưới cùng bên trái của khung nhìn vẫn cho chúng ta thấy không gian thế giới.
‫Nhưng nếu tôi lấy diễn viên này và tôi chuyển sang chế độ xoay và xoay nó, sau đó khi tôi quay lại
‫chế độ dịch, bạn sẽ thấy rằng gizmo hiện đang trỏ theo một hướng khác.
‫Bản thân tác nhân có trục x cục bộ của riêng nó.
‫Chúng ta có thể coi trục x đối với tác nhân là vectơ chuyển tiếp của nó.
‫Bây giờ, hãy chú ý rằng ở dưới cùng bên trái của màn hình mà gizmo vẫn đang trỏ về cùng một hướng.
‫Nhưng tác nhân này ở đây, chiếc xe tăng cầm đồ, có hướng X cục bộ của riêng nó và nó chỉ theo một hướng
‫khác.
‫Bây giờ, nếu tôi nhấp vào khối lập phương ở đây và biến nó trở lại thành một thế giới ngay bây giờ, gizmo cho xe tăng
‫sẽ được khớp và căn chỉnh với hướng trục thế giới để chúng tôi có thể chuyển đổi giữa không gian thế giới và không gian cục bộ cho bất
‫kỳ tác nhân nhất định nào để xem cục bộ của nó hướng so với hướng thế giới của nó.
‫Vì vậy, chúng tôi thấy rằng đối với bất kỳ diễn viên nào mà chúng tôi chọn trong thế giới của mình, nó đều có hướng địa phương riêng.
‫Và điều này có thể khác hoặc không khác với hướng thế giới như được chỉ ra trong hình ảnh này ở đây.
‫Vì vậy, điều này rất quan trọng khi nói đến các đối tượng chuyển động trong Unreal Engine.
‫Có các chức năng cho các đối tượng chuyển động và có một bộ chức năng khác để di chuyển trong không gian
‫thế giới so với không gian cục bộ.
‫Giả sử xe tăng của chúng ta đang quay mặt về hướng này và trục x của nó hơi hướng sang trái, như được chỉ ra
‫bởi mũi tên mà tôi đã vẽ ở đây trên xe tăng.
‫Bây giờ chúng ta có thể thấy, dựa trên gizmo ở phía dưới bên trái này, hướng trục x của thế giới đang trỏ
‫sang phải.
‫Vì vậy xe tăng không thẳng hàng với hướng không gian thế giới.
‫Bây giờ, giả sử chúng ta di chuyển chiếc xe tăng này trong không gian thế giới theo hướng X tích cực.
‫Sau đó, mặc dù xe tăng đang hướng về bên trái, nó vẫn sẽ di chuyển theo hướng x thế giới đó và nó sẽ giống
‫như đang di chuyển ngược lại.
‫Vì vậy, đó không phải là những gì chúng tôi muốn.
‫Mặt khác, bây giờ, giả sử chúng ta sử dụng một chức năng được thiết kế để di chuyển bể trong không gian cục bộ của
‫chính nó.
‫Điều đó có nghĩa là nếu chúng ta di chuyển xe tăng theo hướng X cục bộ của nó, nó sẽ di chuyển về phía trước theo hướng
‫bạn mong đợi.
‫Và đó là hành vi mà chúng tôi muốn.
‫Hiện đã có trong Unreal Engine.
‫Chức năng có thể làm điều này cho chúng tôi được gọi là Add Actor Local Offset.
‫Chức năng này di chuyển tác nhân theo hướng cục bộ.
‫Bây giờ nó áp dụng một độ lệch, đó là một chuyển động đơn lẻ.
‫Về cơ bản, chúng ta cho nó biết hướng di chuyển và bao xa, và nó di chuyển đối tượng đó một lần, có nghĩa là
‫chúng ta sẽ gọi hàm này cho mọi khung hình mà chúng ta muốn di chuyển xe tăng.
‫Vì vậy, chúng tôi sẽ di chuyển nó theo từng bước nhỏ kể từ khi gọi một hàm mỗi khung.
‫Có nghĩa là bây giờ chúng ta đang gọi nó rất nhiều cho xe tăng của chúng tôi trục X cục bộ của nó là hướng về phía trước của nó.
‫Vì vậy, đây là trục chúng ta sẽ sử dụng khi chúng ta thêm độ lệch cục bộ.
‫Bây giờ đây là tài liệu động cơ không thực cho ADD tác nhân cục bộ bù đắp.
‫Bạn thấy rằng đó là một chức năng thuộc về lớp diễn viên.
‫Đó là lý do tại sao nó được gọi là thêm phần bù cục bộ diễn viên bây giờ vì nó tồn tại trên lớp diễn viên.
‫Pawns sẽ kế thừa chức năng này để chúng ta có thể sử dụng nó.
‫Bây giờ đây là cú pháp.
‫Nó có bốn tham số đầu vào.
‫Đầu tiên là một vectơ F được gọi là vị trí đồng bằng.
‫Vì vậy, chúng ta sẽ cần tạo một vectơ F mà chúng ta có thể chuyển vào hàm bù cục bộ thêm tác nhân này.
‫Vì vậy, chúng tôi biết về phần bù cục bộ bổ sung này.
‫Và tôi muốn thử nghiệm điều này chỉ để xem nó hoạt động như thế nào để chúng tôi có thể thực hiện điều này trong chức năng đánh dấu.
‫Bây giờ chúng ta không ghi đè hàm tic ở đây trong lớp xe tăng, nhưng chúng ta có nó trong lớp pong
‫cơ sở.
‫Nếu chúng ta đi đến CP ao cơ sở ở đây, chúng ta có chức năng tic và chúng ta không làm bất cứ điều gì ở đây và điều này là
‫hoàn hảo để thực hiện một số thử nghiệm.
‫Vì vậy, những gì tôi sẽ làm là nhập, thêm, diễn viên, bù đắp cục bộ giống như vậy.
‫Và tôi sẽ nhấp chuột phải và chọn đi đến định nghĩa.
‫Bây giờ, ở đây trong tệp tác nhân CP, chúng ta có định nghĩa cho ADD Actor Local Offset.
‫Bây giờ nhận thấy một cái gì đó thú vị.
‫Nó kiểm tra nếu thành phần gốc không phải là null và nếu nó không phải là null, thì nó gọi hàm này là add local
‫offset.
‫Vì vậy, thực sự những gì chúng tôi đang làm là thêm một phần bù đắp cho thành phần gốc.
‫Và vì tất cả các thành phần khác được gắn vào thành phần gốc, chúng sẽ di chuyển cùng với nó.
‫Vì vậy, điều quan trọng cần lưu ý là khi chúng tôi thêm một phần bù cục bộ, chúng tôi đang di chuyển thành phần gốc
‫và mọi thứ khác chỉ di chuyển theo nó.
‫Bây giờ, nếu chúng ta di chuột qua thêm phần bù cục bộ, chúng ta sẽ thấy rằng tất cả bốn tham số đầu vào đều được liệt kê
‫ở đây.
‫Và ngoài cái đầu tiên, là một vectơ F, những cái khác có giá trị mặc định.
‫Lưu ý rằng bool B quét nó nói bằng false.
‫Các tham số đầu vào thứ ba và thứ tư cũng có các giá trị mặc định này.
‫Điều này có nghĩa là nếu chúng ta gọi hàm này và không chuyển đầu vào cho ba tham số đầu vào cuối cùng, thì chúng sẽ được
‫đặt thành các giá trị này theo mặc định.
‫Bây giờ tôi sẽ đóng tác nhân CP và ở đây trong chức năng đánh dấu ao cơ sở, tôi muốn gọi thêm tác nhân bù đắp cục bộ cho
‫mỗi khung hình chỉ để xem nó hoạt động như thế nào.
‫Bây giờ chúng ta biết rằng tham số đầu vào đầu tiên là một vectơ F.
‫Nó được gọi là vị trí đồng bằng.
‫Đây là số lượng chuyển động mà chúng ta muốn thêm vào mỗi khi chúng ta gọi hàm này.
‫Vì vậy, tôi sẽ tạo một vectơ F được gọi là vị trí đồng bằng.
‫Vậy vị trí đồng bằng vectơ F.
‫Bây giờ tôi muốn loại bỏ vectơ này.
‫Nói cách khác, hãy đảm bảo rằng nó được khởi tạo bằng tất cả các số không.
‫Bây giờ tôi muốn một vectơ 0 mà tôi có thể truyền vào không f, x, y và z đều sẽ nhận về 0 f.
‫Vì vậy, điều này sẽ phục vụ mục đích của tôi tốt.
‫Bây giờ tôi sẽ lấy Delta Location X và tôi sẽ thay đổi điều đó thành hai điểm F.
‫Bằng cách đó, chúng ta có một vectơ với Y và Z đặt bằng 0, x đặt thành hai.
‫Vì vậy, tôi sẽ tiếp tục và chuyển vị trí Delta vào thêm phần bù cục bộ của tác nhân như một loại thử nghiệm.
‫Bây giờ tôi có thể thoát khỏi việc gọi thêm phần bù cục bộ của diễn viên và chỉ cần chuyển vào tham số đầu vào đầu tiên
‫vì ba tham số còn lại là tùy chọn.
‫Vì vậy, tôi sẽ biên dịch nó và xem điều gì sẽ xảy ra.
‫Bây giờ nếu chúng ta tiếp tục và chơi, hãy lưu ý, một vài điều.
‫Trước hết, hãy nhìn xem, tòa tháp cũng đang chuyển động.
‫Đó là bởi vì chúng tôi đặt điều này trong chức năng đánh dấu cho cầm đồ cơ sở và cả hai trái phiếu này đều kế thừa từ cầm
‫đồ cơ sở.
‫Vì vậy, trên thực tế, tất cả các ao này đã di chuyển.
‫Và điều thú vị là chúng đều di chuyển theo các hướng trục x của riêng chúng.
‫Chúng ta có thể thấy mọi thứ chuyển động cùng một lúc từ quan điểm này.
‫Nếu chúng tôi nhấp vào menu thả xuống bên cạnh để chơi và chọn mô phỏng, điều này cho phép chúng tôi chơi trò chơi mà không
‫cần sở hữu bất kỳ ao nào.
‫Vì vậy, nếu tôi nhấp vào Mô phỏng, hãy kiểm tra điều này.
‫Mỗi ao đều chuyển động theo hướng trục x của riêng nó.
‫Điều đó thực sự khá kỳ lạ và khá tuyệt.
‫Vì vậy, điều này cho chúng ta thấy cách hoạt động của bù đắp cục bộ của tác nhân quảng cáo.
‫Nó di chuyển mọi thứ theo các hướng địa phương của chúng.
‫Bây giờ chúng ta có thể thoát khỏi chế độ mô phỏng bằng cách nhấp vào menu thả xuống và chọn chế độ xem đã chọn
‫và điều này sẽ cho phép chúng ta chơi ở chế độ chơi thông thường.
‫Được rồi, tôi sẽ dừng việc này lại và chúng ta có thể quay trở lại cơ sở - và chúng ta có thể xóa mã thử nghiệm
‫này.
‫Tôi sẽ tiếp tục và chỉ cần xóa nó khỏi chức năng đánh dấu để bây giờ chúng ta biết cách hoạt động của thêm tác
‫nhân cục bộ offset.
‫Vì vậy, hãy quay trở lại Tank CP và ở đây chúng ta có chức năng MOVE.
‫Chúng ta biết rằng hàm này đang được gọi mỗi frame và chúng ta biết rằng giá trị đó bằng một.
‫Nếu chúng ta đang nhấn phím W và nó là phím âm, nếu chúng ta đang nhấn phím và nó bằng 0 nếu chúng ta
‫nhấn cả hai hoặc không.
‫Vì vậy, đối với thử thách của bạn, bạn sẽ di chuyển chiếc xe tăng bằng cách sử dụng thêm phần bù cục bộ của tác nhân.
‫Vì vậy, trong hàm MOV, bạn sẽ tạo một vectơ F được gọi là vị trí đồng bằng.
‫Bây giờ hãy chắc chắn rằng không có X, Y và z.
‫Bạn có thể làm điều này theo bất kỳ cách nào, chẳng hạn như sử dụng một trong các hàm tạo véc tơ f khác nhau.
‫Bây giờ khi bạn đã loại bỏ tất cả các thành phần, sau đó đặt x của nó thành giá trị của giá trị mà tham số đầu
‫vào float trong hàm MOV.
‫Khi bạn đã thực hiện xong việc này, hãy tiếp tục và gọi thêm tác nhân đi qua bù đắp cục bộ tại vị trí đồng bằng.
‫Tạm dừng video và thực hiện việc này ngay bây giờ.
‫Được chứ.
‫Vì vậy, tôi trở lại đây trong tệp CP xe tăng.
‫Bây giờ, tôi không cần nhật ký EWI này nữa, vì vậy tôi sẽ lấy nó ra và tôi sẽ tạo một vectơ
‫F được gọi là vị trí Delta.
‫Bây giờ tôi có thể sử dụng một trong các hàm tạo vector F.
‫Tôi đã chỉ cho bạn cách tạo một vectơ mới với tất cả các số không.
‫Tôi sẽ chỉ cho bạn một cách khác, đó là khởi tạo điều này bằng vectơ f, vectơ không.
‫Và đây chính xác là âm thanh của nó, một vectơ bằng 0 cho mỗi thành phần.
‫Đây chỉ là để chỉ cho bạn một cách thay thế.
‫Vì vậy, chúng tôi có một vectơ không.
‫Bây giờ tôi sẽ lấy vị trí đồng bằng X và đặt nó bằng giá trị.
‫Và cuối cùng tôi có thể gọi thêm diễn viên bù đắp cục bộ đi qua ở vị trí đồng bằng.
‫Vì vậy, hãy biên dịch nó và quay lại đây trong trình chỉnh sửa, tôi sẽ lấy chiếc xe tăng của mình và
‫tôi sẽ định hướng nó sao cho nó đối diện với hướng X thế giới và sau đó tôi có thể chơi và bây giờ nhấp vào khung
‫nhìn.
‫Nếu tôi nhấn phím W, tôi đang tiến về phía trước và nếu tôi nhấn phím, tôi sẽ quay lại.
‫Nếu tôi nhấn cả hai, chúng sẽ loại bỏ nhau và tôi không di chuyển gì cả.
‫Và tất nhiên, nếu tôi không nhấn bất cứ điều gì, tôi cũng không di chuyển.
‫Vì vậy, bây giờ chúng tôi có chuyển động cho xe tăng của mình, nhưng nó hơi chậm, vì vậy chúng tôi sẽ phải thực hiện một số điều chỉnh.
‫Và chúng ta cũng sẽ nói về việc tinh chỉnh cơ chế chuyển động này với xe tăng của chúng ta.
‫Vì vậy, tóm lại, chúng ta đã tìm hiểu về ADD Actor, local offset và sự khác biệt giữa không gian thế giới và không
‫gian cục bộ.
‫Trong video tiếp theo, chúng tôi sẽ tiếp tục hoàn thiện bộ máy chuyển động này với chiếc xe tăng của mình.
‫Tôi sẽ gặp bạn sớm.