ანიმაცია · bei.pm
ამ გვერდზე აღწერილი ფაილების ფორმატები ეფუძნება Dynamix, Inc. და Sierra Entertainment-ის ინტელექტუალური საკუთრების ტექნიკურ ანალიზს.
ინტელექტუალური საკუთრება დღეს არის Activision Publishing, Inc.-ის / Activision Blizzard, Inc.-ის მასის ნაწილი და ამჟამად ეკუთვნის Microsoft Corp..
მعلوماتები შეიკრიბა Reverse Engineering და დატების ანალიზის საშუალებით არქივირების და ისტორიული მონაცემებთან ინტერპერატიულობის მიზნით.
არ ყოფილა გამოყენებული რაიმე სამ Proprietary ან კონფიდენციალური სპეციფიკაციები.
ამჟამად თამაში შესაძლებელია შეძენა gog.com-ზე როგორც ჩამოსატვირთი.
ახლა გადავდივართ Outpost 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) | ქვედა ჩარჩოების რაოდენობა | როგორMany Subframes უნდა იყოს მთლიანობაში |
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) | ბოძების ყუთი: მარცხენა | მიცემს მარცხენა დასაწყისს (პიქსელებში) Bounding Box-ის. |
0x0008 | uint(32) | ბოქსის საზღვრები: ზედა | მიანიშნებს Bounding Box-ის ზედა საწყის نقطას (პიქსელებში). |
0x000c | uint(32) | ბრძოლას ყუთი: სიგანე | მიუთითებს Bounding Box-ის სიგანის (პიქსელებში) ზომას. |
0x0010 | uint(32) | შეფუთვის ყუთი: სიმაღლე | მიანიშნებს ბაუნდინგ ბოქსის სიმაღლეს (პიქსელებში). |
0x0014 | uint(32) | შედარება: X | შეფუთავს ანიმაციის ჰორიზონტალურ ცენტრს |
0x0018 | uint(32) | რაოდენობა: Y | აჩვენებს ანიმაციის ვერტიკალურ ცენტრს |
0x001c | uint(32) | Unknown 2 | უცნობი ინფორმაცია |
0x0020 | uint(32) | ფრეიმების რაოდენობა | მაჩვენებს, რამდენი ანიმაციის კადრია ამ ანიმაციაში ჩართული |
0x0024 | uint(32) | חל windows-ების რაოდენობა | მიანიშნებს, რამდენი ფანჯარა უნდა გამოვიყენოთ ხატვის დროს |
აუცილებელი მონაცემები ზედა ფენის, ანიმაციის, ძირითადად ადმინისტრაციული მონაცემებია - Boundingbox აღნიშნავს ავტომობილის/შენობის მარკირების კოორდინატებს, როდესაც ის შერჩეულია და ასევე მიუთითებს, რომელი ტერიტორია უნდა იყოს დააჭერადი.
Offset ძირითადად განსაზღვრავს "ნულოვანი წერტილი"; წერტილი, რომელიც უნდა იყოს გათვალისწინებული ან უნდა იყოს გამოტანილი თამაშის შიდა კოორდინატებთან. უფრო მათემატიკურად რომ ვთქვათ: offset აქ განიხილავს კოორდინატების წარმოშობას.
Windows-ების შემთხვევაში, ისევე როგორც offset-ის შემთხვევაში, თითოეულ (დაახლოებით თითოეული Windows-ისთვის) 4 uint(32)-წარმოებულ მნიშვნელობებს მოიცავს, რომლებიც განსაზღვრავს ტერიტორიას, რომელიც ინდივიდუალური სუბფრეიმებისთვის გამოყენებადია. Windows-ის გარეთ, თუ ეს bitmap-ისთვის შესაბამისია, დახატვა არ უნდა მოხდეს.
ჩარჩო
მისამართი | 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) | optional 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) | საბჭო-იდენტიფიკატორი | მიუთითებს, რომელ სუბფრეიმში ვიმყოფებით |
0x0004 | sint(16) | ოფსეტი - ჰორიზონტალური | განსახვედრებს, სად უნდა განთავსდეს სუბფრეიმი ჩარჩოს შიგნით, ან რამდენი პიქსელი უნდა გადავწიოთ ბითმაპი ჰორიზონტალურად |
0x0006 | sint(16) | ოფსეტი - ვერტიკალური | ბრძანება, სად უნდა მოთავსებულიყო სუბფრეიმი ჩარჩოს შიგნით, ან რამდენი პიქსელით უნდა გადაიდოს ბიტმაპი ვერტიკალურად |
ამით შეგვიძლია შევკრიბოთ როგორც ინდივიდუალური ფრემები, ისე სრული ანიმაციები, რაც ამ კომპლექსური ანიმაციის, ინდექსით 500, მაგალითზე არის დემონსტრირებული
ანიმაცია 500
ანიმაცია 500 აჩვენებს, როგორ აუღებენ პლიმუთის ტრანსპორტერს, რომელიც ჩვეულებრივი მადნით არის დატვირთული. ეს არის ერთ-ერთი რამდენიმე ანიმაცია, რომელიც იყენებს ფანჯრის ფუნქციონალობას.
და ასე შეიძლება შეეწყოს სრული ანიმაცია.
სამწუხაროდ, არსებობს კიდევ ერთი პრობლემა ზედა დატვირთვის ფანჯარასთან, რადგან აქ შესაბამისი ბიტი გრაფიკული ტიპის ინფორმაციაში არ არის დაყენებული.
აქ არის კიდევ რამდენიმე მშვენივრად ანიმირებული სპრაიტი თამაშიდან: