August 16, 2018, 06:27:21 PM

Username
Password

Pages: [1]   Go Down
Print
Author Topic: Warhammer Age of Reckoning Modding  (Read 14411 times)
0 Members and 1 Guest are viewing this topic.
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« on: March 20, 2016, 08:16:21 PM »

Download this mod folder containing tools and guide ->

https://www.dropbox.com/s/1lso7fl8i6rq4q7/WARModTools.zip?dl=0


Warhammer Online Age of Reckoning Modding Guide

1) Download the new Client and install

http://www.returnofreckoning.com/forum/viewtopic.php?t=16&sid=5ef23328356f02d924f8c39d1d4c53bd

Use Mozilla FireFox with Mega addon
mega:#F!VhQzBCbL!lPx3fe1a3k9MkP1L7hdpqQ


2) Download EasyMYP Release_v2.6.rar with Hash_v1.6.rar (extract into new fodler called HASH inside EasyMYP, as hashes_filename.txt is the dictionary to give real names to files. Run the program and File -> Select Extraction Folder -> Then select Archive and Open Archive art.myp and let it load for a few mins. Then view Archive File List to see legible file names. File -> Extract All will create a new art inside your chosen extracted folder. Art\assetsdb\textures contains all scenery model .stx images (simply rename them to .dds) and Art2\assetsdb\fixtures has all the scenery .nif 3d models. Art2\assetsdb\charmesh has all the 3d character .geom models

https://code.google.com/archive/p/easymyp/downloads

Newer version but more for Star Wars SWTOR game and dictionary
https://github.com/WarEmu/EasyMYP


4) I have a VB.net program that renames all .stx files into .dds and then matches them with their correct .nif scenery model and places them all into a new folder with the same shared name. For example it will create a new folder named fi.0.0.ch_altar_bones that will contain fi.0.0.ch_altar_bones01.nif and any .dds images with the similar name such as fi.0.0.ch_altar_bones01_spec.dds, fi.0.0.ch_altar_bones01a_base.dds and fi.0.0.ch_altar_bones01b_base.dds which saves searching 10,000 files, to pair models with thier textures.


5) Open .nif files with NifSkope and export them as .obj to then open in MilkShape3d or Blender and apply their .dds image textures, that will thankfully still auto map correctly.

https://github.com/jonwd7/nifskope/releases/tag/v2.0.dev4#downloads_2_0_dev4
https://github.com/w4kfu/waronline_fun/tree/master/Toolz/art/geom

https://github.com/w4kfu/waronline_fun

https://github.com/w4kfu/waronline_fun/blob/master/Toolz/art/geom/geom_hash_filelist.txt

(I also had to download six.py as binary.py complained it wasn't there but probably just me not knowing much)


7) Using a command prompt CMD, with CD\ and CD navigate to C:\Python26\Lib\idlelib and type

geom2obj.py fg.0.0.cre_lion_white.geom    

or which ever model you wish to convert and it will create a new test.obj to rename, otherwise the next converted file will overwrite it. Use MilkShape3d or Blender to import the new .obj files.

Unfortunately, the 3d character models like fg.0.0.cre_lion_white.geom do not have matching named textures in the Art\dds extration folder, since lion is 3D70774E_9C84D9617D8A159D.dds (I haven't found a way to make them have real file names yet). Sadly their textures do not auto map in MilkShape3d or Blender, so probably easier to use the Sundering Total War mod if you need them outside of Warhammer Online, as they have already merged most Warhammer Online character models with Total War skeleton/bones and animations. ***UPDATE** Use Machinima Studio, see posts below***



3d Character models geom files ->
\Art2BEST\assetdb\charmesh

Scenery Textures
\Art2BEST\ArtBEST\art\dds

Terrain Textures
\Art2BEST\ArtBEST\art\textures\terrain
« Last Edit: May 02, 2016, 10:31:25 AM by olly » Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« Reply #1 on: March 22, 2016, 07:56:52 AM »

To put extracted models into Dark Omen ->

WAR House to Dark Omen   

1) Export .nif as .obj (open nif and immediately export without selecting any part, so it exports all of it)
2) Conver all .dds textures by opening in PhotoShop and then saving as .bmp. Then open in Irfan view and resize to 128x128 and decrease colour to 256 colours. Save them all into B1_01\Texture folder.
3) Open the .obj in MilkShape3d and swap Materials for the converted .bmp Textures in

C:\Program Files (x86)\Dark Omen\GameData\1pbat\B1_01\TEXTURE

4)  Delete the Group "Editable" (used for long range camera), as it covers the roof
5)  Select all remaining groups and scale XYZ all as 0.025 to fit Dark Omen size
6)  Save as .ms3d and Export as .obj
7)  To merge all groups into to one -> Open new .obj in Fragmotion and Edit -> Deselect all
8 )  Right click on Groups and create a new group, then Select All and Add Selection to the new Group
9) Delete the old groups to only keep the new
10)Export as .obj
11) Import .obj into Blender and Export as .m3d

Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« Reply #2 on: March 23, 2016, 11:37:34 PM »

