1. Setup hoạt động mới
1.1. Tạo thư mục cho bài mới

- Vào thư mục Assets > Resources > Prefabs.
- Ctrl + ⇧ + N → Tạo 1 thư mục mới cho bài chuẩn bị làm. Đặt tên theo quy tắc đặt tên bài. Đây là thư mục chứa prefab hoàn thiện.
- Vào thư mục Assets > Timelines > LỚP 1 – LỚP 5 tuỳ theo bài đang làm là bài khối nào
- Ctrl + ⇧ + N → tạo 1 thư mục mới cho bài chuẩn bị làm. Đặt tên theo quy tắc đặt tên bài (L1_01, L3_06, L5_20…). Đây là thư mục chứa các Timeline của bài.
- Vào thư mục Assets > Assets Library > Templates, copy Timeline vào thư mục Timeline của bài vừa tạo. Đổi tên Timeline theo quy tắc MaBai_SoHoatDong (VD: L1_01_01)
1.2. Tạo prefab cho hoạt động mới

- Vào thư mục Assets > Assets Library > Templates
- Kéo Actvity_Prefab vào Hierarchy

- Chuột phải vào Acitivity Prefab, chọn Prefab > Unpack Completely
- Đổi tên Activity_Prefab và Timeline theo quy tắc MaBai_SoHoatDong
1.3. Đưa assets từ Project vào Hierarchy
- Kéo các assets sau vào Hierarchy:
- Nhân vật: Đưa vào Canvas, kéo file xuống dưới ____Characters____
- Background: Đưa vào Canvas, kéo file xuống dưới ____Backgrounds____
- Props: Đưa vào Canvas, kéo file xuống dưới ____Props____
- Template: Đưa vào Canvas, kéo file xuống dưới ____UIs____
- Note:
- Nhân vật, background, props: Chỉnh Position X, Y = 0, Scale = 100
- Template: Chỉnh Scale = 1

- Chuột phải vào các assets vừa kéo vào, chọn Prefab > Unpack Completely.
1.4. Setup timeline

- Chọn Timeline, trong –Inspector– kéo Timeline Hoạt động vừa tạo vào mục Playable
- Đổi tên Timeline thành tên bài
1.5. Đưa assets từ Hierarchy vào Timeline

