Animasi · bei.pm
Format file yang dijelaskan di halaman ini didasarkan pada analisis teknis dari kekayaan intelektual oleh Dynamix, Inc. dan Sierra Entertainment.
Kekayaan intelektual ini saat ini merupakan bagian dari massa Activision Publishing, Inc. / Activision Blizzard, Inc. dan saat ini dimiliki oleh Microsoft Corp..
Informasi ini telah dikumpulkan melalui Reverse Engineering dan analisis data untuk tujuan pengarsipan dan interoperabilitas dengan data historis.
Tidak ada spesifikasi yang bersifat kepemilikan atau rahasia yang digunakan.
Game ini saat ini dapat dibeli sebagai unduhan di gog.com.
Sekarang kita sampai pada kelas utama disiplin dalam format data Outpost 2:
Animasi.
Daftar animasi dimulai dengan header global yang terutama digunakan untuk verifikasi data. Selanjutnya adalah definisi animasi konkret yang dibagi menjadi 3 tingkatan:
-
Animasi
Sebuah animasi adalah instansi tertinggi; ia mewakili animasi dari sebuah unit, bangunan, atau 'animasi partikel' (benturan komet, cuaca, ledakan) dalam keadaan tertentu. -
Frame
Sebuah frame adalah satu gambar tunggal dalam sebuah animasi. Sebuah animasi dapat terdiri dari satu atau lebih frame. -
Subframe
Sebuah subframe adalah informasi tentang bahwa bitmap tertentu harus digambar pada posisi tertentu dari sebuah frame berdasarkan kriteria tertentu. Sebuah frame dapat terdiri dari satu atau lebih subframe.
Selanjutnya adalah definisi animasi yang spesifik.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Tipe Data | Nama | Penjelasan |
---|---|---|---|
0x0000 | uint(32) | Jumlah animasi | Berapa banyak kumpulan data animasi yang tersedia |
0x0004 | uint(32) | Jumlah Frame | Berapa banyak frame yang seharusnya ada secara keseluruhan |
0x0008 | uint(32) | Jumlah Subframe | Berapa banyak subframe yang seharusnya ada secara total |
0x000c | uint(32) | Jumlah entri opsional | Berapa banyak "entri opsional" yang ada. |
Animasi
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Tipe Data | Nama | Penjelasan |
---|---|---|---|
0x0000 | uint(32) | Tidak Dikenal 1 | Informasi yang tidak diketahui |
0x0004 | uint(32) | Bounding Box: Kiri | Menunjukkan posisi awal kiri (dalam piksel) dari Bounding Box. |
0x0008 | uint(32) | Bounding Box: Atas | Menunjukkan awal atas (dalam piksel) dari Bounding Box. |
0x000c | uint(32) | Bounding Box: Lebar | Menunjukkan lebar (dalam piksel) dari Bounding Box. |
0x0010 | uint(32) | Bounding Box: Tinggi | Menunjukkan tinggi (dalam piksel) dari Bounding Box. |
0x0014 | uint(32) | Offset: X | Menunjukkan titik tengah horizontal dari animasi |
0x0018 | uint(32) | Offset: Y | Menunjukkan titik tengah vertikal dari animasi |
0x001c | uint(32) | Tidak diketahui 2 | Informasi yang tidak diketahui |
0x0020 | uint(32) | Jumlah Frame | Menunjukkan berapa banyak frame animasi yang terdapat dalam animasi ini |
0x0024 | uint(32) | Jumlah Windows | Menunjukkan berapa banyak jendela yang harus digunakan saat menggambar |
Data dari lapisan tertinggi, yaitu animasi, terutama adalah data administratif - Boundingbox merujuk pada koordinat penanda di sekitar kendaraan/bangunan, kapan pun itu dipilih dan juga menunjukkan area mana yang dapat diklik.
Offset terutama menentukan "titik nol"; titik yang harus ditambahkan atau dikurangkan pada koordinat internal permainan. Dapat juga dikatakan secara matematis: offset di sini merujuk pada asal koordinat.
Windows terdiri dari 4 nilai uint(32) untuk setiap window, yang menunjukkan area yang dianggap dapat digunakan untuk subframe tertentu. Di luar windows, tidak boleh digambar, jika tidak ditentukan untuk bitmap tersebut.
Kerangka
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Tipe Data | Nama | Penjelasan |
---|---|---|---|
0x0000 | uint(8) | Jumlah subframe dan toggle untuk Opsional 1, 2 | Nilai ini mencakup:
|
0x0001 | uint(8) | Tidak dikenal 1 dan Toggle untuk Opsional 3, 4 | Nilai ini mengandung:
|
0x0002 | uint(8) | Opsional 1 | Tidak Dikenal |
0x0003 | uint(8) | Opsional 2 | Tidak Dikenal |
0x0004 | uint(8) | Opsional 3 | Tidak Dikenal |
0x0005 | uint(8) | Opsional 4 | Tidak Dikenal |
Subframe
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Tipe Data | Nama | Penjelasan |
---|---|---|---|
0x0000 | uint(16) | Bitmap-Id | Menunjukkan bitmap mana yang harus digunakan untuk subframe ini |
0x0002 | uint(8) | Tidak Dikenal 1 | Tidak diketahui - namun saya sangat menduga bahwa ini terkait dengan prioritas render (Z-Layer). |
0x0003 | uint(8) | Subframe-Id | Menunjukkan di subframe mana kita berada |
0x0004 | sint(16) | Offset - Horizontal | Menunjukkan di mana di dalam bingkai subbing harus ditempatkan, atau seberapa banyak piksel bitmap harus dipindahkan secara horizontal |
0x0006 | sint(16) | Offset - Vertikal | Menunjukkan di mana dalam bingkai subframe harus ditempatkan, atau seberapa banyak piksel bitmap harus dipindahkan secara vertikal |
Dengan ini, kita sekarang dapat menyusun frame individu maupun animasi lengkap, di sini sebagai contoh pada animasi yang lebih kompleks, animasi dengan indeks 500, diperagakan
Animasi 500
Animasi 500 menunjukkan bagaimana sebuah Plymouth-Transporter, yang dimuat dengan bijih biasa, dibongkar. Ini adalah salah satu dari sedikit animasi yang memanfaatkan fungsionalitas windowing.
Dan inilah cara untuk menyatukan seluruh animasi.
Sayangnya, masih ada masalah dengan pintu atas, karena bit yang sesuai dalam informasi jenis grafik tidak diatur.
Ini beberapa sprite yang sangat indah dan dianimasikan dari permainan: