Tóm lại

Cùng một artboard được xuất hai lần từ VberAI Studio: một lần sang Unity, lưu theo thư mục dự án của Unity, một lần sang Godot, lưu theo định dạng của Godot. Đây là một lần đối chiếu đầy đủ của hai bản xuất đó. Bản ghi hình nằm trên YouTube. Phần giống nhau: 29 PNG, cùng byte và cùng tên file, một màn 1920×1080, cùng tên node, và vị trí đã ghi trong file scene. Phần khác nhau: Godot giải nén thành một danh sách, 59 file. Unity giải nén thành Assets, rồi Textures, Prefabs và Materials, 66 file. Godot viết bốn nhãn chữ trên node. Unity viết kiểu chữ đó thành ba file material.

Lần xuất này đạt mục tiêu. Cả hai thư mục đều là art đã xếp theo cách engine đó cần. Mở dự án, MCP đọc được màn hình đã đặt sẵn.

Hai thư mục khác nhau, cả hai đều sẵn để MCP đặt lại màn hình

Mở hai file zip cạnh nhau. Zip Godot là một danh sách file. Zip Unity mở ra Assets, bên trong là ba thư mục. Cách xếp khác nhau. Cả hai đều là thư mục art đúng dạng engine đó: tên và vị trí đã nằm trong file. Đưa bản xuất vào dự án, giữ editor mở, MCP đọc màn 1920×1080 đã lắp này.

Figma sang Godot và Figma sang Unity mô tả thư mục mỗi engine cần. Các lần bấm dưới đây là một artboard này trong cả hai zip. Hai bản xuất có thể tải về:

  • Zip Godot: 59 file, giải nén ra một tầng.
  • Zip Unity: 66 file. Thư mục đầu tiên là Assets.

Phần giống nhau, tách ra: 29 ảnh

Mở bất kỳ PNG nào trùng tên. Byte khớp. Tên file khớp.

Artboard và các mảnh trên đó:

  • background_2_2.png
  • pirate_ship.png, lava_platform.png
  • wooden_tower.png, wooden_hut.png, red_crystal_tower.png, pirate_skull_tower.png, fire_tower.png, dark_skull_tower.png

Thẻ và phép:

  • large_skull_tower_card.png, skull_tower_card_one.png, skull_tower_card_two.png, skull_tower_card_three.png, skull_tower_card_four.png
  • green_spell_card.png, fire_spell_card.png, blue_spell_card.png

Giao diện:

  • resource_status_bar.png, health_bar_2.png
  • gold_button_one.png, gold_button_two.png, gold_button_three.png
  • pause_button.png, pause_small_icon.png
  • coin_icon_2_2.png, skull_icon.png, heart_icon_2.png, shield_icon_2.png, metal_orb_icon.png

Bốn tên có nhãn trong scene, và không có file ảnh cắt. skull_count, coin_amount_2, life_count và tower_level không xuất hiện dưới dạng PNG. Chữ trên màn hình — 6/15, 340, 6 và 10 — được gõ trên node.

Tên trong sceneChữ trên màn hìnhCỡ chữ
skull_count6/1519
coin_amount_234019
life_count617
tower_level1021

Godot: 59 file, mở ra là một tầng

Mở zip Godot. Cả gói là đây:

*.png                     29 ảnh
*.png.import              29 file nhập, mỗi ảnh một file bên cạnh
*.1920x1080_layer.tscn    1 scene

.tscn là viết tắt của text scene, scene dạng văn bản. Gốc scene là một Control 1920×1080. Bên dưới: 29 node TextureRect và 4 node Label. Mỗi ảnh trỏ tới res://<tên>.png, tức file nằm trong chính danh sách này. Mỗi .import bảo Godot coi PNG đó là texture. Màu chữ, viền và bóng ghi trên Label.

Tên file scene là id của artboard cộng 1920x1080_layer.

Unity: 66 file, mở ra thấy Assets trước

Mở zip Unity. Thứ đầu tiên trên màn hình là Assets, thư mục gốc nơi dự án Unity giữ file. Vào trong là ba thư mục:

