Animasyonlar · bei.pm
Bu sayfada tanımlanan dosya formatları, Dynamix, Inc. ve Sierra Entertainment tarafından yapılan teknik analizlere dayanmaktadır.
Bugün fikri mülkiyet, Activision Publishing, Inc. / Activision Blizzard, Inc. grubunun bir parçasıdır ve şu anda Microsoft Corp. tarafından sahiptir.
Bilgiler, arşivleme ve tarihsel verilerle birlikte çalışabilirlik amacıyla ters mühendislik ve veri analizi yoluyla derlenmiştir.
Hiçbir özel veya gizli spesifikasyon kullanılmamıştır.
Oyun şu anda gog.com üzerinden indirme olarak satın alınabilir.
Şimdi Outpost 2 veri formatları içindeki disiplinlerin kraliyet sınıfına geliyoruz:
Animasyonlar.
Animasyon listeleri, öncelikle veri doğrulama amacı taşıyan bir küresel başlık ile başlar. Bunun ardından üç aşamada yapılandırılmış somut animasyon tanımları gelir:
-
Animasyon
Bir animasyon en üst düzeydeki varlıktır; bir birimin, bir binanın veya bir 'parçacık animasyonu'nun (kuyruklu yıldız çarpması, hava durumu, patlama) belirli bir başlangıç durumundaki animasyonunu temsil eder. -
Çerçeve
Bir çerçeve, bir animasyon içindeki tek bir görüntüdür. Bir animasyon bir veya daha fazla çerçeve içerebilir. -
Alt Çerçeve
Bir alt çerçeve, belirli bir bitmap'ın belirli kriterler altında bir çerçevenin belirli bir konumuna çizilmesi gerektiği bilgilerini içerir. Bir çerçeve bir veya daha fazla alt çerçeve içerebilir.
Bundan sonra doğrudan bireysel animasyon tanımları geliyor.
Adres | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Kaydırma | Veri Türü | Tanım | Açıklama |
---|---|---|---|
0x0000 | uint(32) | Animasyon sayısı | Kaç tane animasyon veri kaydı mevcut |
0x0004 | uint(32) | Kare Sayısı | Toplamda kaç tane çerçeve olmalıdır |
0x0008 | uint(32) | Alt Çerçeve Sayısı | Toplamda kaç tane alt çerçeve bulunmalıdır |
0x000c | uint(32) | Opsiyonel kayıt sayısı | Kaç tane "isteğe bağlı giriş" var. |
Animasyon
Adres | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Kaydırma | Veri Türü | Tanım | Açıklama |
---|---|---|---|
0x0000 | uint(32) | Bilinmeyen 1 | Bilinmeyen Bilgiler |
0x0004 | uint(32) | Sınır Kutusu: Solda | Bounding Box'ın sol başlangıcını (piksel cinsinden) belirtir. |
0x0008 | uint(32) | Sınırlayıcı Kutusu: Üst | Üstteki başlangıcı (piksel cinsinden) Bounding Box olarak belirtir. |
0x000c | uint(32) | Sınır Kutusu: Genişlik | Sınır Kutusunun genişliğini (piksel cinsinden) belirtir. |
0x0010 | uint(32) | Sınır Kutusu: Yükseklik | Bounding Box'ın yüksekliğini (piksel cinsinden) belirtir. |
0x0014 | uint(32) | Ofset: X | Animasyonun yatay merkezini belirtir |
0x0018 | uint(32) | Ofset: Y | Animasyonun dikey ortasını belirtir |
0x001c | uint(32) | Bilinmeyen 2 | Bilinmeyen Bilgi |
0x0020 | uint(32) | Kare Sayısı | Bu animasyonda kaç tane animasyon karesi bulunduğunu belirtir |
0x0024 | uint(32) | Pencere Sayısı | Çizim sırasında kaç pencere kullanılması gerektiğini belirtir |
Üst katmanın, animasyonun verileri öncelikle yönetim verileridir - Boundingbox, aracın/binanın etrafındaki işaretlemenin koordinatlarını belirtir; bu, seçildiğinde gösterilir ve aynı zamanda hangi alanın tıklanabilir olduğunu belirtir.
Offset, öncelikle "sıfır noktasını" belirler; oyun içindeki koordinatlarla hesaplanması veya çıkarılması gereken noktadır. Daha matematiksel bir ifadeyle, offset burada koordinatların kökünü belirtir.
Windows, offset gibi, her biri 4 uint(32) değeri olan ve belirli alt çerçeveler için kullanılabilir olan bir alanı belirtir. Windows dışında, bitmap için uygun olduğu sürece çizim yapılamaz.
Çerçeve
Adres | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Kaydırma | Veri Türü | Tanım | Açıklama |
---|---|---|---|
0x0000 | uint(8) | Alt çerçeve sayısı ve Opsiyonel 1, 2 için Toggle | Bu değer şunları içerir:
|
0x0001 | uint(8) | Bilinmeyen 1 ve Opsiyonel 3, 4 için Anahtar. | Bu değer şunları içerir:
|
0x0002 | uint(8) | Opsiyonel 1 | Bilinmeyen |
0x0003 | uint(8) | Seçenek 2 | Bilinmeyen |
0x0004 | uint(8) | Opsiyonel 3 | Bilinmeyen |
0x0005 | uint(8) | Opsiyonel 4 | Bilinmeyen |
Alt Çerçeve
Adres | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Kaydırma | Veri Türü | Tanım | Açıklama |
---|---|---|---|
0x0000 | uint(16) | Bitmap-Id | Bu alt çerçeve için hangi Bitmap'in kullanılacağını belirtir |
0x0002 | uint(8) | Bilinmeyen 1 | Belirsiz - ancak bunun bir Render önceliği (Z-Katmanı) olduğunu güçlü bir şekilde tahmin ediyorum. |
0x0003 | uint(8) | Alt çerçeve kimliği | Hangi alt çerçevede bulunduğumuzu belirtir |
0x0004 | sint(16) | Ofset - Yatay | Çerçevenin içinde alt çerçevenin nereye yerleştirileceğini veya bitmap'ın yatay olarak kaç piksel kaydırılacağını belirtir |
0x0006 | sint(16) | Offset - Dikey | Çerçeve içinde alt çerçevenin nerede yer alacağını veya bitmap'in kaç piksel yukarı veya aşağı kaydırılacağını belirtir |
Bununla şimdi tekil kareleri ve aynı zamanda tamamı animasyonları uygun şekilde bir araya getirebiliriz. Burada, 500 indeksine sahip daha karmaşık bir animasyon örneği ile gösterilmektedir.
Animasyon 500
Animasyon 500, sıradan madenle yüklü bir Plymouth taşıyıcısının nasıl boşaltıldığını gösteriyor. Bu, pencereleme işlevselliğini kullanan az sayıda animasyondan biridir.
Ve böylece tam animasyonu birleştirebiliriz.
Maalesef, üst yükleme kapağıyla ilgili bir sorun var, çünkü burada grafik türü bilgilerinde ilgili bit ayarlanmamış.
Oyundan birkaç başka güzel animasyonlu sprite daha burada: