[PC][Red Alert 2]Chuyển đổi mấy file GIF "NHÀ" vào game.


- Cái tiêu đề hơi khó hiểu, nhưng cụ thể là tôi có thấy ảnh GIF 1 cái nhà rất đẹp. Nhưng nó chỉ được share dưới dạng file Animation là GIF không phải SHP nên cần tách các frame của nó ra rồi Import lại tạo thành file SHP.
- Trong 1 topic bên gamevn tôi có thấy Naittitan post cái ảnh này.

- Thực sự cái nhà này rất đẹp, nhìn nó đầy đủ mọi anim, từ buildup, hiệu ứng hoạt động, lúc bị hỏng, và cả hình ảnh đầy đủ cho màn tuyết lẫn màn thường.
- Nhưng vì nó được chia sẻ ở dạng GIF nên không thể add thẳng vào game.
- Bây giờ mình cùng chuyển đổi nó qua SHP.
- Trước khi thực hiện được việc này cũng yêu cầu bạn đã phải biết cách thêm nhà mới vào game, vì khi viết bài này tôi không thể hướng dẫn lại toàn bộ mọi thứ được.
- Trước tiên ta phải fix lại một chút để khi vào game xây nhà không bị lệch.
  • Với file GIF được chia sẻ ở trên nếu cứ tách frame ra rồi Import lại thành một file SHP thì khi vào game xây nó sẽ bị lệch, tức là cái cột này kích thước thật chỉ là 2x2 nhưng nếu để 2x2 thì vào game xây nó sẽ bị che mất phần chân cột.
  • Có thể fix mẹo bằng cách để nhà kích thước 4x4
- Cần Photoshop. PTS phải chạy được File --> Script --> Load files into stack.
- Không bắt buộc phải chạy được mới có thể làm được mà chỉ đơn giản là giảm các thao tác, đỡ mất thời gian mà thôi.
- Các bản PTS Portable thường không chạy được nên cần có bản PTS Full.
- Đầu tiên dùng phần mềm được chia sẻ ở TÁCH, PHÂN TÍCH FILE GIF để tách ra 180 frame.
- Mở file số 27 bằng PTS.
- Nhấn menu View --> New Guides. Đánh dấu chọn Horizontal rồi OK.
- Sử dụng công cụ Move (Phím tắt V) kéo thanh Guide để chạm vào phần bên kia của chân cái cột
Dùng công cụ Move để di chuyển thanh Guide
Kéo thanh Guide chạm vào phần bên kia chân đế
Tạo vùng chọn như hình sau khi đã thiết lập vị trí thanh Guide
Nhấn CTRL C rồi CTRL SHIFT N. Sau đó x2 chiều cao của file mới tạo. Height=185x2
Lấy màu nền ảnh gốc để phủ lên nền file mới tạo.
- Làm đến bước này, save file này thành file frame 181.png để chung thư mục với 180 frame kia.
- Trong PTS vào File-->Script-->Load files into stack. Chọn thư mục chứa 181 file và load cùng lúc. PTS sẽ load ngược các frame từ 181->Layer1, 180->Layer2,......
- Nhấn chọn vào tất cả các layer trừ layer1 tức trừ ảnh 181. Rồi nhấn Menu Layer-->Arrange-->Reverse. Để PTS đảo lại các frame cho đúng thứ tự còn layer 181 thì cứ để nguyên ở vị trí số 1.
- Nhấn chọn Window-->Timeline, để xuất hiện công cụ giúp làm file ảnh GIF.
- Nhấn vào nút ở vị trí như hình chọn Make Frames From Layers để PTS tự động load từng Layer tạo thành từng Frame.
- Bôi đen toàn bộ các frame và set time cho chúng.
- Các Layer có một số layer bị lệch với khoảng trắng ở cả trên và dưới.
- Lựa chọn cùng lúc các layer bị lệch như thế này (Chỉ chọn các layer bị lệch). Rồi giữ CTRL SHIFT kéo tất cả lên chạm trần nhà. Các layer sẽ được kéo cùng lúc, không cần làm từng layer.
Chỉnh lại vị trí các layer lệch
- Nhấn chọn Frame1, rồi nhấn nút góc phải của công cụ Timeline chọn Select All để chọn toàn bộ các Frame. Nhìn sang bảng layer, tắt rồi bật lại con mắt của Layer số 1 tức ảnh 181.
- Mục đích là để toàn bộ các frame sẽ xuất hiện ảnh nền 181. Nó sẽ phủ đen các khoảng trắng thừa khi extract ra gif.
- Sau đó nhấn Save for web lựa chọn như hình rồi lưu lại thành file GIF. Dùng phần mềm bên dưới tách ra lại thành các frame PNG mới. Và dùng các frame này để import thành SHP.
Ô colors để 256 màu cũng được.

