snake-biscuits / bsp_tool

Python library for analysing .bsp files
GNU General Public License v3.0
103 stars 8 forks source link

help #13

Closed AsutoraGG closed 3 years ago

AsutoraGG commented 3 years ago

how to use?

snake-biscuits commented 3 years ago

That depends on what you want to do with the tool Everything is built to work from the command line, there's no UI

If you wanted to do something like some texture swaps you can do that in the command line

>>> import bsp_tool
>>> map = bsp_tool.load_bsp("some_game/maps/some_map.bsp")
>>> map.TEXTURE_DATA_STRING_DATA[0] = "concrete/wall_2"
>>> map.TEXTURE_DATA_STRING_DATA[0] = "metal/wall_3"
>>> map.save_as("some_game/maps/some_map2.bsp")

If you're thinking of doing anything more advanced than that, like editing geometry, or copying things between maps, you'll need to learn more about how the .bsp formats work and probably write your own script that extends bsp_tool to do whatever map edits / analysis you're trying to do.

TL;DR If you tell me what you're trying to do, I can give you some clearer instructions

AsutoraGG commented 3 years ago

I have exported a file from the Titanfall VPK Tool that looks like an APEX map, but there is a file called "mp_rr_olympus_mu1.bsp" that I want to import into Blender.

snake-biscuits commented 3 years ago

oh that's pretty easy to do, importing apex maps isn't complete yet, so you won't get textures If you open 2.92_bsp_editor.blend with the whole bsp_tool next to it you'll just need to edit the script to load the map (no UI yet)

Around line 276:

# TITANFALL
# bsp = bsp_tool.load_bsp("E:/Mod/Titanfall/maps/mp_corporate.bsp")    # func_breakable_surf meshes with unknown flags
# bsp = bsp_tool.load_bsp("E:/Mod/Titanfall/maps/mp_lobby.bsp")
# bsp = bsp_tool.load_bsp("E:/Mod/Titanfall/maps/mp_angel_city.bsp")

# TITANFALL 2
# bsp = bsp_tool.load_bsp("E:/Mod/Titanfall2/maps/sp_training.bsp")
# bsp = bsp_tool.load_bsp("E:/Mod/Titanfall2/maps/mp_lobby.bsp")
# bsp = bsp_tool.load_bsp("E:/Mod/Titanfall2/maps/mp_angel_city.bsp")
# load_rbsp(bsp)

# APEX LEGENDS
# bsp = bsp_tool.load_bsp("E:/Mod/ApexLegends/maps/Season 2/mp_lobby.bsp")
# bsp = bsp_tool.load_bsp("E:/Mod/ApexLegends/maps/mp_rr_canyonlands_64k_x_64k.bsp")  # Season 9 Event
# bsp = bsp_tool.load_bsp("E:/Mod/ApexLegends/maps/mp_rr_desertlands_mu2.bsp")
bsp = bsp_tool.load_bsp("mp_rr_olympus_mu1.bsp")
load_apex_rbsp(bsp)

The main thing you need to do is comment out load_rbsp(bsp) & any bsps in the titanfall sections and use

bsp = bsp_tool.load_bsp("mp_rr_olympus_mu1.bsp")
load_apex_rbsp(bsp)

to load your map

You may also need to type the full path to the map, and extract and .bsp_lump files named mp_rr_olympus_mu1.bsp.0000.bsp_lump through to mp_rr_olympus_mu1.bsp.007F.bsp_lump, as long as they're in the same folder as the .bsp it should load

no textures or props yet, also it can take a few GB of RAM for me Olympus takes about 9GB of ram and a bit over 30mins to load It will also lag a lot in blender, so be prepared for that

I'll let you know when texture support comes for apex maps

AsutoraGG commented 3 years ago

image hmm....

snake-biscuits commented 3 years ago

seems it's having issues with loading bsp_tool from the folder, it should be there in the same folder though oh also you need to use the / slash instead of \ that's causing the top 2 errors

snake-biscuits commented 3 years ago

I think the issues with filepaths might be to do with your local system language? since it looks like you have Yen symbols in your filepaths I don't really know what I could do testing wise to fix that...

AsutoraGG commented 3 years ago

ThankYou!!!