Nếu các bạn chưa biết pak là gì, pak đơn thuần là một dạng file nén để chứa những asset được sử dụng trong game/project của bạn khi package (pak tương tự file rar/zip).
Mặc định của UE là sẽ gom toàn bộ assets vào một file pak. Cách này đơn giản và hiệu quả cho hầu hết các trường hợp. Tuy nhiên, khi project của bạn:
- Có lượng assets quá to và nhiều
- Muốn được tối ưu cho quá trình tải/tải xuống
- Linh hoạt trong quản lí asset
thì chunking hay gọi còn gọi là tách pak là quá trình bạn sẽ cần sử dụng đến. Chunking đơn thuẩn sẽ tách pak tổng thành các pak con dựa trên quy luật do người dùng đặt ra.
Để package project, các bạn chỉ cần vào File -> Package Projects và chọn nền tảng bạn muốn package project của mình. Trong ví dụ này mình sẽ package cho Windows 64-bit.
Thiết lập cho chunking
Các bạn có thể vào mục tùy chỉnh này bằng cách File -> Package Projects -> Packaging Settings…
Ở ảnh 2, hãy tick vào Generate Chunks để bảo UE tạo file pak con khi có chỉ dẫn cụ thể
Để tạo các chunk, trước hết ta cần có PrimaryAssetLabel. PrimaryAssetLabel có thể hiểu như là một kiện hàng, với ID cụ thể, quyền lợi được xếp lên xe tải. Và tất nhiên trong kiện hàng sẽ luôn có các vật con (hay là asset).
Để tạo một PrimaryAssetLabel, chuột phải vào Content Browser -> Miscellaneous -> Data Asset, kéo xuống dưới danh sách và chọn PrimaryAssetLabel
Hãy đặt tên nó là FirstChunk.
Mình sẽ đi qua một số giá trị quan trọng cần chú ý:
- Priority: quyền được sử dụng asset chứa trong một chunk. Quyền càng to thì càng được quyết định sử dụng chính. Thông thường nên để là 0
- ChunkID: là ID của chunk. Chunk đầu tiên của project luôn luôn là 0, nếu giá trị bạn để là -1 hoăc 0 thì UE sẽ tự bỏ asset vào chunk 0
- Cook Rule: Quy luật cho chunk khi package. Các giá trị trong danh sách sổ xuống có thể hiểu như sau:
- Explicit Assets: các assets sẽ bỏ vào chunk
- Explicit Blueprints: các blueprint sẽ được bỏ vào chunk
Trong bài viết này, mình sẽ cho vào chunk FirstChunk map Sub_Level1 đã được tạo ở các bài viết trước. Các bạn có thể cho bất cứ map nào bạn có vào.
Và đừng quên set ChunkID có giá trị lớn hơn 0 😀
Sau đó chỉ cần package lại project và ta sẽ có 2 file pak được tạo ra
“pakchunk1” chính là chunk chứa map Sub_Level1 ta đã thêm vào ở trên. Hiện tại để đặt tên cho chunk đòi hỏi người dùng phải thao tác thêm ở phía code, nếu không thì ta bắt buộc phải dùng tên mà UE đã cung cấp.
Mình xin phép kết thúc bài viết ở đây. Xin lỗi mọi người gần đây mình hơi bận quá không ra thường xuyên được..
Comments