I. TÁCH, PHÂN TÍCH FILE GIF

- Trước hết tải phần mềm để Extract các frame của GIF ra PNG : Link. Link trang chủ Click here
- Tải về giải nén ra được 1 file chạy duy nhất.
- Kéo thả file GIF vào file chạy này thì nó sẽ extract tất cả các frame ra PNG. Ta có 180 frame
Click vào hình để phóng to
- Bây giờ cùng nhìn các frame và phân tích nó xem frame này là thuộc về cái gì.
- Trong hình trên mình extract từ file 0000.GIF ra frame bắt đầu là 000000001.png
- Frame 1 đến 27 là frame BuildingUp trên nền "Không phải tuyết".
  • Các bạn biết rằng 1 công trình nhà cửa trong game thì có những file dành cho màn chơi có tuyết (xAxxxxx), sẽ thấy tuyết phủ lên trên công trình và những file dành cho những màn chơi còn lại. Như đồng cỏ, sa mạc,......(xGxxxxx)
- Frame 28 đến 58 là frame Anim trên nền "Không phải tuyết".
- Frame 59 đến 90 là frame Anim khi bị hỏng (Anim Damage) trên nền "Không phải tuyết".
- Frame 91 đến 117 là frame BuildingUP trên nền tuyết.
- Frame 118 đến 148 là frame Anim trên nền Tuyết.
- Frame 149 đến 180 là frame Anim khi bị hỏng trên nền Tuyết.
- Về cơ bản 1 công trình thường có những file
  • File hình ảnh cái nhà sau khi xây xong
  • File hiệu ứng BuildUp (Cái nhà từ từ hình thành, mọc lên như thế nào. Nếu không có file này thì nhà các bạn xây lên có thiết lập code bên rules hay art kiểu gì cũng không bán được nhà.)
- File hiệu ứng. File này có nhà có 1 nhà có 2 có 3 hay 4 cũng có, hoặc chả có cũng được không sao. Với cái nhà này của chúng ta thì hiệu ứng đó chính là cái quả cầu ở trên nó sẽ nhấp nháy nhấp nháy khi nhà hoạt động.
II. TẠO SHP

Bước 1: Tạo file hình ảnh cái nhà.
- Trước hết copy frame số 27 và frame số 59 past ra 1 folder nào đó đổi tên thành 0000 và 0001.Frame 27 là khi cái nhà buildup xong, có nghĩa lúc đó cái nhà đã hoàn thành. Ta lấy đó làm file hình ảnh nhà. Frame 59 là frame khi cái nhà bị hỏng.
- Tiếp nữa lại copy chính 2 cái 0000 và 0001 past thành 2 cái mới rồi đổi tên thành 0002 và 0003, để làm frame shadow. 0002 giống 00000003 giống 0001
- Mở OS SHP Builder (Google thần công bạn nhé). Phiên bản dùng trong hướng dẫn này là 3.38 beta 20.
- Chọn File --> Import --> Image->SHP. Chọn như trong hình
Tab Main
Tab Colours
- Nhấn OK ta sẽ được 1 file SHP mới với 4 frame, 2 frame cuối sẽ màu trắng đen (Options --> Shadow phải được đánh dấu) đó là 2 frame shadow.
- Nhấn chọn công cụ, nhấn vào nền đen của file SHP ta được màu 58.
- Sau khi đã chọn được màu 58 thì vào Drawing --> ClolourReplace
- Nhấn chọn vào màu ở vị trí đầu tiên (Màu số 0)
- Ở bên cột màu bên phải ta sẽ thấy màu 58 sẽ được thay thế bởi màu số 0.
- Nhấn chọn Ok, ta sẽ thấy nền sẽ thành màu số 0.
- Lưu file SHP này lại với tên NGWBUILD1.
  • Tại sao là NGWBUILD1 mà không phải NEWBUILD1
  • Vì game mặc định nhận ký tự G ở vị trí thứ 2 của tên là các file dành cho màn chơi không phải tuyết
