seedhartha

Members
  • Content Count

    92
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by seedhartha

  1. Number of things, including swapping some function pointers and appending additional data to mesh headers. This has everything to do with model format and almost nothing to do with its contents. i.e. you cannot target K1 supermodels from K2 models without some modification of the bone structure. This is by design, and I have no intention to automate these modifications at the moment. Smoothing groups is a 3ds Max concept to influence vertex normal calculation. MDL knows nothing of smoothing groups and so does Odyssey engine. What I meant by lack of smoothing groups is that in version 3.0 of KotorBlender, original normals are not preserved, and shading might get screwed. However, I have since implemented import & export of original normals and will soon release an update.
  2. Nope, you just check or uncheck "Export for TSL". No need for MDLedit at all.
  3. Just tested this and yeah - we can import and export original normals, no problem.
  4. 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.
  5. 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.
  6. Objects using the same texture are merged in that particular area (and it makes total sense from performance standpoint). You'd have to manually separate geometry in Blender or NWmax.
  7. 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.
  8. That is the most voted option so far, followed by feature-parity with vanilla (i.e. no alterations, until it is finished, haha). I'm surprised more people hadn't vote for co-op multiplayer. Starting that poll was a good idea - I'll make sure to adjust project priorities accordingly. Regarding real-time combat: it is going to be tricky due to how KotOR systems (e.g. d20 and animations) are orchestrated for turn-based combat: feats, Force Powers, damage calculation - everything is tied to these 3-second combat rounds. We're looking at some major balance-breaking changes, unless we find a good enough compromise (any ideas?).
  9. seedhartha

    TOOL:N/A

    View File N/A N/A Submitter seedhartha Submitted 04/22/2021 Category Modding Tools  
  10. Made a poll on /r/kotor regarding the future on reone. Feel free to chime in.
  11. It's doable in KotorBlender (I've tested editing supermodel animations not long ago). You'd have to determine the frame range of both animations, and manually copy position and orientation keyframes from one model into another, probably one object at a time (I don't believe this process is currently automated). Altough, if K1 and K2 models do indeed have different bone structures, then you're out of luck with this method.
  12. Thanks! That was to be expected, I suppose, since I do all my development and testing using a vanilla English version of KotOR. I've added this issue to the roadmap - will make sure to look into it.
  13. To give you an idea, here's what I managed so far. This really isn't the best example, and @lachjames got a lot further than that. These models were both trained for 10,000 iterations (around 1 hour of fine-tuning, after which the validation loss plateaus) using a method I described on my wiki page. Just to make it perfectly clear, this is not the project I'm actively working on, but rather a discovery I wanted to share, and a guide on how to get similar results. atton_as_canderous.mp3 bastila_as_kreia.mp3
  14. Yes, we are in close contact with @lachjames on the matter. I'm curious, what are these extra materials you're talking about? My primary source is TLK and DLG files, and I have sufficient tooling to extract this data.
  15. Hello, I have recently discovered this video, which got me interested in a field of speech synthesis. I have researched this subject and, as it turns out, today technology is quite capable of producing semi-realistic speech, which, I believe, is more than good enough for modders to do voice-overs. I was able to replicate results shown in this video, and while at it, made some Python scripts and sort of a guide on how to train a model on Bastila's (or any other character's) voice. Here's the link: https://github.com/seedhartha/reone/wiki/TTS-Research Training an AI model is a tedious and error-prone process, but this step can be avoided altogether if you use a pre-trained model. I'm not sure I want to make my models public due to legal concerns, but contact me if you're interested in the topic (i.e. you need a voice-over for your mod), and we can work something out.
  16. 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
  17. View File reone toolkit toolkit is a GUI application that can be used to preview, extract, edit and create KotOR and TSL resources. Part of reone engine project. ## Features Extract BIF, RIM and ERF archives Create RIM, ERF or MOD archive from directory Preview and export almost every resource type, including 3D models, images and audio files Export TPC as TGA / TXI Export encoded WAV as regular WAV / MP3 Visually edit 2DA, GFF, TLK, LIP, SSF, NCS and plaintext files Decompile NCS to NSS-like pseudocode Compose LIP files from text and audio files https://github.com/seedhartha/reone/wiki/Tooling Submitter seedhartha Submitted 04/01/2021 Category Modding Tools  
  18. Version 1.0 beta1

    438 downloads

    toolkit is a GUI application that can be used to preview, extract, edit and create KotOR and TSL resources. Part of reone engine project. ## Features Extract BIF, RIM and ERF archives Create RIM, ERF or MOD archive from directory Preview and export almost every resource type, including 3D models, images and audio files Export TPC as TGA / TXI Export encoded WAV as regular WAV / MP3 Visually edit 2DA, GFF, TLK, LIP, SSF, NCS and plaintext files Decompile NCS to NSS-like pseudocode Compose LIP files from text and audio files https://github.com/seedhartha/reone/wiki/Tooling
  19. 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.
  20. Fix is in the repository (mesh removal made redundant after upgrade).
  21. 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  
  22. Version 3.10.3

    2,472 downloads

    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
  23. What are the limitations, I'm curious? Things like maximum number of lights and bones are not going to be an issue any longer. New graphical features could be added mid-difficulty, as well as new game mechanics, given enough interest from modders/developers.
  24. Oh, I see. This has more to do with the save system, than with modules. Save system is actually one of those things that I'm willing to completely redesign, due to how hard it would be to make it 100%-compatible with vanilla. If "real-time" reloading of templates would make modders' life easier, then this is the way we could go, no problem. I hear you - recreating something that already works and NOT improving upon it does sound wrong. I'm coming from the "minimum viable product" point of view. Getting the equivalent of vanilla out with slightly better graphics and QoL improvements beats releasing a shiny but incomplete engine, in my book. I will of course consider adding advanced graphical features - perhaps when the engine is a little more mature? That's a good point. I will keep this vanilla/ehanced mode toggle in mind and develop accordingly.
  25. Could you define "modular"? reone reuses most of vanilla assets and does its best to recreate behavior of the vanilla engine. This means that modules are constructed from the same IFO, ARE, GIT, LYT and VIS files.