انیمیشن‌ها · bei.pm

منتشر شده در 19/11/2015·به‌روزرسانی شده در 13/02/2025·پرسش
این متن به‌صورت خودکار توسط OpenAI GPT-4o Mini ترجمه شده است.

فرمت‌های فایل توصیف‌شده در این صفحه بر پایه تحلیل فنی مالکیت معنوی شرکت Dynamix, Inc. و Sierra Entertainment بنا شده است.
مالکیت معنوی امروزه بخشی از دارایی‌های Activision Publishing, Inc. / Activision Blizzard, Inc. است و در حال حاضر در مالکیت Microsoft Corp. قرار دارد.

این اطلاعات از طریق مهندسی معکوس و تحلیل داده‌ها برای اهداف بایگانی و تعامل‌پذیری با داده‌های تاریخی جمع‌آوری شده است.
هیچ مشخصات مالکیتی یا محرمانه‌ای مورد استفاده قرار نگرفته است.

این بازی در حال حاضر می‌تواند از gog.com به صورت دانلودی خریداری شود.

حال به کلاس سلطنتی رشته‌ها در قالب‌های داده‌ای Outpost 2 می‌رسیم:
انیمیشن‌ها.

لیست‌های انیمیشن با یک هدر جهانی که به طور اصلی برای تأیید داده‌ها استفاده می‌شود، آغاز می‌شود. پس از آن تعاریف انیمیشن‌های مشخصی که به ۳ سطح تقسیم می‌شوند، ارائه می‌شود:

  1. انیمیشن
    یک انیمیشن بالاترین سطح است؛ این یک انیمیشن از یک واحد، یک ساختمان یا یک 'انیمیشن ذرات' (ضربه دنباله‌دار، آب و هوا، انفجار) در یک وضعیت خاص را نشان می‌دهد.
  2. فریم
    یک فریم یک تصویر واحد در درون یک انیمیشن است. یک انیمیشن می‌تواند شامل یک یا چند فریم باشد.
  3. زیر فریم
    یک زیر فریم اطلاعاتی است درباره اینکه یک بیت‌مپ خاص باید تحت شرایط خاصی در یک موقعیت مشخص از یک فریم ترسیم شود. یک فریم می‌تواند شامل یک یا چند زیر فریم باشد.

پس از آن مستقیماً تعاریف انیمیشن‌های فردی ارائه می‌شود.

آدرس 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) ناشناس ۱

اطلاعات ناشناخته

0x0004 uint(32) جعبه مرزی: چپ

مقدار ابتدای چپ (به پیکسل) Bounding Box را مشخص می‌کند.

0x0008 uint(32) جعبه محصور: بالا

مقدار بالایی شروع (به پیکسل) Bounding Box را مشخص می‌کند.

0x000c uint(32) جعبه محدودکننده: عرض

عرض (به پیکسل) Bounding Box را مشخص می‌کند.

0x0010 uint(32) جعبه محدود: ارتفاع

ارتفاع (به پیکسل) Bounding Box را مشخص می‌کند.

0x0014 uint(32) شیب: X

نقطه وسط افقی انیمیشن را مشخص می‌کند

0x0018 uint(32) آفست: Y

نقطه میانه عمودی انیمیشن را مشخص می‌کند

0x001c uint(32) ناشناس ۲

اطلاعات ناشناخته

0x0020 uint(32) تعداد فریم‌ها

تعداد فریم‌های انیمیشن موجود در این انیمیشن را مشخص می‌کند

0x0024 uint(32) تعداد ویندوز ها

تعداد پنجره‌هایی که در هنگام رسم باید استفاده شوند را مشخص می‌کند

داده‌های لایه بالایی، که انیمیشن را شامل می‌شود، عمدتاً داده‌های مدیریتی هستند - Boundingbox به مختصات علامت‌گذاری اطراف خودرو/ساختمان اشاره دارد، زمانی که آن انتخاب شده باشد و همچنین مشخص می‌کند که کدام ناحیه باید قابل کلیک باشد.

آفست عمدتاً "نقطه صفر" را تعیین می‌کند؛ نقطه‌ای که باید به مختصات داخلی بازی اضافه یا از آن کم شود. به طور ریاضی می‌توان گفت: آفست در اینجا به مبدأ مختصات اشاره دارد.