- Ngay bây giờ đã có thể vào game và xây cái nhà đó, nó cũng hiện hình rồi. Chỉ có là không có hình ảnh buildup và không có anim nhấp nháy ở cái cột, và không bán được nhà (Do không có buildup).
- Như trong hình mình xây cái nhà nhưng bụp 1 cái nó xuất hiện và không bán được. Khi bắn thì khi máu vàng nhà đã chuyển sang hình ảnh bị hỏng.
- Code add tạm để test như sau (Chú ý chọn màn chơi nào không phải tuyết nhé, vì ta mới chỉ có file xGxxxx chưa làm file xAxxxx)
- Khai báo code vẫn để NAWBUILD1 được nhé vì game tự nhận diện NGWBUILD1.
- Rulesmd.ini
Thêm vào danh sách các nhà
[BuildingTypes]
xxx=NAWBUILD1
Thêm Code dưới vào cuối file rulesmd.ini
[NAWBUILD1]
UIName=NOSTR:Test1
Name=Test
BuildCat=Combat
TechLevel=1
Strength=750
Powered=true
Adjacent=20
Armor=concrete
Sight=50
Owner=British,French,Germans,Americans,Alliance,Russians,Confederation,Africans,Arabs,YuriCountry
AIBasePlanningSide=0
Cost=1
Points=30
Power=-10
Crewed=yes
Capturable=false
Explosion=TWLT070,S_BANG48,S_BRNL58,S_CLSN58,S_TUMU60
Nominal=yes
ThreatPosed=1
AIBuildThis=no
ChargedAnimTime=1
DebrisAnims=DBRIS1LG,DBRIS1SM,DBRIS2LG,DBRIS4LG,DBRIS4SM,DBRIS5LG,DBRIS5SM,DBRIS6LG,DBRIS6SM,DBRIS7LG,DBRS10LG
MaxDebris=1
MinDebris=1
BuildTimeMultiplier=0.01
- Artmd.ini
[NAWBUILD1]
Cameo=NAWBUILD1ICON
Remapable=no
Foundation=4x4
Height=12
DemandLoadBuildup=true
FreeBuildup=true
NewTheater=yes
Bước 2: Tạo file buildingup.
- Để thấy cái nhà được xây lên một cách từ từ, uyển chuyển không phải kiểu bụp 1 cái xuất hiện.
- Để có thể bán được nhà (Ở đây có một mẹo với những nhà không thể tìm được file buildingup, không tự thiết kế được 1 file buildingup thì kiếm 1 file bừa nào đó mà add nó thành buildingup là vào game xây nhìn hơi bựa nhưng bán được).
- Công đoạn này vì sẽ có nhiều frame nên việc đổi tên từng frame khuyến cáo các bạn sử dụng phần mềm hỗ trợ cho nhanh. Ở đây tôi dùng Better File Rename 5
Click vào ảnh để phóng to
- Như đã phân tích ở Phần I. Các bạn copy file ảnh từ số 1 đến số 27 ra 1 folder rồi đổi tên thành 0000 0001 0002....0026 (27 ảnh từ 0 nên kết thúc ở 26).
- để tạo frame shadow thì chỉ việc copy 27 cái frame kia rồi đổi tên thành 0027....0053 rồi ném chung 1 folder với các frame từ 0000. Ta có tổng cộng 54 frame từ 0000 đến 0053. Frame 0027 giống hệt frame 0000 nhưng sẽ hiển thị là màu trắng đen khi Import vào OS SHP Builder.
Click vào hình để phóng to
- Import và đổi màu nền y hệt bước 1.
- Ta được 1 file SHP với chuyển động buildingup.
- Bây giờ đặt tên nó là NGWBUILD1MK, copy vào thư mục game. Thêm dòng Buildup=NAWBUILD1MK vào code của artmd.ini rồi vào game test.
- Bạn sẽ thấy nó trồi lên từ từ, và bạn có thể bán được nó rồi.
- OK. Xong hiệu ứng buildup.
Bước 3: Tạo file animation
- Tạo file để cái quả cầu trên đầu nhấp nháy.
- File này sẽ bao gồm cả Anim khi nó lành lặn và khi nó bị hỏng vào chung 1 file SHP.
- Copy ảnh số 28 đến 90 đổi tên 0000 đến 0062.
- Tiếp tục vẫn chính những ảnh đó đổi tên từ 0063 đến 0125. Để tạo frame shadow.
- Copy vào chung folder với các ảnh từ 0000 ta có từ 0000 đến 0125 (126 frame).
- Import và Replace màu nền y hệt 2 bước trên.
- Save lại với tên NGWBUILD1_A
- Chú ý frame từ 31 đến 62 là frame anim khi bị hỏng.
- Khi dùng OS SHP Builder. Các con số hiển thị ở khung Frame Control trừ đi 1 mới ra số của frame đó. Vì các frame bắt đầu từ 0 nhưng trong mục Frame Control nó hiển thị từ số 1.
- Chỉnh code artmd.ini lại như sau.
[NAWBUILD1]
Cameo=NAWBUILD1ICON
Remapable=no
Foundation=4x4
Height=12
Buildup=NAWBUILD1MK
DemandLoadBuildup=true
FreeBuildup=true
NewTheater=yes
ActiveAnim=NAWBUILD1_A
ActiveAnimDamaged=NAWBUILD1_AD
ActiveAnimZAdjust=-100
[NAWBUILD1_A]
Normalized=yes
Surface=yes
Start=0
LoopStart=0
LoopEnd=30
LoopCount=-1
Rate=200
DetailLevel=1
NewTheater=yes
[NAWBUILD1_AD]
Image=NAWBUILD1_A
Normalized=yes
Surface=yes
Start=31
LoopStart=31
LoopEnd=62
LoopCount=-1
Rate=200
DetailLevel=1
NewTheater=yes
- Bên rulesmd.ini thêm 2 dòng sau vào [Animations]
xxx=NAWBUILD1_A
xxx=NAWBUILD1_AD
- xxx là số thứ tự của bạn
- Nhìn code art bên trên bạn thấy LoopStart LoopEnd đó là số frame bắt đầu và kết thúc hãy điền cho đúng.
- Dòng LoopCount=-1 là nó cứ lặp đi lặp lại mãi các frame từ Start đến End. Bạn thử để bằng 1 thì nó sẽ nhấp nháy đúng 1 lần rồi thôi.
- Dòng Rate là thực hiện các frame từ Start đến End trong khoảng thời gian bao nhiêu lâu. Các nhà khác tôi cũng thấy để 200, hiệu ứng thế là đẹp rồi, thử để lên cao xem sẽ thấy cái quả cầu nhấp nháy như một con điên =))
- Ở mỗi khóa đều có dòng NewTheater=yes. Phải có dòng này thì game mới chịu phân biệt file xAxxxx cho màn có tuyết và file xGxxxxx cho màn thường.

  • Mẹo. Nếu bạn chỉ có file xGxxxxx cho công trình ko có file cho màn tuyết thì bạn bỏ dòng này đi. Nó sẽ load xGxxxxx cho cả 2 loại màn chơi. Không sợ công trình bị tàng hình.
