Các hoạt hình Minecraft có được mã hóa vào trò chơi không? [đóng cửa]


12

Tôi muốn biết làm thế nào hệ thống hoạt hình hoạt động trong minecraft. Tôi có cảm giác rằng tất cả các mob đều được mã hóa cứng vào trò chơi. Không thực sự ngồi đó và tạo ma trận cho tất cả các xương hoạt hình bằng tay?

Tôi thích tái tạo trò chơi cho vui, vì vậy tôi muốn biết làm thế nào anh ấy làm điều này. Ngoài ra, nếu anh ta thực sự làm hardcode họ ... có cách nào tốt hơn không?


2
Tại sao bạn nghĩ rằng anh ta có thể có hoạt hình mã hóa cứng?
Ali1S 232

Có vẻ như câu hỏi này chỉ có thể trả lời bởi Notch.
MichaelHouse

9
Hơn nữa, tại sao bạn quan tâm Minecraft đã làm như thế nào? Bạn có ý tưởng làm thế nào để hoàn thành điều tương tự theo cách khác không?
Tetrad

1
minecraftforum.net/topic/361430-181smp-smart-moving Nhà sản xuất mod này có thể có câu trả lời cho bạn nhưng hoạt hình không phải là một lĩnh vực của mã minecraft mà tôi đã xem qua trước đây.
James

1
Tôi đã xem qua mã MCP trước đây và tôi chắc chắn 99% là tôi nhớ đã thấy các hình ảnh động được mã hóa cứng. Tôi không còn có minecraft (hoặc thậm chí cả Eclipse) để kiểm tra nữa.
BlueRaja - Daniel Pflughoeft

Câu trả lời:


18

Như những người khác đã nói, vâng, các mô hình cũng như các hình ảnh động được mã hóa cứng. Nếu bạn muốn xem nó đã được thực hiện như thế nào, hãy truy cập wiki Minecraft Coder Pack .

Gói được tạo để giúp người tạo mod dịch ngược, thay đổi và biên dịch lại các lớp Minecraft. Hướng dẫn được bao gồm trong các tập tin readme đi kèm với gói. Gói chứa các tập lệnh để dịch ngược, biên dịch lại và kích hoạt lại trò chơi và máy chủ.

Các lớp bạn sẽ muốn xem xét là: ModelBase, ModelBiped và ModelRenderer.

ModelBiped chứa các chức năng sau đây làm hoạt ảnh hình người:

public void render(Entity entity, float time, float f1, ...)
{
    setRotationAngles(time, f1, ...);
    ...
}

public void setRotationAngles(float time, float f1, ...)
{
    ...
    bipedRightArm.rotateAngleX = MathHelper.cos(time * 0.6662F + 3.141593F) * 2.0F * f1 * 0.5F;
    bipedLeftArm.rotateAngleX = MathHelper.cos(time * 0.6662F) * 2.0F * f1 * 0.5F;
    ...
}

Các cánh tay chỉ đơn giản là chức năng cosine. Cánh tay phải được bù bởi PI để làm cho chúng xoay theo các hướng đối nghịch.

đồ thị của cánh tay

Tôi hy vọng rằng câu trả lời cho câu hỏi của bạn =)


Nếu bạn muốn biết thêm thông tin về cách thực sự mod Minecraft, thì hãy xem câu hỏi này:

Làm cách nào để thêm mob tùy chỉnh vào Minecraft?


Sis! Vòng quay Euclide :(.
Jonathan Dickinson

8

Các mô hình trong Minecraft được mã hóa cứng. Không có khái niệm về phân cấp khối (chỉ có một danh sách các khối). Điều này có nghĩa là hình ảnh động được thực hiện theo thủ tục (theo cách rất cơ bản) hoặc giá trị được mã hóa cứng với phép nội suy.

Có một vài trình soạn thảo cho các mô hình Minecraft như Techne hoặc FMCModeler cho phép nhập / xuất mã mô hình Minecraft cho các mod, nhưng chúng không hỗ trợ hoạt ảnh vì có thể được xử lý khác nhau cho mỗi mô hình.

Đây là một mẫu nhanh được tạo bằng FMCModeler:

//variables init:
public ModelRenderer box;

//constructor:
box = new ModelRenderer(0, 0);
box.addBox(0F, 0F, 0F, 16, 16, 16);

//render:
box.render(f5);

Một cách tốt hơn để làm điều đó là xây dựng một trình tạo mô hình dựa trên khối đầy đủ với một số khái niệm về phân cấp khối để bạn có thể làm động các mô hình bằng các khung hình chính và nội suy.

Tôi hiện đang xây dựng một công cụ xây dựng trò chơi nhiều người chơi thực hiện điều đó (trong số những thứ khác, http://craftstud.io/ ). Nó đã cho phép xây dựng các mô hình kết cấu tĩnh phức tạp và nhiều hơn nữa đang trên đường.

Đây là một mô hình phức tạp được xây dựng với CraftStudio Như bạn có thể thấy, các khối được sắp xếp trong một cây bên phải: http://i.stack.imgur.com/FRQeV.png

Mỗi khối được tuần tự hóa vào đĩa / qua mạng với dữ liệu sau:

  • ID duy nhất
  • ID nút cha
  • Vị trí (ảnh hưởng đến con cháu)
  • Tỷ lệ (ảnh hưởng đến con cháu)
  • Góc (ảnh hưởng đến con cháu)
  • Bù đắp từ điểm mấu chốt
  • Kích thước khối
  • Khối bù kết cấu (bù tọa độ UV cho kết cấu)

Tôi dự định thêm hỗ trợ hoạt hình bằng cách lưu trữ bản đồ với tên hoạt hình làm khóa và danh sách các khung hình chính làm giá trị. Mỗi khung hình chính sẽ được liên kết với một khối và giá trị để tạo hiệu ứng. Giữa các khung hình chính, các giá trị phải được nội suy (theo tuyến tính cho vị trí hoặc hình cầu cho các góc, tìm kiếm lerp và slerp).


0

Các mô hình khối Minecraft thực sự không được mã hóa vào trò chơi kể từ 1.8 và có thể được chỉnh sửa bằng các gói tài nguyên. Hệ thống mô hình JSON khá dễ hiểu và các mô hình tồn tại ở / model / block. Sau đó, bạn có thể nhìn vào mã để xem cách nó diễn giải các mô hình JSON.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.