Machinima Studio is good for previewing the .geom Character mesh models and should export with UV mapping (if you pay for premium)


* MachinimaStudio.jpg (140 KB. 1024x726 - viewed 548 times.)


Unfortunately it can't see the Character's .diffuse textures, only the usual scenery and weapon textures, so far.

Also been testing 3d Ripper DX that unfortunately didn't work for WAR (only original Warhammer Online). However, we found Ninja Ripper can extract everything we need.

1) Copy the x86 version of Ninjaripper -all the files- in Warhammer Online main folder.
2) Have ninja ripper open and the exe connected to the RoRLauncher.exe
3) Change the setting from intruder to D3D11Wrapper. (If pressing F9 in-game doesn't rip, then switch to D3D9Wrapper)
4) Run.
5) Log-In, connect, enter the game.

http://cgig.ru/en/2012/10/ho-to-use-ninja-ripper/

Smiley


* NinjaRipper.jpg (153.19 KB. 732x679 - viewed 327 times.)



* DwSlayer01.jpg (183.33 KB. 1024x721 - viewed 505 times.)



***UPDATE***

W4kfu kindly responded saying that he might create his diffuse_parser.py into a converter which  would be great, since WAR has only opened up certain areas, so unable to get the Dragon Ogres etc.


https://github.com/w4kfu/waronline_fun

« Last Edit: March 29, 2016, 01:07:03 PM by olly » Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« Reply #3 on: April 10, 2016, 11:16:54 PM »

We have found that some converted scenery objects don't run in CPU mode and only 3d such as the large Windmill. I recently had the same problem with the Empire Wagon, that doesn't use too many polygons (since we thought CPU mode might have a max polygon limit) but unfortunately it still failed to working CPU and only 3d mode. I then removed all doubles in Blender and then exported and it ran fine in both CPU and 3d mode. I will do the same with the windmill to test although it has multiple meshes to join and then remove doubles, unlike the wagon that was just 1 mesh.


* EmWagon01JoinedCPU&3D.jpg (141.5 KB. 640x480 - viewed 477 times.)


Smiley

Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
Joeshmoe
Troll
*
Offline Offline

Posts: 3


View Profile
« Reply #4 on: April 11, 2016, 07:10:45 PM »

Question Olly, when using ninja ripper how do you deal with the dark textures? I'm no texture expert so thats why I'd like to rip them. Is there a way to get normal looking textures from WAR? Again im a texture noob.. maybe I'm just missing something here.

Great work though on this stuff!!
Logged
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« Reply #5 on: April 11, 2016, 07:56:39 PM »

Hi,

I'm helping  Pyrosh from the Sundering Total War Mod and WhiffofGrapeShot & Kallaikoi from the End of Times Total War mod, who say

"those textures have the specular overlayed making them super dark and needing to be cleaned up".

However, W4kfu is extending his diffuse_parser.py into a full .diffuse to .dds converter, hopefully in the next few weeks. So you won't have to use ninjaripper anymore, just his converter.


* ChaosTexture.jpg (79.04 KB. 514x512 - viewed 356 times.)


Smiley

« Last Edit: April 11, 2016, 08:08:14 PM by olly » Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
Joeshmoe
Troll
*
Offline Offline

Posts: 3


View Profile
« Reply #6 on: April 12, 2016, 12:19:49 AM »

Thanks Olly. I found a simple enough method to get those textures to look 90-95% as they should. That sounds awesome that W4kfu is making a converter. His efforts will not go to waste when its completed  Grin
Logged
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« Reply #7 on: April 19, 2016, 11:27:55 PM »

Empire Logpile01 in CPU mode


* EmLogpile01CPU.jpg (141.71 KB. 640x480 - viewed 413 times.)


Empire Logpile01 in 3d mode


* EmLogpile013d.jpg (127.32 KB. 640x480 - viewed 400 times.)

Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« Reply #8 on: April 20, 2016, 10:22:10 PM »

Empire Watch Tower in CPU mode

* EMWatchTower01CPU.jpg (145.24 KB. 640x480 - viewed 436 times.)


Empire Watch Tower in 3d mode

* EMWatchTower01.jpg (135.12 KB. 640x480 - viewed 387 times.)

Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
EvgenS
Orc Boy
*
Offline Offline

Posts: 42



View Profile
« Reply #9 on: April 21, 2016, 08:07:01 PM »

Looks really nice!
Logged

Dark Omen Reborn remake project
https://blackdogs.atlassian.net/wiki/display/DOR/Dark+Omen+REBORN

"- Our steam tank has been damaged, can you help us?
- I'm not a mechanic..."
https://youtu.be/Xg6zzI4BxoU?t=27m6s
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« Reply #10 on: April 23, 2016, 02:59:52 PM »

Thanks!

Smiley

Dwarf Building 01 CPU

* DwBuilding01_CPU.jpg (155.96 KB. 638x480 - viewed 356 times.)


Dwarf Building 01 3d

* DwBuilding01_3D.jpg (119.99 KB. 638x478 - viewed 360 times.)


Dwarf Building 01 3d