در ویندوزها، همان‌طور که در مورد آفست صحبت کردیم، هر کدام (برای هر ویندوز) شامل ۴ مقدار uint(32) هستند، که یک ناحیه را مشخص می‌کند که برای زیرچارچوب‌های جداگانه قابل استفاده است. خارج از ویندوزها، تا زمانی که برای بیت‌مپ به‌طور مناسب در نظر گرفته شده باشد، نباید طراحی شود.

چارچوب

آدرس x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF شخصیت
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
آدرس جابه‌جایی نوع داده نام توضیح
0x0000 uint(8) تعداد زیرچارچوب و سوئیچ برای گزینه ۱، ۲

این مقدار شامل:

  • 0x7F (ماسک بیت): تعداد زیرفریم‌هایی که در این فریم استفاده می‌شوند
  • 0x80: اطلاعاتی در مورد اینکه آیا گزینه 1 و 2 وجود دارند یا خیر
0x0001 uint(8) ناشناخته ۱ و سوئیچ برای اختیاری ۳، ۴

این مقدار شامل:

  • 0x7F (ماسک بیت): ناشناخته - من به شدت مشکوک هستم که این تعداد گیم‌تیک‌ها باشد که باید بگذرد تا فریم بعدی نمایش داده شود
  • 0x80: اطلاعاتی درباره اینکه آیا گزینه‌های ۳ و ۴ موجود هستند یا خیر
0x0002 uint(8) اختیاری ۱

نامشخص

0x0003 uint(8) اختیاری ۲

نامشخص

0x0004 uint(8) اختیاری ۳

نامشخص

0x0005 uint(8) اختیاری ۴

نامشخص

زیرچارچوب

آدرس x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF شخصیت
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
آدرس جابه‌جایی نوع داده نام توضیح
0x0000 uint(16) شناسه بیت‌مپ

مشخص می‌کند که کدام بیت‌مپ برای این زیر-فریم استفاده شود

0x0002 uint(8) ناشناس ۱

نامشخص است - اما من به شدت مشکوک هستم که این مربوط به اولویت رندر (لایه Z) باشد.

0x0003 uint(8) شناسه زیرچارچوب

مشخص می‌کند که در کدام زیرچارچوب قرار داریم

0x0004 sint(16) افست - افقی

مشخص می‌کند که زیر قاب در کجا داخل قاب قرار گیرد، یا به چه میزان پیکسل باید تصویر بیت‌مپ به صورت افقی جابجا شود

0x0006 sint(16) افست - عمودی

مشخص می‌کند که زیر فریم در کجا داخل فریم قرار گیرد، یا به چند پیکسل باید بیت‌مپ به صورت عمودی جابه‌جا شود

بدین ترتیب می‌توانیم فریم‌های فردی و همچنین انیمیشن‌های کامل را به طور مناسب کنار هم قرار دهیم، که در اینجا به عنوان یک نمونه در یک انیمیشن پیچیده‌تر، انیمیشن با ایندکس 500 نشان داده شده است.

انیمیشن 500

انیمیشن 500 نشان می‌دهد که چگونه یک کامیون حمل و نقل پلیموث که با سنگ معدن معمولی بارگیری شده است، تخلیه می‌شود. این یکی از معدود انیمیشن‌هایی است که از قابلیت پنجره‌ای استفاده می‌کند.

و اینگونه می‌توان انیمیشن کامل را کنار هم قرار داد.
متأسفانه هنوز یک مشکل با دریچه بارگیری بالایی وجود دارد، زیرا در اینجا بیت مربوطه در اطلاعات نوع گرافیک تنظیم نشده است.

در اینجا همچنین چندین اسپرایت زیبا و متحرک دیگر از بازی وجود دارد:

رندرینگ انیمیشن 500 را نشان می‌دهد

انیمیشن 500 به طور کامل کنار هم قرار گرفته است

کارخانه ساختمان پلایموث

پایگاه فضایی ایدن

مرکز پزشکی ایدن

SCAT

پایگاه فضایی پلایموث

تخم‌مرغ عید پاک:
بابا نوئل

تخم‌مرغ عید پاک:
سگ دان