Assets/Textures/*.png                 29 ảnh
Assets/Textures/*.png.meta            29 file nhập, mỗi ảnh một file bên cạnh
Assets/Prefabs/*.1920x1080_layer.prefab
Assets/Prefabs/*.prefab.meta
Assets/Materials/TMP_FX_*.mat         3 file kiểu chữ
Assets/Materials/*.mat.meta

Gốc Prefab là một Canvas với kích thước tham chiếu 1920×1080. Tên node con khớp với Godot. Mỗi .meta nhập PNG thành Sprite.

Unity giải nén thành ba thư mục trong Assets

Unity nhập file nằm dưới thư mục Assets của dự án. Zip này vì vậy bắt đầu từ Assets. Sau khi chép vào dự án, Textures, Prefabs và Materials nhập vào cây thư mục mà editor đang theo dõi theo thời gian thực. Một PNG để ở gốc zip nằm ngoài cây đó, và editor không nhập nó.

Ba thư mục là ba loại file màn hình này dùng. Bấm vào từng thư mục:

  • Textures là ảnh. Mỗi PNG có một .meta bên cạnh. Sprite là ảnh Unity dùng trên giao diện. GUID trong .meta là số định danh của ảnh trong dự án. .meta đã được ghi lúc xuất. Sau khi thư mục vào dự án và editor làm mới, Unity nhập theo các thiết lập đó.
  • Prefabs là màn hình đã lắp. Lần xuất này có một .prefab. File .prefab.meta bên cạnh là file nhập của prefab đó. .prefab giữ Canvas, tên node con, và vị trí từng mảnh trên artboard 1920×1080.
  • Materials ở đây chỉ là kiểu chữ. Viền và bóng của bốn nhãn đó là ba file material TextMesh Pro. skull_count và coin_amount_2 dùng chung một file. life_count và tower_level mỗi cái một file. Mỗi file bật OUTLINE_ON và UNDERLAY_ON.

Gói Godot không thêm các thư mục đó. Đường dẫn scene của mỗi ảnh là res://<tên>.png, nên .tscn và các PNG nằm trong một danh sách. File .import làm việc mà .meta của Unity làm, và nó nằm cạnh PNG. .tscn là màn hình đã lắp, nên không có thư mục Prefabs. Viền nằm trên Label, nên không có thư mục Materials. Mở zip Godot trông như bên trong Textures của Unity, cộng file scene trong cùng danh sách đó.

Bản xuất nào thân với MCP hơn, Unity hay Godot

Hai bên ngang nhau. MCP không chấm độ sâu thư mục. Nó đọc scene sau khi file đã vào dự án đang mở.

Godot MCP đọc scene đang mở: các node trong .tscn đó, và script. Unity MCP đọc scene đang mở: GameObject, và Prefab dưới Assets/Prefabs. MCP là kênh đó. Ở cả hai bên, tên và vị trí đã được ghi, nên đặt màn hình này lại lên artboard đã xong trong lần xuất.

File zip vẫn phải được chép vào dự án trước. Sửa artboard sau đó hiện ra sau một lần xuất nữa, rồi mới tới MCP. Một thay đổi logic trong Godot, hoặc trong Unity, vẫn cần một lần xuất từ artboard trước khi ngữ cảnh mới đó dẫn được lần sinh tiếp theo.

Hỏi và đáp

Assets làm gì trong Unity?

Assets là thư mục gốc cho file trong một dự án Unity. Ảnh, prefab và material nằm bên dưới nó. Editor nhập file từ cây thư mục này. Zip này bắt đầu bằng Assets để, sau khi chép vào dự án, các thư mục đó nhập vào cây mà editor đang theo dõi.

Vì sao trông như hai prefab?

Mở Prefabs thì có hai file. Prefab chỉ có một.

....1920x1080_layer.prefab là prefab. Cả màn 1920×1080 nằm trong một file đó: vị trí của 29 ảnh, và bốn nhãn chữ.

File .prefab.meta cùng tên là file nhập của prefab đó. Nó giữ GUID của prefab. 29 ảnh đều nằm trong prefab này.

Mọi file trong Materials đều về chữ?

Trong lần xuất này, đúng. Ba file trong Materials là material TextMesh Pro. Tên bắt đầu bằng TMP_FX_. Sau khi chữ trên màn hình được xuất sang Unity, màu chữ, viền và bóng nằm trong các material này. Hai nhãn cỡ 19 dùng chung một file. Nhãn cỡ 17 và nhãn cỡ 21 mỗi cái một file. Godot ghi cùng kiểu đó trên Label, nên gói Godot không có thư mục này.

File .meta trong Textures có tự áp dụng sau khi xuất không?

Có, sau khi file đã nằm trong một dự án Unity. Mỗi .meta đã được ghi cạnh PNG của nó. Giải nén không khởi động Unity. Sau khi Assets vào dự án và editor làm mới rồi nhập, Unity đọc các .meta có sẵn và dùng thiết lập Sprite trong đó. Không cần chỉnh từng ảnh bằng tay. Xóa một .meta để Unity tạo lại, GUID đổi, và tham chiếu của prefab tới ảnh đó không còn khớp.

GUID và Sprite chạy cùng nhau thế nào?

Sprite là ảnh Unity dùng cho giao diện và 2D. .meta của mỗi PNG giữ một GUID, số định danh của file đó trong dự án. Prefab trỏ tới từng ảnh bằng số đó. Đổi tên file sau này, miễn .meta còn đó, prefab vẫn trỏ đúng ảnh. Trong lần xuất này, các .meta và prefab được ghi cùng lúc, nên các số đã khớp.

.tscn của Godot là viết tắt của gì?

.tscn là viết tắt của text scene, scene dạng văn bản. Godot lưu một scene trong file văn bản này: có những node nào, đặt ở đâu, mỗi node dùng ảnh nào, và chữ viết gì. File scene nhị phân là .scn. Lần xuất này là một .tscn. Mở ra thấy Control 1920×1080, với 29 node TextureRect và 4 node Label.

Kết luận

Lần đối chiếu này đạt. Artboard 1920×1080 đã vào cả Godot và Unity, với ảnh, tên và vị trí. Khi dự án đang mở, MCP đọc cùng một màn hình đã lắp ở cả hai bên.

Trong chính các file còn hai chỗ trống. Scene và Prefab vẫn mang tên là id artboard cộng 1920x1080_layer. Tên scene trong gameplay lần xuất này chưa kèm theo. Unity nhiều hơn Godot bảy file, vì kiểu chữ nằm riêng trong Materials. Lần đổi chủ đề hoặc ảnh sự kiện sau có thể giữ nguyên tên các file ảnh, rồi xuất lại bằng Restyle.

Xem lần xuất này