manlymarco / abmx Goto Github PK
View Code? Open in Web Editor NEWAdds more character customization settings to games by Illusion
Home Page: https://www.patreon.com/ManlyMarco
License: GNU Lesser General Public License v3.0
Adds more character customization settings to games by Illusion
Home Page: https://www.patreon.com/ManlyMarco
License: GNU Lesser General Public License v3.0
I've been experimenting with Penis Curves to give many men multiple shapes in Charstudio
but the problem is that when I imported the cards into the Studio, even tho the Bone Mods are saved INTO the card, they never apply automatically.
AND the same bones REFUSE To rotate when I try to do I manually
I honestly have NO clue as to why they refuse to rotate, I've read somewhere that IllusionFixes v13.3 fixes this issue
but I want to be 100% sure that I just download that fix patch, if not then How do I fix it?
An easy example is changing eyescale and then trying to change eye height, where nothing changes unless you REset the ABMX slider. Double checked that this doesn't happen in v4.
(awesome work by the way, growing pains aside, ABMX5 is so so much nicer to use)
edit: dumb, but misleading typo saying set instead of reset
I misplaced my post over there, sorry about that.
Environment
BepInEx 5.4.16 x64 + BepisPlugins r16.8.1 + Illusion Modding API KKSAPI v1.26
and
KKSABMX v4.4.4.0
For existing scene file,
The height scale is not applied to characters placed when "Character Change" is performed using a character card with a height scale other than 100.
In the case of "New Load", the height will be changed after loading.
If you use "add→character→change character" to replace an existing character, the overlay and MaterialEditor settings don't seem to be reflected, so this may not be an ABMX-specific problem.
If you use "add→character→load", the material is also applied.
Assuming it's not an ABMX issue in the first place, based on the other behaviors above, I'm sorry if I'm posting the issue in the wrong place.
I've made a lot of cards using 4.4.6, and upgrading to V5 has resulted in a lot of those cards' bone data not loading at all. I've had to roll back to 4.4.6 in order to be able to use these cards as all their bonemods are reverted to base 100 if I load them in v5.
Poke me on discord if you need an example card and I can send you a zipped one, I'm RetroNutcase on there.
For the record, most of the bonemodding I did was via the extra XYZ sliders from things like Chest 2, Lower Body 2, etc.
Bug causes character replacement to incorrectly load second character. I believe the issue is that the restore to baseline runs after the head has been replaced, incorrectly restoring the baseline from the first head over the second head and moving custom bones around.
Replication example attached, loading Aloy first loads normally. Loading Miwa (with an obvious eye position mod) and then loading Aloy causes Aloy to load with incorrect eye positions. Should be able to replicate the effect by taking any two heads with a bone position difference, apply a modifier to the first head then load the second and the second will have the first heads baseline position.
Not sure if there's a better solution than to hook before the ChangeHead call and run the reset to baseline before it actually swaps?
The vanilla code does something similar, for instance when you press Numpad 5 it doesn't reset the camera. But I guess this is KKAPI related issue.
I`m sure why but her hands go through her breasts when fondling any fixes?
Currently the advanced bonemod controls only include bone scale and length adjustments, which is slightly underwhelming because the "standard" ABMX provides these sliders and already has a great selection of bones.
If it is possible and not too difficult, I think it would be worthwhile to allow the x-y-z position and rotation of each bone to be modified in the advanced mode. Adding these would unlock a lot of potential, since they can create many unique customisations, such as ass horizontal position and spacing. There would be three times as many sliders as what we have now, and the capability of ABMX will be greatly extended.
The KKPE plugin offers these position and rotation adjustments, but they can only be used in the studio and have to be manually entered for each character in each scene. It would be much more natural and convenient if we can just make permanent adjustments using ABMX.
I think the "bonemod" load option at the bottom of the character loading panel in character maker can be separated to "face bonemod" and "body bonemod". Alternatively, this option can be improved to automatically detect what bone adjustments should be loaded i.e. if the "face" load option is selected but not "body", then this "bonemod" option would only load the face bone adjustments. At the moment, a single "bonemod" option makes it difficult to swap faces, because characters can have very different face bone adjustments that go with the vanilla sliders.
Lastly, sorry for the long post and thank you very much for writing such a fantastic plugin. It has become an absolute necessity.
Adjustments to character works fine during character creation and regular dialogue,
but not loaded during x-scene.
Found a bug that is very easy to replicate.
Here's a webm for demonstration
https://files.catbox.moe/pc1bvs.webm
And here's the card for testing
https://files.catbox.moe/etnctp.png
hello.
first, thank you so much for develops the great mod.
when i was making a character, i found the bug that the both sides of 'a_n_hair_twin' are not working.
in studio, They have two same Bones on the list.
like,
a_n_hair_twin_L
a_n_hair_twin_L
a_n_hair_twin_R
a_n_hair_twin_R
and one of them each, changes work good.
but in Chara Maker, They have only Bone on list that changes not working one.
may i ask you help…?
If you scale "cf_J_Spine01 (or 02,03)" head rotated by the same axis scales up or down from rotation.
Example:
Scale down cf_J_Spine03 by X axis to 0.900.
Now rotate neck bone in KF mode left or right. It will look fine in T pose, but if you rotate it, the head will scale by X axis from rotation if X axis of cf_J_Spine03 is anything other than 1.000
Probably because head uses a different mesh and armature, separated from the body. Wish it could be fixed somehow, if possible at all.
Hello! I noticed a small (but quite annoying) bug with the newest build of the plugin: when I adjust a body slider, the character starts stuttering in a weird way, making it very hard to tell the difference between small edits. It seems like the bones or the entire model is being reloaded for every change.
This doesn't happen with version 3.2.2. I'm also fully updated when it comes to the other plugins (Bepis, KKPE, etc).
When bones implanted with modboneimplantor edited in maker with abmx, it changed properly. But, when the maker is reopen in another session, the abmx edits is not applied immediately. Only after the outfit is changed to another set and back to it again, abmx is applied. This also happened in free h mode, but didn't happen in studio (abmx applied immediately after spawning the character).
Heyo marco, this is in regards to that one issue regarding the skirt scale in the clothing tab for characters, whatever the number is set to it'll save it for every clothing tab. the number will be the same even if the skirts are visually scaled differently.
But as as soon as the scale sliders are touched it'll automatically update to the state that was scaled in another outfit slot. (Seems to do this even though per-coordinate is toggled for the skirt bones) (Some pictures for reference were provided)
As the title says, ABMX settings don't have any effect on characters inside (Koikatu) studio.
I've narrowed down the conflict to KK_Fix_StudioOptimizations. I wasn't sure if I should post this in the IllusionFixes repo, but since you run both projects I don't think it matters.
Using any version of ABMX, and IllusionFixes v1.12, there are no problems, everything works as expected.
With any version of ABMX, and IllusionFixes v13.0 and up, this issue occurs.
This is why BRX5 has this issue, and BRX4 does not.
Hope this helps.
It would be good to be able to change the scale default for the genitals penis, penis tip and testicles through configuration for the females. This will help in cases like BetterPenetration when the uncensors have colliders it will create the effect of a phantom penis and deforms the skirts in maker and to various degrees in game.
This happens as long there is a penis uncensor with colliders in the mods even when the plugin is not been used.
The process of doing it manually is kind of tedious and easy to forget if in maker when you work the coordinate shown does not present the issue.
When starting KKS it hangs immidietly on converting cards. I use version 5.0.5 of ABMX
After looking in to the log file, I found the following:
[Error :KKSABMX (BonemodX)] [KKABMX] Failed to load extended data - System.ArgumentException: coordinateModifiers can't have any nulls in it
Parameter name: coordinateModifiers
.new KKABMX.Core.BoneModifier.ctor(string, BoneLocation, BoneModifierData[])
.new KKABMX.Core.BoneModifier.ctor(string, BoneModifierData[], BoneLocation)
BoneModifier MessagePack.Formatters.KKABMX_Core_BoneModifierFormatter26.Deserialize(byte[], int, IFormatterResolver, int)
List<BoneModifier> MessagePack.Formatters.ListFormatter<KKABMX.Core.BoneModifier>.Deserialize(byte[], int, IFormatterResolver, int)
List<BoneModifier> MessagePack.LZ4MessagePackSerializer.DeserializeCore<List<BoneModifier>>(ArraySegment<byte>, IFormatterResolver)
List<BoneModifier> MessagePack.LZ4MessagePackSerializer.Deserialize<List<BoneModifier>>(byte[], IFormatterResolver)
List<BoneModifier> MessagePack.LZ4MessagePackSerializer.Deserialize<List<BoneModifier>>(byte[])
List<BoneModifier> KKABMX.Core.BoneController.ReadModifiers(PluginData)
[Error :KKSABMX (BonemodX)] [KKABMX] Failed to load extended data - System.ArgumentException: coordinateModifiers can't have any nulls in it
Parameter name: coordinateModifiers
.new KKABMX.Core.BoneModifier.ctor(string, BoneLocation, BoneModifierData[])
.new KKABMX.Core.BoneModifier.ctor(string, BoneModifierData[], BoneLocation)
BoneModifier MessagePack.Formatters.KKABMX_Core_BoneModifierFormatter26.Deserialize(byte[], int, IFormatterResolver, int)
List<BoneModifier> MessagePack.Formatters.ListFormatter<KKABMX.Core.BoneModifier>.Deserialize(byte[], int, IFormatterResolver, int)
List<BoneModifier> MessagePack.LZ4MessagePackSerializer.DeserializeCore<List<BoneModifier>>(ArraySegment<byte>, IFormatterResolver)
List<BoneModifier> MessagePack.LZ4MessagePackSerializer.Deserialize<List<BoneModifier>>(byte[], IFormatterResolver)
List<BoneModifier> MessagePack.LZ4MessagePackSerializer.Deserialize<List<BoneModifier>>(byte[])
List<BoneModifier> KKABMX.Core.BoneController.ReadModifiers(PluginData)
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 0 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Debug :Additional Card Info] ACI Data version 0 Found on import
[Debug :Additional Card Info] ACI Data version 1 Found on import
[Error :KKSABMX (BonemodX)] [KKABMX] Failed to load extended data - System.ArgumentException: coordinateModifiers can't have any nulls in it
Parameter name: coordinateModifiers
.new KKABMX.Core.BoneModifier.ctor(string, BoneLocation, BoneModifierData[])
.new KKABMX.Core.BoneModifier.ctor(string, BoneModifierData[], BoneLocation)
BoneModifier MessagePack.Formatters.KKABMX_Core_BoneModifierFormatter26.Deserialize(byte[], int, IFormatterResolver, int)
List<BoneModifier> MessagePack.Formatters.ListFormatter<KKABMX.Core.BoneModifier>.Deserialize(byte[], int, IFormatterResolver, int)
List<BoneModifier> MessagePack.LZ4MessagePackSerializer.DeserializeCore<List<BoneModifier>>(ArraySegment<byte>, IFormatterResolver)
List<BoneModifier> MessagePack.LZ4MessagePackSerializer.Deserialize<List<BoneModifier>>(byte[], IFormatterResolver)
List<BoneModifier> MessagePack.LZ4MessagePackSerializer.Deserialize<List<BoneModifier>>(byte[])
List<BoneModifier> KKABMX.Core.BoneController.ReadModifiers(PluginData)
[Debug :Additional Card Info] ACI Data version 0 Found on import
FormatException: Too many bytes in what should have been a 7 bit encoded Int32.
at System.IO.BinaryReader.Read7BitEncodedInt () [0x00013] in <fb001e01371b4adca20013e0ac763896>:0
at System.IO.BinaryReader.ReadString () [0x0000f] in <fb001e01371b4adca20013e0ac763896>:0
at (wrapper dynamic-method) ChaFile.DMD<ChaFile::LoadFileKoikatsu>(ChaFile,System.IO.BinaryReader,bool,bool)
at BrowserFolders.Hooks.KKS.Overlord+ImportHooks.AddFilesToConvList (System.String dir, ConvertChaFileScene instance, System.Int32 sex) [0x00026] in <ad08665ad11c4091ad27778b5e5e277f>:0
at BrowserFolders.Hooks.KKS.Overlord+ImportHooks.GetDirs (System.String dir, ConvertChaFileScene instance, System.Int32 sex) [0x00061] in <ad08665ad11c4091ad27778b5e5e277f>:0
at BrowserFolders.Hooks.KKS.Overlord+ImportHooks.GetDirs (System.String dir, ConvertChaFileScene instance, System.Int32 sex) [0x00035] in <ad08665ad11c4091ad27778b5e5e277f>:0
at BrowserFolders.Hooks.KKS.Overlord+ImportHooks.GetDirs (System.String dir, ConvertChaFileScene instance, System.Int32 sex) [0x00035] in <ad08665ad11c4091ad27778b5e5e277f>:0
at BrowserFolders.Hooks.KKS.Overlord+ImportHooks.GetDirs (System.String dir, ConvertChaFileScene instance, System.Int32 sex) [0x00035] in <ad08665ad11c4091ad27778b5e5e277f>:0
at BrowserFolders.Hooks.KKS.Overlord+ImportHooks.GetDirs (System.String dir, ConvertChaFileScene instance, System.Int32 sex) [0x00035] in <ad08665ad11c4091ad27778b5e5e277f>:0
at BrowserFolders.Hooks.KKS.Overlord+ImportHooks.GetDirs (System.String dir, ConvertChaFileScene instance, System.Int32 sex) [0x00035] in <ad08665ad11c4091ad27778b5e5e277f>:0
at BrowserFolders.Hooks.KKS.Overlord+ImportHooks.ConvertStartHookPre (ConvertChaFileScene __instance) [0x00026] in <ad08665ad11c4091ad27778b5e5e277f>:0
at (wrapper dynamic-method) ConvertChaFileScene.DMD<ConvertChaFileScene::Start>(ConvertChaFileScene)
(Filename: <fb001e01371b4adca20013e0ac763896> Line: 0)
I've found an issue with their hair collision when it comes to larger breasts. When "breast scale 1" is used to enlarge the breasts beyond stock, the back hair starts colliding with the breasts through the character's back! Front hair seems to be ok. Using "breast collision scale" doesn't change anything. Seems like one of the colliders is too big perhaps?
Error log:
[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
KKABMX.GUI.KKABMX_AdvancedGUI.DrawSingleModifier (KKABMX.Core.BoneModifier mod) (at <4b0e0b4c45a24d1689c29fe4fc4031f3>:0)
KKABMX.GUI.KKABMX_AdvancedGUI.DrawWindowContents (System.Int32 id) (at <4b0e0b4c45a24d1689c29fe4fc4031f3>:0)
UnityEngine.GUILayout+LayoutedWindow.DoWindow (System.Int32 windowID) (at <a0bccd5fb00b424ba4b8f758e660f824>:0)
UnityEngine.GUI.CallWindowDelegate (UnityEngine.GUI+WindowFunction func, System.Int32 id, System.Int32 instanceID, UnityEngine.GUISkin _skin, System.Int32 forceRect, System.Single width, System.Single height, UnityEngine.GUIStyle style) (at <a0bccd5fb00b424ba4b8f758e660f824>:0)
[Error : Unity Log] GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced.
BepInEx v5.4.16
KKSAPI v1.26
KKSABMX v4.4.4
KKS_MoreOutfits v1.1
KKS_ExtensibleSaveFormat v16.8.1
Where is it? Downloaded KKABMX-master and it's not in any folder.
I have the most updated .DLL from the "releases" section. Is that it? Was hoping for a further update.
There seems to be an issue in Koikatsu where the scaling settings do not carry over into "Story" mode at all. When I goto "Edit character" from "Class" in story mode, all the BonemodX scale settings have reverted to default. All other mods settings are persisting.
What i do:
1.toggle on "xyz scale sliders" option.
2.change the body scale X,Y and Z(Body shape --> overall).
Issue:
it looks like abmx scales the xyz ratio not the chara's body.So when changing different poses like laying or tilting,the chara's body comes out a very odd ratio.
video:https://mega.nz/#!b8oxGCxD!Tl63QpKCO-LCtj7WNVKkwgk6SHfCH8HjXNVuLra8pao
thanks for writing this brillint plugin.
Is there any way we could hide the ABMX sliders? The maker's UI is already, so to say, not the friendliest one, and these new sliders/tabs are cluttering an interface even more.
I'm using a couple of plugins, which are depending on the ABMX, but I'm not using any ABMX functionality, so...
looks like change in this commit breaks PushUp during animation
55e32c1#diff-3b838fb1ed2bc5fd63cae672d09856c4R373-R376
Feet bones are reverted to default values when IK is enabled on character with heels on. Is this fixable?
To reproduce this issue:
I added the mod to the game exactly as instructed.
Current version of BepInEx 5.0.1.0
Illusion Mod API v1.11.1
and ABMX v4.3
and even checked with KK manager which states that both plugins are enabled but I get no additional sliders in game.
If a bone with an active length modifier also has a bone effect with a position modifier of 0,0,0 sent to it, it reverts to baseline instead of reverting to the length modified position.
A sample replication involves adding a length modifier to any of the bones affected by breathing (except the neck*) and turn on the breathing effect in AdvIKPlugin. At the bottom of each cycle when it calcs to 0 position modification the bone will snap to default for that frame and then snap back as the next frame applies a small position effect again.
I'm possibly (likely?) wrong but I think the issue is lines 146 to 150 of BoneModifier.cs are incorrect as it overwrites the length modifier with the position baseline which causes this and I think is unnecessary? But it's very likely I'm missing the scenario that's supposed to be addressing as I'm not fully following all the reset to baseline scenarios.
At least commenting this part of BoneModifier.cs out appears to fix things for me and doesn't seem to cause other issues.
{
BoneTransform.localPosition = new Vector3(
BoneTransform.localPosition.x + modifier.PositionModifier.x,
BoneTransform.localPosition.y + modifier.PositionModifier.y,
BoneTransform.localPosition.z + modifier.PositionModifier.z
);
_changedPosition = true;
}
// else if (_changedPosition)
// {
// BoneTransform.localPosition = _posBaseline;
// _changedPosition = false;
// }```
* - I thought this was just something weird with the neck as that was the initially reported case, so I changed that to a 0.01 y position min instead of 0 and didn't dig deeper until someone reported the same issue with a spine length modified character and I did some more looking.
Hair bone modifications are not loaded and missing when switching currently loaded characters to a character with a different head model. Loading any character freshly into Studio does not generate errors.
It possibly generates following error messages in the console:
[Warning:HS2ABMX (BonemodX)] Failed to find a bone ct_hairB in location Unknown - modifier will be ignored
[Warning:HS2ABMX (BonemodX)] Failed to find a bone ct_hairF in location Unknown - modifier will be ignored
Mainly want this for hairstyle adjustment.
I don't know if this a bug?my problem only?but it's really not good.
https://youtu.be/fMPsy8nyRzo
as video shown:
when girl set long legs long arms,and camera focus on feet or hands,she suddenly disappear.
it happened very serious when looking feet
I tested on BepInEx v5 release and BepInEx_x64_b4d5ee5_5.0.0.184
with AI_BepisPlugins_r13.0.1 + AIAPI_1.9.5 + AIABMX_3.5.1
game version is 1.0.4
sorry for bothering
I'm using AIABMX 3.4 for AI syoujyo Ver. 1.0.1 (I guess that is game version)
All bone settings back to default (100) when I did something like:
1. Loaded Costume Card inside ,it will restore all bone settings to default 100
2. Inside main game(story).Start story with a set girl, then go to "Data Terminal" replace set girl with other girl,save game.Restart game and replace set girl back.She's bone settings will go wrong.
so now,I cannot using Character Creation to change girl's costume.
And have problem with switching female character during story play.
It is very useful, hopefully it will be back in the next version
Support the new game of the renamed company.
nsfw: https://puu.sh/G2pu7/be07ca1d75.jpg
Works fine in editor and studio, but then in game, gravity reclaims it
When using ABMX, using Futa model as the male protagonist, part of the action will occur in the wrong place. What can I do?
Using ABMX
https://i.ibb.co/4R726c4/2.png
Without ABMX
https://i.ibb.co/9bJcSbj/1.png
Like left/right options, it would be very convenient to be able to adjust the whole scale of body parts.
This could work as sets of sliders at the top/bottom of pages or as tick box options.
The game is HS2. I want to edit the height of the female character in the H scene, I pressed the ABMX enable button, and it said no characters found to edit. How to solve it?
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.