* DwBuilding01_3Da.jpg (135.45 KB. 639x479 - viewed 380 times.)


Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
Joeshmoe
Troll
*
Offline Offline

Posts: 3


View Profile
« Reply #11 on: May 13, 2016, 11:55:15 PM »

Any news on the diffuse parser? His git has been inactive for a couple months. Maybe its impossible?
Logged
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« Reply #12 on: May 14, 2016, 12:19:27 PM »

Unfortunately he hasn't replied to my emails but thankfully there is another Forum member on RoR called Drops who has created his own program but hasn't released it yet.

https://www.returnofreckoning.com/forum/viewtopic.php?f=8&t=13263&sid=681a8ff7d9c8a555c8e5b25a4c8c95b8

So I've also asked him to let me know when it is ready to download and use. As I say to WhiffofGrapeShot (End Times Total War modder, we can always hire a programmer to do it for us if necessary, since it is all based on DXT1 and DXT5 compression.

Smiley
« Last Edit: May 14, 2016, 01:45:22 PM by olly » Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
olly
Global Spokesperson
*
Offline Offline

Posts: 1870



View Profile
« Reply #13 on: June 06, 2016, 10:05:20 PM »

Massive thanks to our own modder Aldark, as we now have a partial converter that can successfully extract any square diffuse textures but struggles with any rectangle images, as some of the image gets misaligned.

Discoveries:
1. Rectangular files are encoded with DXT1
2. unk_word_00 and unk_word_01 should be used somehow to handle shifts in rect. images
3. http://forum.xentax.com/viewtopic.php?f=21&t=3170&start=15 contains incorrect hypothesis that "Each word is the amount to make the width, height of the mipmap to be powers of 2 texture." - that is not true, e.g. file 2DC30914_3CFEA094AD011110.diffuse (contains w = 0x0100, h = 0x0088, uw00 = 0x0000, uw01 = 0x0114, but if we add h + uw01 we get 0x19C, which is not power of 2).


The problem also to calculate proper offset to concrete mipmap's data, because "offset" field seems to be incorrect for rect. images. It appears, rectangular image contains of several smaller images with different sizes, which are separated with black squares

i.e. He was able to extract part of 2DB15207_0F5EED43122F922F.diffuse largest image (176 x 256). This subimage has sizes 172x128, other parts of image are shifted.

Playing around in photoshop and manually shifted lines around made an improvement, so eventually we could get full image but the problem is that this image is 172 x 252 (not 176 x 256 as mipmap's header promised) and shift is not constant. That is why he believes that rectangular images are divided to some kind of subimages with black squares between them to complement image to 176x256 or 256x256 size.

We are currently testing an updated version that allows manual setting of the width and offset (rotation) for rectangles that should help a little.

However, still amazing progress as there are so many fantastic new Square textures! Smiley

Snotling Square 512x512

* Snotling.jpg (81.14 KB. 512x513 - viewed 376 times.)


Banshee Rectangle with misaligned rows 256x256

* BansheeRectangle.jpg (24.77 KB. 256x255 - viewed 291 times.)


Rhinox manually realigned in Paint program

* RhinoxRealigned.jpg (87 KB. 1010x280 - viewed 289 times.)


« Last Edit: June 08, 2016, 05:56:51 PM by olly » Logged

and back in Nuln, the ageing Graf Berhardt smiled his secret smile of pride whenever he heard the latest tales of his eldest son's ever growing chain of glorious victories -(sothr manual)
Drops
Troll
*
Offline Offline

Posts: 1


View Profile
« Reply #14 on: June 08, 2016, 09:17:24 PM »

Hey Olly,

I'm still working on my little tool, but unfortunately I'm stuck on this very same issue you're having here. To my current understanding it's not possible to extract most of the DIFFUSE textures properly, because...they are simply missing data (entire DXT blocks to be more specific). If you have 512x512 DXT1 texture with 10 mip maps, it requires exactly 174,944 bytes to store all the data (along with DIFFUSE file header). If size is less than that it looks like this:



Notice two things here:

1. The yellow row of pixels at the bottom are the missing blocks. This particular texture is missing 190 4x4 blocks in its largest mip map and some more in two lower ones as well.
2. Texture is distorted in the middle. This suggest the place these blocks are missing from (not necessary in contiguous blob of pixels though).

Having said that, I still have absolutely no idea how to get this data back. Is this some form of compression? Did they remove random pixels to protect textures from extracting? If so, where the hell are they...

2. unk_word_00 and unk_word_01 should be used somehow to handle shifts in rect. images

This I was able to figure out at least. unk_word_00 and unk_word_01 are offsets (on x and y axis respectively) in pixels from texture's top left corner. For some weird reason Mythic decided to chop up certain textures into multiple pieces and this is the effect of this operation. Here's one example:



Overall dimensions of this texture are 512x512, but the largest mip map has only 176x260 pixels and the offsets are (336, 252). By default all texture data will start at (0, 0), so basically you need to take every pixel and move it by this amount on x and y. I've tested this with converted model and this is exactly where UV coordinates are for this particular piece.
Logged
Pages: [1]   Go Up
Print
Jump to: