seedhartha 116 Posted March 19, 2021 View File KotorBlender (for Blender 3.3+) This add-on is a fork of KotorBlender, upgraded to support newer versions of Blender. KotorBlender is in turn based on NeverBlender, forked from version 1.23a. ## Features - Import & export MDL models, including walkmeshes - Import & export LYT files - Import & export PTH files ## Installation 1. Clone this repository or download the latest release of KotorBlender from Deadly Stream 2. If you have cloned the repository, create a ZIP archive containing the **io_scene_kotor** directory 3. From Edit → Preferences → Add-ons in Blender, install the add-on from the ZIP archive and enable it by ticking a box next to "Import-Export: KotorBlender" 4. Alternatively, if you want to contribute to KotorBlender, you may want to create a symbolic link to the local repository in the Blender add-ons directory, typically located at `C:/Users/{user}/AppData/Roaming/Blender Foundation/Blender/{version}/scripts/addons`. 1. `mklink /D io_scene_kotor {repo}/io_scene_kotor` ## Usage ### Data Preparation Extract models, textures, walkmeshes, LYT and PTH files into a working directory, using a tool of your choice, e.g. reone toolkit. Recommended directory structure: - *data* — extract all BIF archives here without subdirectories - *texturepacks* - *swpc_tex_tpa* — extract swpc_tex_tpa ERF archive here If you plan to edit textures, batch-convert TPC to TGA / TXI files using **reone toolkit**, although TPC textures are also supported by KotorBlender. ### Model Import and Export 1. Import via File → Import → KotOR Model (.mdl) 2. Select top-level MDL root object to be exported 3. Export via File → Export → KotOR Model (.mdl) ### Editing Animations To edit list of model animations and corresponding events, select MDL root object and navigate to Object → KotOR Animations. KotorBlender supports both object and armature-based edits. To create an armature from objects, navigate to KotOR Animations → Armature and press Rebuild Armature and Apply Object Keyframes. Before exporting a model, make sure to copy armature keyframes back to objects by pressing Unapply Object Keyframes. ### Lightmapping 1. Select objects for which you want lightmaps to be recreated, or unselect all objects to recreate all lightmaps 2. Press KotOR → Lightmaps → Bake (auto) UV mapping: 1. Select objects having the same lightmap texture and enter Edit mode 2. For every object, ensure that `UVMap_lm` UV layer is active 3. Select all faces and unwrap UVs via UV → Lightmap Pack, increase Margin to avoid face overlapping Fine-tuning: 1. Increase lightmap image size via UV Editing → Image → Resize 2. Tweak ambient color via Scene → World → Surface → Color 3. Manually toggle rendering of objects in Outliner and press KotOR → Lightmaps → Bake (manual) 4. In Scene → Render, set Device to GPU Compute to improve performance, set Render Engine to Cycles if not already 5. In Scene → Render → Sampling → Render increase Max Samples to improve quality ### Minimap Rendering 1. Press KotOR → Minimap → Render (auto) 2. Open "Render Result" image in Image Editor and save it as "lbl_map{modulename}.tga" 3. Open "MinimapCoords" text in Text Editor and copy-paste generated properties into module .ARE file using any GFF editor Fine-tuning: 1. Tweak background color via Scene → World → Surface → Color 2. Manually toggle rendering of objects in Outliner and press KotOR → Minimap → Render (manual) ### Connecting Rooms 1. Select a room walkmesh 2. Enter Edit mode and select two vertices adjacent to another room 3. Determine 0-based index of the other room into the LYT file 4. Enter Vertex Paint mode and set brush color to (0.0, G, 0.0), where G = (200 + room index) / 255 5. Ensure that brush blending mode is set to Mix, and brush strength is set to 1.0 6. Paint over the selected vertices ### Editing Paths 1. Extract PTH file from the module's RIM file, e.g. "modules/danm13_s.rim" (Kotor Tool, reone toolkit, etc.) 2. Import PTH into Blender via File → Import → KotOR Path (.pth) 3. Create/move path points, or modify path connections via Object Properties 4. Export PTH via File → Export → KotOR Path (.pth) ## Compatibility Known to work with Blender versions ranging from 3.3 to 4.0. ## License GPL 3.0 or later Submitter seedhartha Submitted 03/18/2021 Category Modding Tools 1 Quote Share this post Link to post Share on other sites
Stormie97 253 Posted March 19, 2021 This is where the fun begins! Quote Share this post Link to post Share on other sites
Hunters Run 57 Posted March 21, 2021 When trying to export a mesh with a dangly mesh I get the following error: On line 1107 in nvb_node.py: RuntimeError: Error: Mesh "(insert danglymesh name here)" is outside of main database and cannot be removed from it. Quote Share this post Link to post Share on other sites
seedhartha 116 Posted March 21, 2021 2 hours ago, Hunters Run said: When trying to export a mesh with a dangly mesh I get the following error: On line 1107 in nvb_node.py: RuntimeError: Error: Mesh "(insert danglymesh name here)" is outside of main database and cannot be removed from it. Fix is in the repository (mesh removal made redundant after upgrade). 1 Quote Share this post Link to post Share on other sites
Guest Qui-Gon Glenn Posted March 23, 2021 If I could model a tin can, I would be very excited by this. I am still moderately excited. Nice tool Quote Share this post Link to post Share on other sites
seedhartha 116 Posted April 1, 2021 Status update: I've done a couple of beta releases (now at beta 4), where I've improved compatibility with MDLedit and added support for editing PTH files. For those interested in baking lightmaps or editing PTH files in KotorBlender, I've listed the necessary steps in the description. 1 1 Quote Share this post Link to post Share on other sites
seedhartha 116 Posted April 10, 2021 Status update: I'm releasing version 2.0.0, which is the first non-beta version of the updated add-on. I've tested it on quite a few models, doing modelling, texturing, rigging, animation, etc. I think KotorBlender is now on par with KotorMax in terms of functionality: it works equally well for editing (and creating) character and area models, and I'm quite happy with the result. Here's the excerpt from the release changelog: Rewritten handling of materials and lights (Eevee) Made materials configurable from Object Properties Implemented import & export of LYT files Implemented import & export of ASCII PTH files (reone-tools) Implemented armature creation (no animations yet) Fixed MDLedit compatibility issues Removed NWN-specific functionality Disabled minimap rendering (until later) Code cleanup and refactoring in accordance with Blender and Python code styles 3 Quote Share this post Link to post Share on other sites
jablab 0 Posted April 12, 2021 Hey I just wanted to say this is amazing. I've been using blender for awhile and much prefer it to the other main 3D packages, especially Max. Until recently, my workflow has been to import a file into blender 2.79, manually change the textures, so on so on. You can image that this gets pretty annoying real quick. Really excited to see what you can do with it. Quote Share this post Link to post Share on other sites
Hunters Run 57 Posted May 10, 2021 When you import a supermodel, some animations on the right arm rotate in a circle. To see what I mean import s_male02 (k1 or k2) and look at animation pausestl. Decompiled with both mdledit and mdlops. This also applies to s_female03. Quote Share this post Link to post Share on other sites
DeathScepter 46 Posted May 10, 2021 my novice nature is showing but can this tool be useful for making new characters for a recruitment mod. i have a rough draft in my head that involve Ord Mantell by Redhawke. Quote Share this post Link to post Share on other sites
seedhartha 116 Posted May 10, 2021 49 minutes ago, Hunters Run said: When you import a supermodel, some animations on the right arm rotate in a circle. To see what I mean import s_male02 (k1 or k2) and look at animation pausestl. Decompiled with both mdledit and mdlops. This also applies to s_female03. That is a known issue - same goes for pre-2.8 version of the add-on. Apparently, it has something to do with keyframe interpolation. Exported animations and imported armatures work OK though, so it's not exactly high on my todo list. 4 minutes ago, DeathScepter said: my novice nature is showing but can this tool be useful for making new characters for a recruitment mod. i have a rough draft in my head that involve Ord Mantell by Redhawke. I'm not aware of any hard limitations of KotorBlender, with regards to creating new characters. It may not have as many utilities as NWmax, it lacks tutorials, but you can certainly model, texture and rig new characters using KB. 2 Quote Share this post Link to post Share on other sites
DeathScepter 46 Posted May 10, 2021 17 minutes ago, seedhartha said: That is a known issue - same goes for pre-2.8 version of the add-on. Apparently, it has something to do with keyframe interpolation. Exported animations and imported armatures work OK though, so it's not exactly high on my todo list. I'm not aware of any hard limitations of KotorBlender, with regards to creating new characters. It may not have as many utilities as NWmax, it lacks tutorials, but you can certainly model, texture and rig new characters using KB. I am interested in re using one of the female Revan heads(Angelina Jolie one with the red braid) as a base and maybe using other's assets to make a Recruitable character. Quote Share this post Link to post Share on other sites
Hunters Run 57 Posted June 29, 2021 The latest version of kotorblender (2.1.0) lacks the folder kotorblender. So it puts the files directly into the plugins folder. Also, exporting txi properties throws a traceback error. Quote Share this post Link to post Share on other sites
RavinNightBeast 2 Posted July 9, 2021 So When I Try To Enable The Add-on It Says It Cannot Be Used With Never Blender Enabled? Can Someone Fill Me In On What I'm Doing Wrong? Quote Share this post Link to post Share on other sites
Arson Hole 29 Posted October 27, 2021 Is this compatible with Blender 2.93? I'm trying to install it, but all I get is this Traceback Error. Traceback (most recent call last): File "D:\Steam\steamapps\common\Blender\2.93\scripts\modules\addon_utils.py", line 351, in enable mod = __import__(module_name) File "D:\Steam\steamapps\common\Blender\2.93\scripts\addons\kotorblender\__init__.py", line 44, in <module> from .ops.mdl.importop import KB_OT_import_mdl File "D:\Steam\steamapps\common\Blender\2.93\scripts\addons\kotorblender\ops\mdl\importop.py", line 24, in <module> from ...format.bwm.loader import BwmLoader File "D:\Steam\steamapps\common\Blender\2.93\scripts\addons\kotorblender\format\bwm\loader.py", line 19, in <module> from ...exception.malformedbwm import MalformedBwm ModuleNotFoundError: No module named 'kotorblender.exception.malformedbwm' Quote Share this post Link to post Share on other sites
Hunters Run 57 Posted October 27, 2021 Currently the latest version is improperly packaged. You can fix this by going to the installation location and putting all of kotorblender's files in a folder named kotorblender. Quote Share this post Link to post Share on other sites
seedhartha 116 Posted October 28, 2021 Hey, guys. Just wanted to give you a heads up that I'm in the middle of updating the add-on, enabling import and export of binary models based on MDLedit. I noticed that @Arson Hole is using the master version from GitHub. This one is not being properly tested and could be unstable. Please use version 2.1.0 from this site instead, and make sure to put all addon files under a folder named kotorblender, as @Hunters Run just said. 2 Quote Share this post Link to post Share on other sites
Arson Hole 29 Posted October 28, 2021 Yes, that seems to have done the trick. Thanks a million! Quote Share this post Link to post Share on other sites
seedhartha 116 Posted November 4, 2021 For those interested, version 3.0 of KotorBlender is out. ASCII MDL / PTH workflow has been dropped in favor of binary importer & exporter. Binary MDL support is mostly on par with MDLops/MDLedit, except it lacks smoothing groups and cannot export saber meshes. I will fix these as I go. Other plans include streamlining the editing process, e.g. one-click lightmap baking and working with multi-material objects, armature animation export, advanced shader node setups, etc. Also, an interesting discovery I made about the MDL format - both MDLops and MDLedit expect per-vertex "tangent space" data to have the following layout: Bx By Bz Tx Ty Tz Nx Ny Nz, where B is a bitangent, T is a tangent and N is a normal. However, my experiments show that "tangent space" is actually a transposed TBN matrix, which makes a lot more sense from the engine standpoint: Tx Bx Nx Ty By Ny Tz Bz Nz. 2 Quote Share this post Link to post Share on other sites
DarthParametric 3,790 Posted November 5, 2021 So does this mean that KBlender will be able to import/export the model's original normals directly rather than dealing with MDLEdit/KMax's hacky conversion to/from Max smoothing groups (which is a legacy of MDLOps/NWMax's ASCII format)? Because that is the single biggest problem with the current Max/GMax workflow, causing all sorts of broken shading issues, especially on head models. 1 Quote Share this post Link to post Share on other sites
seedhartha 116 Posted November 5, 2021 Quote So does this mean that KBlender will be able to import/export the model's original normals directly rather than dealing with MDLEdit/KMax's hacky conversion to/from Max smoothing groups (which is a legacy of MDLOps/NWMax's ASCII format)? Just tested this and yeah - we can import and export original normals, no problem. 1 Quote Share this post Link to post Share on other sites
Guest Posted November 5, 2021 So we no longer need to convert a binary model to ASCII—messing it up in the process—in order to modify it, but we still need to use MDLEdit to port it to the other title? Quote Share this post Link to post Share on other sites
seedhartha 116 Posted November 5, 2021 7 minutes ago, La Ingobernable said: So we no longer need to convert a binary model to ASCII—messing it up in the process—in order to modify it, but we still need to use MDLEdit to port it to the other title? Nope, you just check or uncheck "Export for TSL". No need for MDLedit at all. 1 Quote Share this post Link to post Share on other sites
Guest Posted November 5, 2021 Holy crap, this is big. And it works both ways, right? K1 to K2 and K2 to K1? Really appreciated. Truly. Quote Share this post Link to post Share on other sites
DarthParametric 3,790 Posted November 6, 2021 Note that taking MDLEdit out of the loop doesn't change anything else. You'll still need to rerig most models when switching from one game to the other. 1 Quote Share this post Link to post Share on other sites