アニメーション · bei.pm
このページに記載されているファイル形式は、Dynamix, Inc. と Sierra Entertainment の知的財産に関する技術分析に基づいています。
この知的財産は現在、Activision Publishing, Inc. / Activision Blizzard, Inc. に属しており、現在は Microsoft Corp. に所有されています。
情報は、アーカイブと歴史的データとの相互運用性を目的とした リバースエンジニアリング と データ分析 によって収集されました。
独自の機密仕様は使用されていません。
現在、このゲームは gog.com でダウンロード購入できます。
さて、Outpost 2のデータフォーマットの中で最も重要な分野に来ました:
アニメーションです。
アニメーションリストは、主にデータの検証のためのグローバルヘッダーで始まります。 その後、具体的なアニメーション定義が3つの段階に分かれて続きます:
-
アニメーション
アニメーションとは、ユニット、建物、または「パーティクルアニメーション」(彗星の衝突、天候、爆発)を特定の状況で表す最上位のインスタンスです。 -
フレーム
フレームとは、アニメーション内の1つの画像です。アニメーションには1つ以上のフレームが含まれることがあります。 -
サブフレーム
サブフレームとは、特定のビットマップを特定の条件でフレームの特定の位置に描画する情報です。フレームには1つ以上のサブフレームが含まれることがあります。
その後、すぐに各アニメーション定義が続きます。
アドレス | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | 文字 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
オフセット | データタイプ | 名称 | 説明 |
---|---|---|---|
0x0000 | uint(32) | アニメーションの数 | アニメーションデータセットはどれくらいありますか? |
0x0004 | uint(32) | フレームの数 | 合計で何フレームが必要ですか? |
0x0008 | uint(32) | サブフレームの数 | 全体で何個のサブフレームが必要ですか? |
0x000c | uint(32) | オプション項目の数 | いくつの "オプションのエントリー" が存在しますか。 |
アニメーション
アドレス | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | 文字 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
オフセット | データタイプ | 名称 | 説明 |
---|---|---|---|
0x0000 | uint(32) | 不明 1 | 不明な情報 |
0x0004 | uint(32) | バウンディングボックス:左 | バウンディングボックスの左端の位置(ピクセル単位)を指定します。 |
0x0008 | uint(32) | バウンディングボックス: 上部 | バウンディングボックスの上端の開始位置(ピクセル単位)を指定します。 |
0x000c | uint(32) | バウンディングボックス: 幅 | バウンディングボックスの幅(ピクセル単位)を示します。 |
0x0010 | uint(32) | バウンディングボックス: 高さ | バウンディングボックスの高さ(ピクセル単位)を示します。 |
0x0014 | uint(32) | オフセット: X | アニメーションの水平中心を指定します |
0x0018 | uint(32) | オフセット: Y | アニメーションの垂直中心を示します |
0x001c | uint(32) | 不明 2 | 未知の情報 |
0x0020 | uint(32) | フレームの数 | このアニメーションに含まれているアニメーションフレームの数を示します |
0x0024 | uint(32) | ウィンドウの数 | 描画に使用するウィンドウの数を指定します |
最上層のデータ、アニメーションのデータは主に管理データです - バウンディングボックスは、車両や建物を選択した際のマークの座標を示し、 同時にクリック可能な領域も示します。
オフセットは主に「ゼロポイント」を決定します;ゲーム内の座標に対して加算または減算される点です。 数学的に言うと、オフセットはここで座標の原点を示します。
ウィンドウは、オフセットと同様に、それぞれのウィンドウに対して4つのuint(32)値を持ち、 それにより個々のサブフレームに使用可能な領域を指定します。ビットマップに適切に指定されている限り、 ウィンドウの外側には描画してはいけません。
フレーム
アドレス | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | 文字 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
オフセット | データタイプ | 名称 | 説明 |
---|---|---|---|
0x0000 | uint(8) | サブフレームの数とオプション1、2のトグル | この値には次のものが含まれています:
|
0x0001 | uint(8) | 不明な1とオプション3、4のトグル | この値には次のものが含まれています:
|
0x0002 | uint(8) | オプション1 | 不明 |
0x0003 | uint(8) | オプション2 | 不明 |
0x0004 | uint(8) | オプション3 | 不明 |
0x0005 | uint(8) | オプショナル4 | 不明 |
サブフレーム
アドレス | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | 文字 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
オフセット | データタイプ | 名称 | 説明 |
---|---|---|---|
0x0000 | uint(16) | ビットマップID | このサブフレームに使用するビットマップを指定します |
0x0002 | uint(8) | 不明 1 | 不明です。ただし、これはレンダープライオリティ(Zレイヤー)に関係していると思います。 |
0x0003 | uint(8) | サブフレームID | 私たちがどのサブフレームにいるかを示します |
0x0004 | sint(16) | オフセット - 水平 | フレーム内のどこにサブフレームを配置するか、またはビットマップを横に何ピクセル移動させるかを指定します。 |
0x0006 | sint(16) | オフセット - 垂直 | フレーム内のどこにサブフレームを配置するか、またはビットマップを垂直に何ピクセル移動させるかを指定します。 |
これにより、個々のフレームや完全なアニメーションを組み合わせることができ、ここではインデックス 500 の複雑なアニメーションを例に示します。
アニメーション 500
アニメーション500は、通常の鉱石を積んだプリマスのトランスポーターが荷降ろしされる様子を示しています。このアニメーションは、ウィンドウ機能を利用した数少ないアニメーションの一つです。
これで完全なアニメーションを組み合わせることができます。
残念ながら、上の荷物のハッチには問題があり、グラフィックタイプ情報に対応するビットが設定されていません。
ここに、ゲームからの他の美しいアニメーションスプライトをいくつか紹介します: