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

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.

(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)

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 roof5) Select all remaining groups and scale XYZ all as 0.025 to fit Dark Omen size6) Save as .ms3d and Export as .obj 7) To merge all groups into to one -> Open new .obj in Fragmotion and Edit -> Deselect all8 ) 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 new10)Export as .obj11) 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)

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.exe3) 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.

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.

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.

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

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.

« 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)

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 DXT12. unk_word_00 and unk_word_01 should be used somehow to handle shifts in rect. images3. 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!

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.