- Vậy là ta hoàn thành xong hoàn toàn các file cho cái nhà này hoạt động bên màn chơi "Không có tuyết".
- Với các frame tuyết các bạn làm hoàn toàn tương tự, chỉ cần sau khi xong đặt tên là NAWBUILD1, NAWBUILD1MK và NAWBUILD1_A rồi ném vào thư mục game. Không cần thêm code gì vào art hay rules nữa. Vào game chọn màn chơi tuyết rồi xem.
- Nhà có chức năng gì thì tùy các bạn edit nhé.
- Thông qua bài viết này các bạn cũng biết 1 công trình trong game thông thường gồm những file nào.
- File cho màn tuyết.
  • NAWBUILD.SHP (Gồm 1 frame nhà lành lặn và 1 frame lúc hỏng, 2 frame y hệt làm shadow)
  • NAWBUILDMK.SHP (BuildingUp)
  • NAWBUILD_A.SHP (Animation. Gồm toàn bộ frame hiệu ứng khi lành và hỏng. Lành để trước hỏng để sau.)
- File cho màn thường
  • NGWBUILD.SHP
  • NGWBUILDMK.SHP
  • NGWBUILD_A.SHP
- Còn vấn đề cuối cùng này nếu bạn không làm thì vào game cho dù quân bạn màu gì thì mua cái nhà này nó cũng ra màu tím =)). Như một số cái ảnh với video ở trên của tôi bạn thấy mặc dù tôi quân Yuri màu đỏ nhưng mua nhà toàn ra màu tím :v
  • Vấn đề này chỉ là Replace màu, bạn Replace tất cả màu tím trên thân cái nhà thành màu đỏ số 16, chỗ nào tím đậm (thể hiện sự đổ bóng) thì có thể thay thành màu số 26 hay 27 gì đó, miễn là màu trong dải màu đỏ. Vào game quân màu gì mới ra nhà màu đó.
- Còn mấy thứ nữa tôi nghĩ khi làm các bạn sẽ nhận ra thôi.


-- HẾT --

Comments