Hoạt hình · bei.pm
Các định dạng tệp được mô tả trên trang này dựa trên phân tích kỹ thuật về sở hữu trí tuệ của Dynamix, Inc. và Sierra Entertainment.
Sở hữu trí tuệ này hiện là một phần của tập đoàn Activision Publishing, Inc.- / Activision Blizzard, Inc. và hiện đang thuộc sở hữu của Microsoft Corp..
Các thông tin đã được thu thập thông qua Reverse Engineering và phân tích dữ liệu nhằm mục đích lưu trữ và tương tác với dữ liệu lịch sử.
Không có thông số kỹ thuật nào thuộc quyền sở hữu hoặc bí mật nào được sử dụng.
Trò chơi hiện có thể được mua dưới dạng tải về tại gog.com.
Bây giờ chúng ta đến với lớp cao nhất của các chuyên ngành trong định dạng dữ liệu Outpost 2:
Các hình ảnh động.
Các danh sách hình ảnh động được bắt đầu bằng một tiêu đề toàn cầu, chủ yếu phục vụ cho việc xác minh dữ liệu. Sau đó là các định nghĩa hình ảnh động cụ thể, được chia thành 3 cấp độ:
-
Hình ảnh động
Một hình ảnh động là thực thể cao nhất; nó đại diện cho một hình ảnh động của một đơn vị, một tòa nhà hoặc một 'hình ảnh động hạt' (va chạm sao chổi, thời tiết, nổ) trong một tình huống nhất định. -
Khung hình
Một khung hình là một hình ảnh đơn lẻ trong một hình ảnh động. Một hình ảnh động có thể chứa một hoặc nhiều khung hình. -
Khung phụ
Một khung phụ là thông tin về việc một bitmap nhất định sẽ được vẽ ở một vị trí nhất định của một khung hình dưới các tiêu chí nhất định. Một khung hình có thể chứa một hoặc nhiều khung phụ.
Sau đó sẽ là các định nghĩa hình ảnh động cụ thể.
Địa chỉ | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | ký tự | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Địa chỉ lệch | Loại dữ liệu | Tên gọi | Giải thích |
---|---|---|---|
0x0000 | uint(32) | Số lượng hoạt hình | Có bao nhiêu tập dữ liệu hoạt hình hiện có |
0x0004 | uint(32) | Số lượng khung | Có tổng cộng bao nhiêu khung hình nên có |
0x0008 | uint(32) | Số lượng subframe | Có bao nhiêu subframe nên có tổng cộng |
0x000c | uint(32) | Số lượng mục tùy chọn | Có bao nhiêu "mục tùy chọn" hiện có. |
Hoạt hình
Địa chỉ | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | ký tự | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Địa chỉ lệch | Loại dữ liệu | Tên gọi | Giải thích |
---|---|---|---|
0x0000 | uint(32) | Không xác định 1 | Thông tin chưa rõ |
0x0004 | uint(32) | Hộp giới hạn: Bên trái | Chỉ định vị trí bên trái (tính bằng pixel) của Bounding Box. |
0x0008 | uint(32) | Bounding Box: Trên | Xác định điểm bắt đầu phía trên (tính bằng pixel) của Bounding Box. |
0x000c | uint(32) | Hộp giới hạn: Chiều rộng | Cho biết chiều rộng (tính bằng pixel) của Bounding Box. |
0x0010 | uint(32) | Hộp giới hạn: Chiều cao | Chỉ định chiều cao (tính bằng Pixel) của Bounding Box. |
0x0014 | uint(32) | Bù: X | Xác định trung điểm ngang của hoạt hình |
0x0018 | uint(32) | Offset: Y | Chỉ định tâm dọc của hoạt ảnh |
0x001c | uint(32) | Không xác định 2 | Thông tin chưa rõ |
0x0020 | uint(32) | Số lượng khung | Chỉ ra số lượng khung hình hoạt hình có trong hoạt ảnh này |
0x0024 | uint(32) | Số lượng cửa sổ | Chỉ ra số lượng cửa sổ cần áp dụng khi vẽ |
Dữ liệu của lớp trên cùng, của hoạt ảnh, chủ yếu là dữ liệu quản lý - Boundingbox chỉ định tọa độ của điểm đánh dấu quanh phương tiện/công trình, khi nó được chọn và cũng đồng thời xác định khu vực nào có thể nhấp vào.
Offset chủ yếu xác định "điểm gốc"; điểm mà cần phải tính toán hoặc trừ trên tọa độ trong trò chơi. Có thể nói một cách toán học: offset ở đây chỉ định gốc tọa độ.
Các cửa sổ cũng giống như offset, bao gồm (cho mỗi cửa sổ) 4 giá trị uint(32), chỉ định một khu vực có thể sử dụng cho các khung con riêng lẻ. Bên ngoài các cửa sổ, nếu không được chỉ định cho bitmap, không được phép vẽ.
Khung
Địa chỉ | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | ký tự | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Địa chỉ lệch | Loại dữ liệu | Tên gọi | Giải thích |
---|---|---|---|
0x0000 | uint(8) | Số lượng khung phụ và công tắc cho Tùy chọn 1, 2 | Giá trị này bao gồm:
|
0x0001 | uint(8) | Không xác định 1 và Chuyển đổi cho Tùy chọn 3, 4 | Giá trị này bao gồm:
|
0x0002 | uint(8) | Tùy chọn 1 | Không rõ |
0x0003 | uint(8) | Tùy chọn 2 | Không rõ |
0x0004 | uint(8) | Tùy chọn 3 | Không rõ |
0x0005 | uint(8) | Tùy chọn 4 | Không rõ |
Khung phụ
Địa chỉ | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | ký tự | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Địa chỉ lệch | Loại dữ liệu | Tên gọi | Giải thích |
---|---|---|---|
0x0000 | uint(16) | Bitmap-Id | Chỉ định bitmap nào sẽ được sử dụng cho subframe này |
0x0002 | uint(8) | Không xác định 1 | Không rõ - nhưng tôi nghi ngờ rằng đây là một vấn đề liên quan đến ưu tiên hiển thị (Z-Layer). |
0x0003 | uint(8) | Subframe-Id | Chỉ ra chúng ta đang ở trong khung con nào |
0x0004 | sint(16) | Độ lệch - Ngang | Chỉ định vị trí bên trong khung nơi mà khung con sẽ được đặt, hoặc số pixel mà bitmap sẽ được dịch chuyển theo chiều ngang. |
0x0006 | sint(16) | Offset - Dọc | Chỉ định vị trí bên trong khung mà khung con sẽ được đặt, hoặc số pixel mà bitmap sẽ được dịch chuyển theo chiều dọc. |
Với điều này, chúng ta có thể ghép nối các khung hình riêng lẻ cũng như các hoạt ảnh hoàn chỉnh, ở đây sẽ được minh họa bằng một hoạt ảnh phức tạp hơn, hoạt ảnh có chỉ số 500.
Hoạt hình 500
Animation 500 cho thấy cách một chiếc xe tải Plymouth, được chở đầy quặng thông thường, được dỡ hàng. Đây là một trong số ít các animation sử dụng chức năng Windowing.
Và đây là cách ghép nối toàn bộ animation lại với nhau.
Thật không may, vẫn còn một vấn đề với cửa tải phía trên, vì bit tương ứng trong thông tin loại đồ họa chưa được thiết lập.
Dưới đây là một số sprite được hoạt hình rất đẹp khác từ trò chơi: