wolvenkit / wolvenkit Goto Github PK
View Code? Open in Web Editor NEWCommunity Mod editor/creator for REDengine games.
Home Page: http://redmodding.org/
License: GNU General Public License v3.0
Community Mod editor/creator for REDengine games.
Home Page: http://redmodding.org/
License: GNU General Public License v3.0
Hi together. Anyone here knows what the 8 bytes behind the wem bytes block in the .w3speech files are supposed to mean/how to decode/encode them?
The application should be converted to a clickonce application so an installer and a portable version can be distributed.
Once @ali-alidoust is done with scripthook or at least progressed a little more we should kinda integrate it into WolvenKit like the guys for OpenIV did for the GTA V Scripthook. Adding other community made tools and some slight integration would be nice.
For example:
This is a long term goal but it should be a thing I think. Also an installer for these would be nice (and if some similar tools come out in the future) would be nice. So if any noob wants to mod the game he has all the tools right there with tutorials and everything.
ps.: this should be an optional feature so if someone doesn't want to use these mods its not required
So in theory according to @erxv redfur files could be converted to apx. Since there are no unknownbytes in it. All we need to do is figure out that hashing algorythm used by apx so the files are recognized by apex and serialize the values to the weird xml apex recognizes. There needs to be an exporter and in importer as well.
We need a way to parse&write metadata.store files so we don't have to use wcc_lite for it which is slow
As a 3d asset modder I want to preview a selected 3d asset to decided if it's the one I am interested in
We should have it so you can mark a file as a DLC file or as a mod file and when packing they will be installed to the appropriate folder. If we are updating mod explorer anyway we should probably track changed files and such so a "Please save dialog" can be made when closing the app or something.
As a 3d asset modder I want to search by keyword for a specific 3d assets so I can select it for further usage (e.g. 3d preview, export, etc.)
As a 3d asset modder I want to save a selected asset from the game in a directory to edit it in a 3D modeling software
We need a way to properly edit/create journal files.
As a start a simple editor would be nice + a preview.
I kinda already started it at https://github.com/Traderain/Wolven-kit/blob/master/W3Edit/frmJournalEditor.cs but still needs more checks and it only previews doesn't let you edit yet.
Close windows reset modexplorer and such when loading/creating a new project
This library seems to be able to server our needs for editing behaviour files and complex w2l and such https://github.com/panthernet/GraphX
More costum editors:
CGameplayEntity - Its in the rttidump, kinda implemented but not fully
CTriggerAreaComponent - Its in the rttidump but its complex REALLY complex
CSectorData - Its in the rttidump but its not straight forward
W3MinimapZoomScaleTrigger - no idea
W3TrapSpawnEntity - no idea
CEntity - only missing 2 bytes probably some bool
CRiftEntity - no idea
CWayPointComponent - its in the rttidump but needs more investigation probably read incorrectly atm
Discord link in the description is not valid.
There are many grammar error and typos in the project. If you find any please comment them here.
Also here we can track stuff related to this.
So let's be honest, at the moment editing CR2W files is pretty cancer and really not user friendly.
So as a start I would suggest implementing a couple simple controls and such:
Other general improvements:
So I was thinking about implementing the basics of nexusmods since it wouldn't really be hard so you can upload your mod after you are done and would be nice for the mod manager too I guess. It should be discussed if its worth the time it takes to implement it.
So since Nexus Mod Manager (aka NMM) is pretty horrible with handling Witcher 3 mods I think we should create our own thing.
By looks and function I would say something like the Gta V mod manager would be good for us.
Features we definetely need:
The basic layout is started in /.ModManager. Will require some work from both WolvenKit's side and ModManager's side before it can actually replace NMM but since we don't need to support multiple games it will probably be done in a couple weeks.
Thanks to Nightingale most of it is done only there is a bug left to solve with callbacks but essentially it can do nearly everything script studio can do. For reference check: 5c688d7
Introduce Dark Mode - interface
Lots of editing is done in shady environments.
In theory the engine recompiles it every time its deleted so might not be usefull but might worth to take a look.
As a voiceline asset modder I want to add lipsync animations to new voicelines so the game actors are animated while speaking.
see details in the batch files from the w3speech tools
There needs to be a way to zoom because complex scenes are hard to inspect this way.
GUI for generating menus.
Status | Extension | Type | Progress |
---|---|---|---|
✓ | XML | XML File | xml file can be opened in text editors. |
½ | XBM | CR2W file | Fully parsed altought some stuff is not yet correct? |
✓ | Wizdef | CR2W file | Parsed fully since there is only one of this and doesnt contain anything might be a test file |
✓ | W3Simplex | CR2W file | Parsed fully contains simplex data |
½ | W3Occulsion | CR2W file | Little stuff is missing contains occulsion data |
X | W3Fac | CR2W file | Missing a lot contains skeleton and MimicFace |
X | W3Dyng | CR2W file | Missing a lot contains dyng resource and sekeleton |
✓ | W3App | CR2W file | Parsed fully contains appearances |
X | W2W | CR2W file | Missing a lot contains info about how a level is set up |
½ | W2Ter | CR2W file | Little stuff is missing contains terrain info |
✓ | W2Steer | CR2W file | Parsed fully contains movement and steering commands |
✓ | W2Sf | CR2W file | Parsed fully contains Switchable foliage |
✓ | W2Scene | CR2W file | Parsed fully contains conversation/scene |
½ | W2Rig | CR2W file | Contains rig |
✓ | W2Ragdoll | CR2W file | Parsed fully lot contains ragdoll data/begaviour |
✓ | W2Quest | CR2W file | Parsed fully contains a quest |
✓ | W2Qm | CR2W file | Parsed fully contains the pins a world |
✓ | W2Phase | CR2W file | Parsed fully contains quest progress |
X | W2P | CR2W file | Missing a lot contains particle system |
✓ | W2Mi | CR2W file | Parsed fully contains material instance |
✓ | W2Mg | CR2W file | Parsed fully contains material graph |
½ | W2Mesh | CR2W file | Missing a lot contains a mesh(es?) |
½ | W2L | CR2W file | Little stuff is missing contains level data |
✓ | W2Job | CR2W file | Parsed fully contains an action/job for an NPC |
✓ | W2Je | CR2W file | Parsed fully contains collection of journal entries |
X | W2Fnt | CR2W file | Missing a lot contains a font |
½ | W2Ent | CR2W file | Little stuff is missing contains entity data |
✓ | W2Em | CR2W file | Parsed fully contains map pins info |
✓ | VBrush | CR2W file | Parsed fully contains a vegetation brush(es) |
✓ | Usm | Multiplexed video file | Needs to be demultiplexed to view as a video file |
X | Textarray | CR2W file | Missing a lot contains a textarray |
✓ | Subs | Text file | Can be opened with any ordinary text editor |
X | Srt | Unknown | Can't parse it (Might be SRT Tree or Speedtree?) |
✓ | Spawntree | CR2W file | Parsed fully contains spawning data |
✓ | Sav | Save file | Parsed fully but not implemented yet and for some random reason there is one in game archives |
X | Redwpset | CR2W file | Missing a lot of stuff contains waypoint collection |
✓ | Redswf | CR2W file | Swf stuff and dds images |
✓ | Redicsv | CR2W file | Missing a lot contains a 2d array of data |
✓ | Redgame | CR2W file | Parsed fully contains info about game resource |
✓ | Redfur | CR2W file | Parsed fully contains Hairworks info probably |
X | Redexp | CR2W file? | Missing a lot of stuff contains Areas |
✓ | Reddlc | CR2W file | Parsed fully contains dlc info |
½ | Reddest | CR2W file | Little stuff is missing contains Apex destruction info |
✓ | Redcloth | CR2W file | Parsed fully contains Apex cloth |
✓ | Redapex | CR2W file | Parsed fully contains Apex destruction info |
✓ | Popup | CR2W file | Parsed fully contains info about a popup |
X | Navtile | Unknown | Not parsed, not even listed by wcc_lite (no idea) |
X | Navmesh | Unknown | Not parsed (Probably Navmesh info?) |
X | Naviobstacles | Unknown | Not parsed (probably info about obstacles for NPCs) |
X | Navgraph | Unknown | Not parsed (no idea) |
X | Navconfig | Unknown | Not parsed (maybe pathfinder config for the ai?) |
✓ | Menu | CR2W file | Fully parsed contains info about a menu element |
✓ | Journal | CR2W file | Fully parsed contains info about a journal entry |
✓ | Hud | CR2W file | Fully parsed contains info about hud elements |
✓ | Guiconfig | CR2W file | Fully parsed contains info about hud elements |
✓ | Grassmask | CR2W file | Missing a lot of stuff contains grassmasks |
✓ | Formation | CR2W file | Fully parsed contains (ai preset? behaviour?) |
✓ | Flyr | CR2W file | Fully parsed contains tree info |
✓ | Env | CR2W file | Fully parsed contains enviroment info |
✓ | Csv | Csv file | Can be opened in Microsoft Excel |
✓ | Cellmap | CR2W file | Missing a lot of stuff contains Cellmap |
½ | Buffer | Unknown | Animation and model data |
So since Nexus Mod Manager is a garbage in terms of Witcher 3 modding the least we should do if we don't make a full mod manager is a package creator/installer. I think the way OpenIV's oiv packages work is awesome and we should create something similar. Currently when you press create packed installer the program simply zips your stuff. This is nice and all but you can't really track mod versions and such with this.
So my suggestion is creating an xml file which would be filled with metadata + icon for the mod + the compressed&packed mod data into a zip file which then could be used to 1 click install mods. Some GUI for creating the package would be nice too. Something like this would do: https://www.gta5-mods.com/tools/openiv-package-manager
ps.: I contacted the OpenIV team for some details and stuff and permission. I hope they reply.
The packet format for setting a variable is as follows (w3net style):
Request()
.utf8("Config")
.int32(0xCC00CC00) # magic number
.utf8("set")
.utf8(section) # Section
.utf8(name) # Variable Name
.utf16(value) # Variable Value
.end()
I think a PropertyGrid filled with all vars received by using the "list" command and ability to change the values using this command could be really useful.
Everything should be done in memory with byte arrays!
Currently upon loading assets to "DLC" and the packing the DLC doesn't produce working DLC.
Currently kit creates
files\DLC\Bundle\[files]
Upon packing the metadata path points to [files]
While the game need DLC files to be:
\dlc\[DLCNAME]\[files]
The workaround now is to add the assets:
Create the folders:
files\DLC\Bundle\dlc\dlcname\[files]
and copy the assets to needed to be used to [files]
[files] can be any structure one wants to use.
As a voice asset modder I want to pair voiceline audiofiles to specific dialoglines so they are played when the dialog text is displayed as subtitle.
assuming the dialog scene is already done and the w3speech tools are to be used):
As a 3d asset modder I want to add a new 3d asset to the game to use it in my mod
b798c48 does the basic converting however converting form images into CBitmapTexture is not supported yet
As a voice asset modder I want to adjust the lipsync timings of new voicelines to tune the results.
Automatically extracted phoneme timings need to be adjusted most of the time before generating the lipsync animations. This is a time consuming process (see https://www.youtube.com/watch?v=oI6PvgqE-wM)
Cooking needs to be eleminated to implement this so texture.cache/soundspc.cache etc. writers need to be implemented for this.
The kit is a tool for modders. But there are different kind of modders with different goals and different level of experience. It's important to keep this in mind.
To help defining new features and prioritize them according their value it's helpful to define a set of usage roles and assign every feature to a role along with it's intended value. From the top of my head all/a subset of the following roles could be considered as target audience for the kit. Meaning: new features should support their modding goals (unordered):
So far the kit is mostly targeted for the low level tinkerer.
Currently Irrlicht and VLC.net doesn't really like each other so the whole project has to be x86. This needs to be fixed so we can switch of the prefer 32bit and go back to anycpu.
Steps to reproduce bug:
Right click on any folder in Mod explorer -> Add file
It opens empty Asset browser window (so it is not possible to add files to chosen folder directly) which crashes when you click on that top text edit field.
System.NullReferenceException: Object reference not set to an instance of an object.
in WolvenKit.frmAssetBrowser.pathPanel_Click(Object sender, EventArgs e)
in System.Windows.Forms.Control.OnClick(EventArgs e)
in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
in System.Windows.Forms.Control.WndProc(Message& m)
in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
As a 3d asset modder I want to see a list of all 3d assets from the game to get an overview of the available assets
Currently if you change the name of your mod or tick/untick dlc etc. your mod will break. This needs to be fixed.
It would be neat to have a way to search in xml files and such to find stuff easier search needs to be reworked amyway in Asset browser so this should be a good occassion.
As a voice asset modder I want to pack all wwise converted voicelines (wem files) and if available the corresponding lipsync animations as a w3speech file so it can be deployed in a dlc mod.
for details see batch files in the w3speech tools.
As a 3d asset modder I want to extract a specific entity from the game to edit it in a 3D modeling software
So since Asset browser is getting improved we face the fact that loading 3million files is kind of slow. So a caching system should be implemented.
For now something like this should be good:
This should vastly improve performance. There might be a better solution. I am up for suggestions.
As a voice asset modder I want to add new voice lines to the game so I can use them in my scenes/mod.
So this is probably gonna be one of the hardest tasks.
An in-editor sound player would be a nice adition probably.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.