jmquigs / modelmod Goto Github PK
View Code? Open in Web Editor NEWA system for modifying art in games.
License: GNU Lesser General Public License v2.1
A system for modifying art in games.
License: GNU Lesser General Public License v2.1
This happens whether or not a mod is actually being displayed, so its probably something in the d3d interceptor (hopefully not the hash check for mods; will need to profile it).
Well, since a huge number of game developers prefer to work on macOS and some specific people are interested in a Linux version (me ;D) - is this here the official issue about the implementation of OpenGL.
Steps:
Observed: new profile is still present
Expected: new profile should be gone
I'm having trouble following the User guide pointed to in the readme and setting up MM with Guild Wars 2.
here: https://github.com/jmquigs/ModelMod/blob/master/Docs/userguide/README.md
Set up steps completed:
Issues:
Are there any known issues with having the game on a different drive from MM?
My install is on D drive but MM is on C drive
Can anyone offer any guidance for using this tool with Gw2?
Hi. First of all thanks for your tool.
As you may be aware, the most requested thing on the GW2 forums is an option to disable legendary trinket effects. Anet is not against it but they say it's too difficult to do (lol).
Since you already showed how yo disable the Aegis effect, I'm sure it would be possible to also disable the legendary trinket effect (that they claim to be based on a boon too).
I'm pretty sure most people would gladly download the pre-made mod and this would also probably raise awareness on the subject.
Triggering a full (code + data) reload with F10, then another F10 while that load is in progress, will cause the app domain to get unloaded and the load thread will be terminated. Subsequent reloads will fail because the native code appears to remember that the first load is still in progress.
Snippet from log:
[M:Snapshot]: Applying transforms: [SnapshotProfile: Profile1; pos: ["rot x 90"; "rot y 180"; "scale 0.1"]; uv: ["flip y"]]
[M:Snapshot]: disposing stream 0 vb
[ERROR-M:Snapshot]: System.FormatException: Le format de la chaîne d'entrée est incorrect.
à System.Number.ParseSingle(String value, NumberStyles options, NumberFormatInfo numfmt)
à System.Convert.ToSingle(String value)
à ModelMod.MeshTransform.parseVec3XformFunc(Boolean isNormal, Mesh mesh, String xname)
à [email protected](String xname)
à Microsoft.FSharp.Primitives.Basics.List.mapToFreshConsTail[a,b](FSharpList1 cons, FSharpFunc
2 f, FSharpList`1 x)
à Microsoft.FSharp.Primitives.Basics.List.map[T,TResult](FSharpFunc2 mapping, FSharpList
1 x)
à ModelMod.MeshTransform.applyMeshTransformsInternal(FSharpList1 xforms, FSharpFunc
2 invokeBuilder, Mesh mesh)
à ModelMod.Snapshot.take(IntPtr device, SnapshotData sd)
Model Mod should support injecting it's .dll into pre-launched games. Games that require a launcher cannot be properly utilized by model mod.
ExePath targets Gw2-64.exe with d3d9.dll 64 bit in the same directory. Launcher will log in but then crash when attempting to launch the game. The crash sometimes produces an "Install cannot be completed" error message but other times will crash with no message. I wasn't able to determine what causes the different outcomes. The ModelMod log doesn't report anything beyond the initialization message.
ModelMod.Gw2-64.log
Removing d3d9.dll from the game directory allows it to launch as normal again.
I tried using the 32bit dll as well but MM would not initialize at all when trying this.
Says the following when pressing install and accepting overwrites:
"
Unable to locate suitable addon path:
Stdout:
MMPATH: E:\Ohjelmat\Blender 2.78c\2.78c\scripts\addons
MMPATH: E:\Ohjelmat\Blender 2.78c\2.78\scripts\addons_contrib
Read new prefs: C:\Users\b\Appdata\Roaming\Blender
Foundation\Blender\2.78\config\userpref.blend
found bunbled pytho E:\Ohjelmat\blender 2.78c\2.78\python
Blender quit
Stderr:
"
As seen, I do not have Blender in default folder but I manually located the blender.exe file 3 times. Once with 2.78a version from manually installed location, once from Steam's install location and once again from manually installed 2.78c version.
Edit: Got it manually working. Installing the scripts found in ModelMod's folder through Blender didn't work either as they go to C: drive which isn't my Blender's default folder. I manually pasted the scripts to my Blender scripts folder in E: and it seems to work.
More games are using 64 bit. Its probably worth looking at.
Many games have anticheat which detect d3d9.dll and this makes the mod unusable. Is there any way to work around this?
To add some more info: The anticheat is simply looking through the game folder and sees d3d9.dll which shouldn't be there. If there was a more global injection method, this would perhaps be better.
This is more common than DX10 so its probably the first alternate renderer that should be implemented.
If a game is installed in a read-only directory (e.g "Program Files"), ModelMod will fail to init because it runs as a non-admin user and therefore can't copy ModelModCLRAppDomain.dll into the game directory.
One fix is to have an option to run MMLoader as an administrator. This option could be exposed in the Game Profile section of the MMlauncher UI.
Another fix is to remove the annoying requirement that ModelModCLRAppDomain.dll be copied in to the game directory. That probably requires porting to the CoreCLR, which could be a tricky undertaking, but may also add support for additional games that are not supported right now.
Reported in #4
Where is it generated "TPLib\DirectXMesh_x64.dll"
Sorry for submitting this as an issue. Just didn't find any other way to post my thoughts.
Hey @jmquigs! I wanted to send my appreciation for this! I've always wanted to mod Guild Wars 2 like I have FFXIV. While modding this way is a bit more limited, i've been able to make a few mods that i'm happy with.
Any chance someone has fixed the binormals/tangents issue? That's the only thing that I think is keeping the mods from looking absolutely perfect.
And to share some of what i was able to make:
Certain games fail to init the CLR with "unexpected error". From some prototyping, I think the CoreCLR may allow this issue to be avoided or fixed. I suspect this error may result from SecuROM or other DRM software interference, but I'm not sure.
Adding support for CLR would add support for more games, and allow better solutions for some problems (#6)
See #4 for an example game (Borderlands) that is affected by this issue. Mass effect is also affected by same issue.
I've spent some time familiarising myself with VS and F#. If I can get MM to build successfully, I can move on to debugging the issues I brought up earlier.
I'm using VS Community 2022. When I attempt to open and build the MMDotNet solution, I get notifications that I'm missing specific versions of the .NETFramework reference assemblies (4.0, 4.5 etc.). But when I try to install these, the installer says they're already part of my OS and won't proceed. The reference manager says the targetted assemblies were not found.
Is there a way to solve the missing references using Paket or the Github build options you mentioned before? Apologies for the elementary questions. Once this is solved there shouldn't be any more barriers to debugging.
On a side note, I've made a Blender script to generate a akeleton for imported MM meshes. Bone positions are approximated using the weighted mean position of all the vertices in a given vertex group, where mean weights come from the vertex weights. If you are interested, I can share it with you, though I'm not really sure how to do so via Github. I also want to make a partner script that can use this skeleton to symmetrize the vertex groups for more convenient weight painting.
These are basically just hardcoded and it results in dynamic lighting being off (sometimes way off) depending on the model.
Solution is to apply math sledgehammer: http://stackoverflow.com/questions/5255806/how-to-calculate-tangent-and-binormal
I've taken an interest in this project again since I've been considering getting back into GW2 recently. I'm in the process of porting the IO scripts to the 3.0+ API so that they're usable in modern versions of Blender.
Most of the API changes I've encountered so far have been minor syntax or function changes, but there is a more difficult problem in that the 2.8+ API cannot access Blender's internal rendering engine. This completely breaks any mmobj functionality related to materials.
I wanted to ask, what exactly are the differences between the stock obj IO and mmobj? If I knew the specific differences it would probably be easier to copy the majority of the code (specifically the material handling classes) over from the current obj scripts and tweak them for mmobj.
Hi mate, I absolutely love your tool and been using it for GW1 and GW2 ! wanted to know if you plan on doing the same thing in order to be compatible with New World from Amazon games ? Would be soo appreciated !!
Occurs after running a few hours. Occurs even if no mods loaded, or if CLR is not loaded. Likely COM refcount issue.
Saw this program was mainly for DX9 and was wondering if it still works for DX11 and if it is able to change gear assets etc? A little new to how this works with Guild Wars 2
ModelMod launcher currently assumes that it can exec the game executable directly, and if the game uses its own launcher, the game will start it. Later MMLoader will reattach to the game once the game's launcher spawns it.
However, some games just outright fail when the game executable is launched directly, with a message to reinstall the game, or various other kinds of dialog boxes etc. Likely these games require some command line flag or other state to be passed by the launcher to initialize properly.
One way to solve this is to add another path for a game launcher to the MMLauncher Game Profile section. ModelMod can then start this launcher, but still watch for the main game exectuable with MMLoader to perform the injection.
Reported in #4
Hi mate, didn't know which way to reach you, so I'm doing this here, just wanted to say thank you, Either it's for GW1 or GW2, your tool works like a charm. I absolutely love it! I was able to do some stuff I didn't know would of been possible!
Here's a link to my reddit post, if you'd like to, I can give you credit for your tool , just wanted to ask before.
Here's what I made, hope you'll like the result
Thanks again bud, keep updating MM please, it's a masterpiece!
https://www.reddit.com/r/GuildWars/comments/pewpkx/fow_ra_armor/
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.