انیمیشنها · bei.pm
فرمتهای فایل توصیفشده در این صفحه بر پایه تحلیل فنی مالکیت معنوی شرکت Dynamix, Inc. و Sierra Entertainment بنا شده است.
مالکیت معنوی امروزه بخشی از داراییهای Activision Publishing, Inc. / Activision Blizzard, Inc. است و در حال حاضر در مالکیت Microsoft Corp. قرار دارد.
این اطلاعات از طریق مهندسی معکوس و تحلیل دادهها برای اهداف بایگانی و تعاملپذیری با دادههای تاریخی جمعآوری شده است.
هیچ مشخصات مالکیتی یا محرمانهای مورد استفاده قرار نگرفته است.
این بازی در حال حاضر میتواند از gog.com به صورت دانلودی خریداری شود.
حال به کلاس سلطنتی رشتهها در قالبهای دادهای Outpost 2 میرسیم:
انیمیشنها.
لیستهای انیمیشن با یک هدر جهانی که به طور اصلی برای تأیید دادهها استفاده میشود، آغاز میشود. پس از آن تعاریف انیمیشنهای مشخصی که به ۳ سطح تقسیم میشوند، ارائه میشود:
-
انیمیشن
یک انیمیشن بالاترین سطح است؛ این یک انیمیشن از یک واحد، یک ساختمان یا یک 'انیمیشن ذرات' (ضربه دنبالهدار، آب و هوا، انفجار) در یک وضعیت خاص را نشان میدهد. -
فریم
یک فریم یک تصویر واحد در درون یک انیمیشن است. یک انیمیشن میتواند شامل یک یا چند فریم باشد. -
زیر فریم
یک زیر فریم اطلاعاتی است درباره اینکه یک بیتمپ خاص باید تحت شرایط خاصی در یک موقعیت مشخص از یک فریم ترسیم شود. یک فریم میتواند شامل یک یا چند زیر فریم باشد.
پس از آن مستقیماً تعاریف انیمیشنهای فردی ارائه میشود.
آدرس | 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) | تعداد زیرچارچوب و سوئیچ برای گزینه ۱، ۲ | این مقدار شامل:
|
0x0001 | uint(8) | ناشناخته ۱ و سوئیچ برای اختیاری ۳، ۴ | این مقدار شامل:
|
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 نشان میدهد که چگونه یک کامیون حمل و نقل پلیموث که با سنگ معدن معمولی بارگیری شده است، تخلیه میشود. این یکی از معدود انیمیشنهایی است که از قابلیت پنجرهای استفاده میکند.
و اینگونه میتوان انیمیشن کامل را کنار هم قرار داد.
متأسفانه هنوز یک مشکل با دریچه بارگیری بالایی وجود دارد، زیرا در اینجا بیت مربوطه در اطلاعات نوع گرافیک تنظیم نشده است.
در اینجا همچنین چندین اسپرایت زیبا و متحرک دیگر از بازی وجود دارد: