アニメーション · bei.pm

公開日 2015年11月19日·更新日 2025年02月13日·日本語
このテキストはOpenAI GPT-4o Miniによって自動的に翻訳されました。

このページに記載されているファイル形式は、Dynamix, Inc.Sierra Entertainment の知的財産に関する技術分析に基づいています。
この知的財産は現在、Activision Publishing, Inc. / Activision Blizzard, Inc. に属しており、現在は Microsoft Corp. に所有されています。

情報は、アーカイブと歴史的データとの相互運用性を目的とした リバースエンジニアリングデータ分析 によって収集されました。
独自の機密仕様は使用されていません。

現在、このゲームは gog.com でダウンロード購入できます。

さて、Outpost 2のデータフォーマットの中で最も重要な分野に来ました:
アニメーションです。

アニメーションリストは、主にデータの検証のためのグローバルヘッダーで始まります。 その後、具体的なアニメーション定義が3つの段階に分かれて続きます:

  1. アニメーション
    アニメーションとは、ユニット、建物、または「パーティクルアニメーション」(彗星の衝突、天候、爆発)を特定の状況で表す最上位のインスタンスです。
  2. フレーム
    フレームとは、アニメーション内の1つの画像です。アニメーションには1つ以上のフレームが含まれることがあります。
  3. サブフレーム
    サブフレームとは、特定のビットマップを特定の条件でフレームの特定の位置に描画する情報です。フレームには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のトグル

この値には次のものが含まれています:

  • 0x7F(ビットマスク):このフレームで使用されるサブフレームの数
  • 0x80:オプション1と2が存在するかどうかの情報
0x0001 uint(8) 不明な1とオプション3、4のトグル

この値には次のものが含まれています:

  • 0x7F(ビットマスク):不明 - 次のフレームが表示されるまでに経過するゲームティックの数であると強く推測しています
  • 0x80:オプション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は、通常の鉱石を積んだプリマスのトランスポーターが荷降ろしされる様子を示しています。このアニメーションは、ウィンドウ機能を利用した数少ないアニメーションの一つです。

これで完全なアニメーションを組み合わせることができます。
残念ながら、上の荷物のハッチには問題があり、グラフィックタイプ情報に対応するビットが設定されていません。

ここに、ゲームからの他の美しいアニメーションスプライトをいくつか紹介します:

アニメーション500のレンダリングを示しています

完成したアニメーション500

プリマス 建物工場

エデン 宇宙港

エデン 医療センター

SCAT

プリマス 宇宙港

イースターエッグ:
サンタクロース

イースターエッグ:
ダンス ドッグ