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.

Ảnh 1. Một ví dụ sau khi đã chunking và package

Để 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

Ảnh 2. Các settings khi package project

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

Ảnh 3. Tạo chunk đầu tiên

Hãy đặt tên nó là FirstChunk.

Ảnh 4. Thông số cài đặt của một chunk

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:
Ảnh 5. Giải thích quy luật tạo chunk
  • 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.

Ảnh 6. Thêm asset vào chunk

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

Ảnh 7. Kết quả

“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..