- Chọn Timeline, ấn vào biểu tượng ổ khóa ở góc trên bên phải của cửa sổ timeline để khóa timeline.
- Kéo các assets sau từ –Hierarchy— vào –Timeline–:
- Camera:
- Kéo Main Camera vào timeline, tạo Activation Track. Sau đó xoá phần activation đi.
- Kéo Cinemachine vào timeline, tạo Cinemachine Track.
- Tạo Animation Track cho Fullscreen_Camera hoặc Zoom Cam nếu cần di chuyển camera.
- Background: Kéo vào timeline tạo Activation Track.
- Nhân vật: Kéo vào timeline, tạo các track sau cho mỗi nhân vật nếu cần. Mỗi lần chỉ tạo được 1 loại track nên cần kéo nhiều lần.
- Activation Track: với nhân vật có xuất hiện.
- Salsa control track: kéo Lipsync_Normal hoặc Lipsync_Sad trong Root tuỳ theo trạng thái nhân vật
- Animation track: Tạo chuyển động cho nhân vật. Có 2 loại Animation track:
- Di chuyển vị trí của nhân vật: Kéo group mẹ của nhân vật, kí hiệu “NV_” (Ví dụ: NV_Kem_L1
- Chuyển động dùng xương nhân vật: Kéo group con của nhân vật, có gắn Animator component, không có kí hiệu “NV_” (Ví dụ: Kem_L1)
- Props: Kéo vào timeline, tạo Activation Track
- Thoại: Vào thư mục VOs (VoiceOvers) của bài, kéo file xuống timeline tạo Audio Track
- Lưu ý:
- Với các group object, tạo Activation Track cho cả group, không kéo lẻ từng object
- Chú ý kéo đúng object cho các track để đảm bảo không bị lỗi
- Mở khoá —Timeline— trước khi sửa timeline khác.
- Camera:
2. Hoàn thiện hoạt động sau khi làm
Sau khi hoàn thành timeline hoạt động, đã chốt được độ dài chuẩn của các hoạt động.
2.1. Làm tròn số giây của timeline

- Click vào timeline của hoạt động

- Check các điểm dừng theo mô tả chi tiết của từng hoạt động.
- Co kéo timeline 1 chút để làm tròn số giây của timeline tại thời điểm dừng
- Làm tròn số giây cuối timeline
2.2. Điền dữ liệu
- Mở cửa sổ Data ở –Inspector–

- Vào thư mục Assets > Scenes > Data > Chọn Data cá nhân của mình. Nhấn biểu tượng ổ khóa ở góc trên bên phải để khóa cửa sổ
- Điền data ở –Inspector–

- Trong bảng Data cá nhân, mở Type Classes > Chọn Lớp 1 – Lớp 5 > Type Lessons > Nhập số bài cần điền data. Nhập lần lượt các thông tin theo thứ tự từ trên xuống dưới

- Mã bài học, Tên bài học, Số hoạt động, Tên hoạt động, Số bước, Tên bước: Nhập dữ liệu theo MTCT
- Mã hoạt động: Nhập theo tên timeline của hoạt động
- Thời gian hoạt động: Tổng thời gian của timeline
- Thời gian bước: Tổng thời gian của bước
- Thời gian slide: Giây bắt đầu của slide
Lưu ý:
- Ghi lại điểm dừng trong lúc làm để tiện cho việc điền data sau khi hoàn thiện bài
- Đảm bảo tổng thời gian timeline là giây tròn
- Đảm bảo giây tại điểm dừng là giây tròn, nên kéo dài thêm ~ 0.5s của cảnh trước đó để khi dừng không bị nhảy sang cảnh sau
2.3. Sắp xếp timeline
Để thuận tiện cho việc review bài, sửa lỗi, nhiều người làm cùng 1 bài… Các timeline sau khi hoàn thiện cần được sắp xếp theo cấu trúc như sau. Trong đó, mỗi mục là 1 group (nhóm). Trong mỗi nhóm có thể bao gồm nhiều sub-group (nhóm nhỏ).
- Camera: Bao gồm Main Camera, Cinemachine
- Backgrounds: Bao gồm toàn bộ background trong hoạt động
- FX: Gồm SFX, VFX, BGM
- Events: Prefab một số cảnh đã dựng sẵn hoặc mini game đã làm sẵn, khi cần thì activate cho xuất hiện
- Characters:
- Cách 1: Group theo chức năng: Activation, Characters Animation, Salsa
- Cách 2: Group theo nhân vật: Su, Kem, Nova. Trong mỗi nhân vật lại có timeline Activation, Animation và Salsa. Nếu có Su ¾ và Su chính diện thì group riêng.
- Cách 3: Group theo phân cảnh. Trong mỗi cảnh lại có thể group theo cách 1 hoặc cách 2 ở trên
- Props:
- Cách 1: Group theo phân cảnh. Mỗi cảnh bao gồm Activation và Animation của các prop.
- Cách 2: Group theo chức năng: Activation, Animation
2.4. 1 số tips sắp xếp timeline
- Không cần kéo xuống timeline các Object xuất hiện từ đầu đến cuối hoạt động
- Sử dụng 1 audio track để sắp xếp lời thoại:
- Dùng 1 Audio track để ở group Salsa hoặc FX, sắp xếp lời thoại các nhân vật vào track này trước thay vì kéo thẳng vào Salsa của nhân vật.
- TẮT hiển thị track này (disable/deactive) sau khi đã kéo thoại vào Salsa track của từng nhân vật. Tuyệt đối KHÔNG ĐƯỢC XOÁ
- Tạo Animation cho Group Object: Thay vì tạo Animation cho từng Object, có thể tạo Animation cho cả group Object để timeline gọn hơn

- Dùng Sub-Group để phân cấp timeline chi tiết hơn: Tạo Sub-Group để nhóm các Object xuất hiện trong cùng 1 cảnh (VD: Props > Mission > Mission_Step1, Mission_Step2, Mission_Step3)

- Sắp xếp theo thứ tự xuất hiện: Trong mỗi group (hoặc sub-group), sắp xếp timeline từ trên xuống, cái nào xuất hiện trước thì đặt ở trên, xuất hiện sau thì đặt xuống dưới

- Tạo group độc lập cho phân cảnh phức tạp: Với những cảnh đặc biệt và phức tạp, tạo group riêng cho các Object của phân cảnh đó
2.5. Kiểm tra animation & timeline
- Đối với video clip:
- Kéo độ dài Video Track bằng với độ dài thực của video
- Kéo Activation Track cho đủ time frame của đoạn đó
- Đối với timeline:
- Đủ Object ở Activation Track
- Kéo BGM, SFX vào phần Audio Source của Audio Track
- Đối với animation, chạy lại hoạt động 1 lần, đảm bảo animation:
- Đúng với mô tả chi tiết hoặc yêu cầu/feedback sửa bài
- Không bị lỗi hoạt hình, lỗi thoại
- Đúng theo quy chuẩn về hoạt hình của team
- Tự đánh giá thấy animation là phù hợp và hiệu quả đối với bài học và kiến thức, kĩ năng được truyền tải trong bài
2.6. Lưu prefab hoạt động mới

- Tắt active tất cả các object, chỉ để active màn hình tiến trình
- Đảm bảo hoạt động đã activate trước khi kéo thành Prefab
- Kéo hoạt động trên —Hierarchy— vào thư mục Prefab đã tạo từ Bước 1

- Tắt active audio track
2.7. Kiểm tra prefab hoạt động

- Click đúp vào prefab hoạt động để mở prefab

- Thêm activity manager cho các scene nếu chưa có (Thường đã có trong template. Nhưng nếu khi test bài mà hoạt động không chạy, thiếu hoạt động thì cần kiểm tra)
- Click vào Timeline trong Activity Manager, chọn timeline của hoạt động. Nếu làm đúng các bước trên, sẽ chỉ có 1 timeline hiện lên để chọn.
- Active prefab hoạt động, camera… Nếu không active prefab, khi xuất bài ra sẽ bị lỗi, không chạy được
3. Chuyển game thành prefab và đưa vào bài
3.1. Chuyển game thành prefab

- Vào mục Minigame, bật Scene đã dựng của Game.

- Tạo game object mới, đặt tên theo quy tắc Tênbài_Game. Ví dụ: Game của bài MGB04 là MGB04_Game.

- Reset position game object mới
- Tạo mới component Activity Manager

- Kéo toàn bộ game object trong Scene vào game object vừa tạo. Lưu ý collapse hết rồi mới kéo
- Kéo gameobject từ —Hierarchy— xuống —Project— để tạo prefab. Đưa prefab vào thư mục chứa prefab của bài.
3.2. Điền Data game
3.3. Chơi thử

- Kéo prefab từ —Hierarchy— lên —Project—

- Ấn play để chơi thử.
- Ghi lại các lỗi nếu có và chuyển cho Công xử lý
4. Commit lên Sourcetree
4.1. Commit lên sourcetree
Thực hiện đúng theo trình tự sau
- Commit: Điền tên bài vừa làm vào phần ghi chú khi commit
- Fetch: Click vào Fetch 1 lần để Sourcetree kiểm tra data mới nhất
- Pull: Click vào Pull để kéo các cập nhật mới nhất về
- Push: Click vào Push để đẩy cập nhật từ máy mình lên Sourcetree
4.2. Xử lí conflict khi commit
- Trong trường hợp bị conflict, cần xác định xem
- File nào bị conflict
- Conflict với ai?
- Làm việc với người bị conflict để biết họ đã sửa gì file đó và quyết định xem sẽ giữ file của ai.
- Backup, copy file sẽ bị xoá nếu cần. Ví dụ Ánh làm animation nhân vật, Hương làm animation cho prop trên cùng 1 timeline và bị conflict. Có thể giữ lại file timeline của Ánh và copy timeline của Hương ra 1 file khác. Sau đấy copy animation cho prop của Hương đã làm vào timeline của Ánh.
- Chuột phải vào file bị lỗi conflict trong sourcetree. Chọn 1 trong 2 lựa chọn
- Use “Mine”: Giữ file mình sửa và xoá các phần chỉnh sửa của người khác
- Use “Theirs”: Giữ file người khác sửa.
- Check lại file bị conflict còn chạy ổn không. Bổ sung thêm các phần đã backup ở mục 3. nếu cần.
Lưu ý: Báo cho Công hoặc anh Quốc nếu có bất kỳ vấn đề gì, lăn tăn gì trong quá trình xử lý conflict. Không tự ý xử lý conflict mà không làm việc với team
Trackbacks/Pingbacks