Page 1 of 2

Assassin Creed (Origins / Odyssey / Valhalla) batch tool

Posted: Fri Apr 03, 2020 10:14 am
by erik945
Tools for batch unpacking models and textures Assassin Creed Origins (Odyssey)

Supports:
Geometry
Multiple UV
Textures

Do not support:
Skin
Animations

Using:


1. Edit the unpacker_forge.py script:
In line 9, specify the path to the game directory
path_Directory = 'G:\\SteamLibrary\\steamapps\\common\\Assassins Creed Odyssey'

In line 19, specify the path to quickbms_4gb_files.exe
The string should look like
str__ = '\"G:\\quickbms\\quickbms_4gb_files.exe\" -K -d '

In line 20, specify the path to the script AC_O_Odyssey_UPD2a.bms
The string should look like
str__ = str__ + '\"G:\\SteamLibrary\\steamapps\\acu\\AC_O_Odyssey_UPD2a.bms\" '

Execute the script. It will unpack the forge game archives

2. Edit the unpacker_forge.py script:
You need strings
game = "acod" # for AssassinsCreedOrigins - "acor", AssassinsCreedOdyssey "acod". Defines the format of the generated files.
input_path = 'G:\\SteamLibrary\\steamapps\\common\\sorted_all' # path to folder with raw files
output_path = 'G:\\AssassinsCreedOdyseyUNP' # - path to folder for unpacked files
bms_binary_path = 'G:\\quickbms\\quickbms_4gb_files.exe'
script_path = 'G:\\SteamLibrary\\steamapps\\acu\\assassin_creed_raw.bms'
export_without_sort = False # If you want to disable file sorting (unzip all), enter True
export_mesh = True
export_textures = False
replase_files = False # (if False - if the names match, the files will be renamed, if True - replaced)

If export_without_sort = False, you can edit the sort_mesh and sort_tex functions to select the necessary files

After execution, the script will unpack the raw files obtained in the previous step. Also, some files will be joined.
Now you can copy scripts from noesis_plugins to "noesisv\plugins\python" and work with the resulting files.

UPDATE:
2020.04.15
- add parametr for additional unpack some files
- change folder names


Good luck!



Credits:

Aluigi (http://aluigi.altervista.org/quickbms.htm)
- for QuickBMS and assassin_creed_raw.bms script


Zaramot (memberlist.php?mode=viewprofile&u=32230)
- for AC_O_Odyssey_UPD2a.bms script


Pineapples721 (memberlist.php?mode=viewprofile&u=65770 , http://t-poses.com/bs/)
- for some hints about file formats


Rich Whitehouse (https://richwhitehouse.com/index.php?co ... ojects.php)
- for Noesis

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Sun Apr 12, 2020 12:13 am
by ubifan1
Hi! Could you make video how to use these scripts? I tried with cmd and python.exe but always got: "end of dds creating"

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Wed Apr 15, 2020 7:33 pm
by erik945
You need edit script, watch first post in thread. Use "\\" for separating folders (as in example 'G:\\SteamLibrary\\steamapps\\common\\1' )
Next in command line:
python.exe path_to_script.py

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Fri May 01, 2020 5:21 pm
by nonamebatbai
Can you find and edit the font file of the assassin's creed origins game?

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Mon Nov 09, 2020 1:39 pm
by erik945
Test tool for unpacking Valhalla' s forge with names support .

1. You must unpack the *.forge using AC_Valhalla_v001t
It will create a bunch of raw files without names.
You can use unpacker_forge.py for batch processing.
Don't forget to edit the paths in the script itself!

2. You must use unpacker_Valhalla_raw.py.
Script create filenames and sort it by magic number (type of file)

Edit
input_path = 'C: \\ my_programs \\ acv \\ DataPC_ACK_Asgard.forgefolder'
output_path = 'C: \\ my_programs \\ acv \\ 3'
bms_binary_path = 'C: \\ my_programs \\ acv \\ quickbms \\ quickbms_4gb_files.exe'
script_path = 'C: \\ my_programs \\ acv \\ assassin_creed_raw.bms'

input_path - unpacked forge's folder with raw files
output_path - folder to save files
bms_binary_path - path to quickbms_4gb_files.exe
script_path - path to assassin_creed_raw.bms

Run it!
Enjoy!

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Mon Nov 09, 2020 1:40 pm
by erik945
to previous post

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Mon Nov 09, 2020 5:31 pm
by DarthphoeniX
work noesis plugins (fmt_acod2 & fmt_acor8) with the extracted files?

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Mon Nov 09, 2020 6:18 pm
by erik945
No, format changed.

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Tue Nov 10, 2020 11:53 am
by Lord Vaako
Does the attached file contain texture? If so, could someone share information on how to extract it?

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Tue Nov 10, 2020 12:13 pm
by erik945
Now, as far as I know, in no way.
We need to research the format and write plugins.

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Wed Nov 11, 2020 2:35 pm
by erik945
Trying geometry research :)

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Wed Nov 11, 2020 7:17 pm
by gep55
I'm trying the extract meshes from .raw files for Oddesy, but the python script just closes immediately without giving an error. Could someone tell me what the problem is? thanks, :)


import subprocess

import struct
import os
import shutil
import datetime


array_tex=[]


game = "acod" # for AssassinsCreedOrigins - "acor", AssassinsCreedOdyssey "acod"
input_path = 'E:\\FakeACOInstall'
output_path = 'E:\\ACODump'
bms_binary_path = 'D:\\QuickBMS\\quickbms_4gb_files.exe'
script_path = 'D:\\ACOUnpacker\\assassin_creed_raw.bms'
export_without_sort = False
export_mesh = True
export_textures = False

export_addon = True
addon_dirs = ["1096652136"]


replase_files = False


def sort_mesh(path_and_file):
path, file = os.path.split(path_and_file)
if(file.lower().startswith("acd_ch")): return True
return False
if(file.find("(") >= 0): return False
if(file.lower().find("lod0") >= 0): return True
if(file.lower().find("lod") >= 0): return False
return True

def sort_tex(path_and_file):
path, file = os.path.split(path_and_file)
if(file.find("(") >= 0): return False
return True



def sort_addon(path_and_file):
path, file = os.path.split(path_and_file)
return True

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Thu Nov 12, 2020 5:29 am
by erik945
try run cmd or powershell and enter the path to python and the path to the script there.
like here
C:\Python\Python38\python.exe D:\acv\unpacker_raw.py

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Sat Nov 14, 2020 10:47 pm
by gep55
erik945 wrote: Thu Nov 12, 2020 5:29 am try run cmd or powershell and enter the path to python and the path to the script there.
like here
C:\Python\Python38\python.exe D:\acv\unpacker_raw.py
Thanks, I think that worked. The only problem is, when I try to import the Hair mesh of Kassandra, the UV's of the hair strands are messed up.

Re: Assassin Creed Origins (Odyssey) batch tool

Posted: Tue Nov 17, 2020 3:23 pm
by DarthphoeniX
erik945 wrote: Wed Nov 11, 2020 2:35 pm Trying geometry research :)
Awesome!!!