Jump to content

[Project Zomboid] ZomboWin - A ZomboLewd Framework mod


Recommended Posts

Posted

So, quite simply as far as M/M and F/F animations goes and getting them to work, it's actually a simply matter since ZomboWin should already have the code to handle it.  All you really need to do is have the animations and setup the actors in the animation configs for gay or lesbian sex with same sex actors. Make sure the ID is unique if you are copying and editing any of the existing animation config files. I also changed 2 lines in ZLMain. Line 97 and line 129 from

	if maleCount ~= 2 and femaleCount ~= 2 then

To

	if true then

This is because as far as I can tell interferes with same sex somehow. Even if it did work it's likely redundant, because onAskForSex/onDefeatforSex section of code already checks for gay, lesbian, and straight actor pairings with its male and female count.

So, for anyone interested just, backup zombowin just in case, merge the gay patch's media file with your zombowin's and you should be good to go. If you aren't able to have homosexual relations with your comfort npc I have my modified copy of ZomboWin you lot can use that I do know for a fact works. Just be weary that my ZomboWin contains "more animations and sounds" if anyone didn't want to use that mod for some reason. I should note I haven't tested if you can have gay sex with the zeds from subduing them, so no guarantees on that working.

Hopefully this helps, have fun and stay safe everyone.

ZomboWin_Gay_Patch.zip ZomboWin.7z

Posted (edited)
On 8/27/2024 at 1:00 AM, weirn said:

So, quite simply as far as M/M and F/F animations goes and getting them to work, it's actually a simply matter since ZomboWin should already have the code to handle it.  All you really need to do is have the animations and setup the actors in the animation configs for gay or lesbian sex with same sex actors. Make sure the ID is unique if you are copying and editing any of the existing animation config files. I also changed 2 lines in ZLMain. Line 97 and line 129 from

	if maleCount ~= 2 and femaleCount ~= 2 then

To

	if true then

This is because as far as I can tell interferes with same sex somehow. Even if it did work it's likely redundant, because onAskForSex/onDefeatforSex section of code already checks for gay, lesbian, and straight actor pairings with its male and female count.

So, for anyone interested just, backup zombowin just in case, merge the gay patch's media file with your zombowin's and you should be good to go. If you aren't able to have homosexual relations with your comfort npc I have my modified copy of ZomboWin you lot can use that I do know for a fact works. Just be weary that my ZomboWin contains "more animations and sounds" if anyone didn't want to use that mod for some reason. I should note I haven't tested if you can have gay sex with the zeds from subduing them, so no guarantees on that working.

Hopefully this helps, have fun and stay safe everyone.

ZomboWin_Gay_Patch.zip 24.21 kB · 1 download ZomboWin.7z 13.04 MB · 2 downloads

 

Oh, very nice, thanks! :D  I have tried the patch and it seems to work great, although I think one or two of the oral animations is bugged between M and M. But its a great start! I will try the modded ZW file later too, for comparison. Still it is great of you to do this! 

EDIT: Tested it, same results. The good news is, I think its only one or maybe two oral animations that bug out. All the rest of the animations for each scene play out perfectly fine, whether I use the patch or the modified ZomboWin. If the bug happens I just hit escape to end the scene

Edited by mrmiazma
Posted
On 8/24/2024 at 9:05 AM, SolarEdge said:

There were some debug settings I forgot to comment out, good job pointing that out. That isn't a bug.

 

For the code savvy, look inside zombowindefeatzombiehandler.lua and look for the function playerDisabler(). Comment out these two codes player:setAllowSprint(bool); and player:setAllowRun(bool); your new game should work like normal.

 

I'll make a quick fix to reset that tomorrow to fix your character being stuck not running.

jsjsjs I was checking a lot, it took me like 3 hours looking for errors, which mod was the one that affected and ending up discovering that it was the same zombowin, I checked the npc mod and it didn't work either, post: I love you guys,

Posted (edited)
On 8/25/2024 at 12:27 PM, Yonchi said:

Yes but needs code, the animations are done just that they are on need of special coding behind to pop up only when you are nude and on the outside 🥰

I don't even think I got knowledge in replacing the walk and idle animation but who knows maybe it's simple maybe it's not (maybe it's even just a matter of file naming idk)

If anyone know a mod that does that tho I could use my great reverse engineering to figure out how

Edited by AlexTheMan21
Posted (edited)
Spoiler

 


Sorry but i didn't understand how can i download this mod? I tried putting files into game mod folder but it doesn't shows up. (I figured out, it was that i thought it's in ProjectZomboid>mods but in fact it was in C:/Users/Zomboid/mods)

Edited by SimSeQ
Posted
1 hour ago, AlexTheMan21 said:

I don't even think I got knowledge in replacing the walk and idle animation but who knows maybe it's simple maybe it's not (maybe it's even just a matter of file naming idk)

If anyone know a mod that does that tho I could use my great reverse engineering to figure out how

 

Variable Skin mod does that (changes the walk/idle animation. I always delete their idle (Kate_idle) coz it's shit.

 

I tried dropping in the 'innocent/shy" Fbx Files within that mod, and renamed them, but I think they need to be X files... 

 

Didn't work fo me, can't seem to properly export to X from fbx 🙄

Posted
1 hour ago, Miscuitten said:

 

Variable Skin mod does that (changes the walk/idle animation. I always delete their idle (Kate_idle) coz it's shit.

 

I tried dropping in the 'innocent/shy" Fbx Files within that mod, and renamed them, but I think they need to be X files... 

 

Didn't work fo me, can't seem to properly export to X from fbx 🙄

He means with conditionals, like when the player is in x condition the animation is: X 😜

But now that i think, there is a mod that changes the animation if your hp is below some % 🤔
@AlexTheMan21do your magic with this plsss 🥺
https://steamcommunity.com/sharedfiles/filedetails/?id=3265507347&searchtext=crawl

Posted
On 8/27/2024 at 7:00 AM, weirn said:

So, quite simply as far as M/M and F/F animations goes and getting them to work, it's actually a simply matter since ZomboWin should already have the code to handle it.  All you really need to do is have the animations and setup the actors in the animation configs for gay or lesbian sex with same sex actors. Make sure the ID is unique if you are copying and editing any of the existing animation config files. I also changed 2 lines in ZLMain. Line 97 and line 129 from

	if maleCount ~= 2 and femaleCount ~= 2 then

To

	if true then

This is because as far as I can tell interferes with same sex somehow. Even if it did work it's likely redundant, because onAskForSex/onDefeatforSex section of code already checks for gay, lesbian, and straight actor pairings with its male and female count.

So, for anyone interested just, backup zombowin just in case, merge the gay patch's media file with your zombowin's and you should be good to go. If you aren't able to have homosexual relations with your comfort npc I have my modified copy of ZomboWin you lot can use that I do know for a fact works. Just be weary that my ZomboWin contains "more animations and sounds" if anyone didn't want to use that mod for some reason. I should note I haven't tested if you can have gay sex with the zeds from subduing them, so no guarantees on that working.

Hopefully this helps, have fun and stay safe everyone.

ZomboWin_Gay_Patch.zip 24.21 kB · 2 downloads ZomboWin.7z 13.04 MB · 4 downloads

I did the patch, but the females just do the normal bite attack 😭

Is it cause i have the "bump" thing from the ItFollows, where i need to get staggered to get into an animation? 😢

Posted
7 hours ago, Miscuitten said:

 

Variable Skin mod does that (changes the walk/idle animation. I always delete their idle (Kate_idle) coz it's shit.

 

I tried dropping in the 'innocent/shy" Fbx Files within that mod, and renamed them, but I think they need to be X files... 

 

Didn't work fo me, can't seem to properly export to X from fbx 🙄

No, the file format has nothing to do with it :

the thing is that you have to replace the NAME of the ANIMATION that launches Kate_idle...


Renaming the Yonchi file is useless, you have to go to

\AnimationConfigs

directory of your mod and find the name of the Kate_idle animation, there you replace this name with the name of the Yonchi animation which must be the same name as that of its file.

Posted (edited)
On 8/28/2024 at 4:21 AM, mrmiazma said:

 

Oh, very nice, thanks! :D  I have tried the patch and it seems to work great, although I think one or two of the oral animations is bugged between M and M. But its a great start! I will try the modded ZW file later too, for comparison. Still it is great of you to do this! 

EDIT: Tested it, same results. The good news is, I think its only one or maybe two oral animations that bug out. All the rest of the animations for each scene play out perfectly fine, whether I use the patch or the modified ZomboWin. If the bug happens I just hit escape to end the scene


Thats good to hear though the errant oral bug is definitely vexing to hear. One of those bugs I'm not sure I know how to fix though it's possible the animation has something to do with it, maybe? I dunno enough about zomboid animations to know why only the males seemingly affected by this.
 

10 hours ago, Yonchi said:

I did the patch, but the females just do the normal bite attack 😭

Is it cause i have the "bump" thing from the ItFollows, where i need to get staggered to get into an animation? 😢


Mhn I see, I would be surprised if my patch somehow affected zombowin defeat given that is what dictates if the zeds will though I just have realized why the confusion. OnDefeatforSex doesn't handle zeddy defeats rather it handles defeats by the player I believe. That is a theory though I didn't test if you can peg a zed. I think I know how to remedy that. This is a quick on the spot sorta patch, but I will of course tell what I am doing. Zombo defeat was limited to straight sex only so deleting this specific line should make zombies aggressively bisexual since it has the note saying, "Only straight zombie sex for now".
 

			if isMainHeroFemale == zombieIsFemale then clearAnim(target); --[[print("MarkMarkMark");]] return; end


That being said I am not 100% sure about this due to how extensive the checks are for zombo defeat. So, I highly recommended back your stuff up. So, to install merge the media file from the Zdefeat_Patch into zombowin. This adds the Zdefeat animation config to the Gay and Lesbian folder. Next merge the Bi_Zeds_Patch media file into Zombowin defeat. This replaces the zombie defeat handler with my modified version. This is un-tested when I posted this so I don't know if it does actually work just that in theory it should. If it doesn't just reinstall ZomboWinDefeat and the zeds will be back to their default lewd behavior.

Ignore these files they do nothing

ZomboWin_Zdefeat_Patch.7z ZomboWinDefeat _Bi_Zeds_Patch.7z

Edited by weirn
Update
Posted (edited)

Warning : this is going to be a long post, I will put spoiler tags so as not to clutter the discussion thread. 🙂

 

I think I found a loophole to display animations containing more than 2 individuals.

I just spent 5 days in a row and I need help. 🙏

I call on our coder friends @AlexTheMan21 @SolarEdge @Zikhad @weirn and all those I don't know.

 

I will first write what I need and then I will go into details about why.

 

I need to know how the game manages the information of the armature of a model, and especially its bones.
I need to know why the game refuses to display a model containing an armature with a greater number of bones than the original model file.

 

 

Details :
 

Spoiler


Basically an animation is a file that tells the game where and when to place a particular bone of a model.

 

A model is made up of 3 things :

  1. a 3d Body
  2. an armature, the 'skeleton' with its bones
  3. a texture

 

The game allows you to display a model with any number of Bodies anywhere.


Normally the guys at Indie Stone have created character models with a single body : typically our character or a zombie.


But nothing prevents you from creating a model that displays a body AND another body a little further next to the first.

 

If you follow me the trick lies here : display a sort of 'multi-model'.

 

Well :

  • The 3D body I know how to do = we forget
  • The texture on the second Body I know how to do = we forget
  • Here we focus on the armature : the bones.

A model can only have one armature, but nothing prevents this armature from being separated = think of it as your left arm and your right arm : you can move one and make another movement with the other and the same for your hands.
It's independent.


Create a second armature I know how to do AND attach the second armature to the second body I know how to do too.

 

A model can ONLY be displayed if it has ONE Body and ONE armature.

So :
I also know how to reduce the 2 armatures into one and the same for the bodies = we have again a model with a single body and a single armature = GREAT we're good, right?!
Well no, we're not good, the problem :


The game categorically refuses to display an armature stuck on a second body even if the model actually only has one armature and one body (they are duplicated but I 'glued' them together before exporting).
More precisely, the game clearly does not understand why there are additional bones. It does display something but it's mush.


I'm pasting here the error code provided by the game in this case :

ERROR: General     , 1724963861801> ExceptionLogger.logException> Exception thrown java.lang.ArrayIndexOutOfBoundsException: Index 90 out of bounds for length 60 at AnimationTrack.get line:113.
ERROR: General     , 1724963861801> DebugLogStream.printException> Stack trace:
java.lang.ArrayIndexOutOfBoundsException: Index 90 out of bounds for length 60
	at zombie.core.skinnedmodel.animation.AnimationTrack.get(AnimationTrack.java:113)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.getTrackTransform(AnimationPlayer.java:1389)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateBoneAnimationTransform_Internal(AnimationPlayer.java:1313)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateBoneAnimationTransform(AnimationPlayer.java:1253)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateMultiTrackBoneTransforms_DeferredMovementOnly(AnimationPlayer.java:1471)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateAnimation_NonVisualOnly(AnimationPlayer.java:584)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateInternal(AnimationPlayer.java:482)
	at zombie.GameProfiler.invokeAndMeasure(GameProfiler.java:182)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.Update(AnimationPlayer.java:467)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.Update(AnimationPlayer.java:461)
	at zombie.characters.IsoGameCharacter.postUpdateInternal(IsoGameCharacter.java:12165)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.characters.IsoGameCharacter.postupdate(IsoGameCharacter.java:12063)
	at zombie.characters.IsoZombie.postUpdateInternal(IsoZombie.java:2112)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.characters.IsoZombie.postupdate(IsoZombie.java:2104)
	at zombie.MovingObjectUpdateSchedulerUpdateBucket.postupdate(MovingObjectUpdateSchedulerUpdateBucket.java:97)
	at zombie.MovingObjectUpdateScheduler.postupdate(MovingObjectUpdateScheduler.java:185)
	at zombie.CollisionManager.resolveContactsInternal(CollisionManager.java:411)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.CollisionManager.ResolveContacts(CollisionManager.java:236)
	at zombie.iso.IsoWorld.updateInternal(IsoWorld.java:3502)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.iso.IsoWorld.update(IsoWorld.java:3427)
	at zombie.gameStates.IngameState.updateInternal(IngameState.java:1617)
	at zombie.gameStates.IngameState.update(IngameState.java:1333)
	at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:101)
	at zombie.GameWindow.logic(GameWindow.java:298)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.GameWindow.frameStep(GameWindow.java:765)
	at zombie.GameWindow.run_ez(GameWindow.java:681)
	at zombie.GameWindow.mainThread(GameWindow.java:495)
	at java.base/java.lang.Thread.run(Unknown Source)

 

This may give you a starting point to find which file manages the attribution or contains the 'list' of bones of a model.

 

Because I came to the conclusion that if we can modify a piece of code controlling the management of bones of a model we could display the 2 bodies each having their own bones and being able to be differently animated WITHOUT adding anything else in the ZomboWin code.

 

I am sure that we are very close to the goal but I am stuck on this management of the game of bones of a model.

 

If someone has a genius idea, I am listening with joy. 🫡

 

Edit :

I add here the multi-model mod.
This is the best result I can get so far.

ZomboWin Multi Model.zip

Warning : This is a broken mod, it displays an error code.
This is just for coders who would like to see the result if it can help them find a solution.
If you are reading this and are not a coder : DO NOT download this mod.

Edited by BlaBla012345
Posted
35 minutes ago, weirn said:
On 8/28/2024 at 10:21 AM, mrmiazma said:

Oh, very nice, thanks! :D  I have tried the patch and it seems to work great, although I think one or two of the oral animations is bugged between M and M. But its a great start! I will try the modded ZW file later too, for comparison. Still it is great of you to do this! 

EDIT: Tested it, same results. The good news is, I think its only one or maybe two oral animations that bug out. All the rest of the animations for each scene play out perfectly fine, whether I use the patch or the modified ZomboWin. If the bug happens I just hit escape to end the scene


Thats good to hear though the errant oral bug is definitely vexing to hear. One of those bugs I'm not sure I know how to fix though it's possible the animation has something to do with it, maybe? I dunno enough about zomboid animations to know why only the males seemingly affected by this.

I read here that there are questions about animations.
Since it's my area I'll try to do something.


If possible I would need either the name of the 2 animations in question or a screenshot so that I can identify the problem more quickly.
(fortunately, and unfortunately again, there are still only a few animations available: so I should quickly circumscribe the problem, I hope).

 

I downloaded your patch but I just don't have enough time to do the tests now, I hope this weekend.

Posted
49 minutes ago, weirn said:


Thats good to hear though the errant oral bug is definitely vexing to hear. One of those bugs I'm not sure I know how to fix though it's possible the animation has something to do with it, maybe? I dunno enough about zomboid animations to know why only the males seemingly affected by this.
 


Mhn I see, I would be surprised if my patch somehow affected zombowin defeat given that is what dictates if the zeds will though I just have realized why the confusion. OnDefeatforSex doesn't handle zeddy defeats rather it handles defeats by the player I believe. That is a theory though I didn't test if you can peg a zed. I think I know how to remedy that. This is a quick on the spot sorta patch, but I will of course tell what I am doing. Zombo defeat was limited to straight sex only so deleting this specific line should make zombies aggressively bisexual since it has the note saying, "Only straight zombie sex for now".
 

			if isMainHeroFemale == zombieIsFemale then clearAnim(target); --[[print("MarkMarkMark");]] return; end


That being said I am not 100% sure about this due to how extensive the checks are for zombo defeat. So, I highly recommended back your stuff up. So, to install merge the media file from the Zdefeat_Patch into zombowin. This adds the Zdefeat animation config to the Gay and Lesbian folder. Next merge the Bi_Zeds_Patch media file into Zombowin defeat. This replaces the zombie defeat handler with my modified version. This is un-tested when I posted this so I don't know if it does actually work just that in theory it should. If it doesn't just reinstall ZomboWinDefeat and the zeds will be back to their default lewd behavior.

ZomboWin_Zdefeat_Patch.7z 1.27 kB · 1 download ZomboWinDefeat _Bi_Zeds_Patch.7z 11.95 kB · 1 download

It does not work sadly 😭

The female is still normal biting, i think for now in zeds cannot be possible 😥

Posted
2 hours ago, Yonchi said:

It does not work sadly 😭

The female is still normal biting, i think for now in zeds cannot be possible 😥


Damn was crossing my fingers that the solution was simple. Though I guess I should have expected as much. That was there since zombolewd meaning there was likely more to it. Especially now that as I look at it there is a ton of checks being made to try and simulate a horny zed experience. Guess it is straight zombies for now.
 

2 hours ago, BlaBla012345 said:

I read here that there are questions about animations.
Since it's my area I'll try to do something.


If possible I would need either the name of the 2 animations in question or a screenshot so that I can identify the problem more quickly.
(fortunately, and unfortunately again, there are still only a few animations available: so I should quickly circumscribe the problem, I hope).

 

I downloaded your patch but I just don't have enough time to do the tests now, I hope this weekend.


Mhn, is all good take your time. I can probably narrow it down in my freetime. Will update if I do get around to pinning it down.

Now the error log looking at it. I think it's AnimationTrack.class that is doing this. You can find the file along with similar such files in "steamapps\common\ProjectZomboid\zombie\core\skinnedmodel\animation" There are files in the animation folder that clearly have stuff to do with bones. Though given the error starts at AnimationTrack that is probably the first place to look. Yet these files are source code, so it complicates things is the short of it.  I personally don't know much else though it doesn't look like there is a nice tidy solution.

Posted
6 hours ago, BlaBla012345 said:

Warning : this is going to be a long post, I will put spoiler tags so as not to clutter the discussion thread. 🙂

 

I think I found a loophole to display animations containing more than 2 individuals.

I just spent 5 days in a row and I need help. 🙏

I call on our coder friends @AlexTheMan21 @SolarEdge @Zikhad @weirn and all those I don't know.

 

I will first write what I need and then I will go into details about why.

 

I need to know how the game manages the information of the armature of a model, and especially its bones.
I need to know why the game refuses to display a model containing an armature with a greater number of bones than the original model file.

 

 

Details :
 

  Reveal hidden contents


Basically an animation is a file that tells the game where and when to place a particular bone of a model.

 

A model is made up of 3 things :

  1. a 3d Body
  2. an armature, the 'skeleton' with its bones
  3. a texture

 

The game allows you to display a model with any number of Bodies anywhere.


Normally the guys at Indie Stone have created character models with a single body : typically our character or a zombie.


But nothing prevents you from creating a model that displays a body AND another body a little further next to the first.

 

If you follow me the trick lies here : display a sort of 'multi-model'.

 

Well :

  • The 3D body I know how to do = we forget
  • The texture on the second Body I know how to do = we forget
  • Here we focus on the armature : the bones.

A model can only have one armature, but nothing prevents this armature from being separated = think of it as your left arm and your right arm : you can move one and make another movement with the other and the same for your hands.
It's independent.


Create a second armature I know how to do AND attach the second armature to the second body I know how to do too.

 

A model can ONLY be displayed if it has ONE Body and ONE armature.

So :
I also know how to reduce the 2 armatures into one and the same for the bodies = we have again a model with a single body and a single armature = GREAT we're good, right?!
Well no, we're not good, the problem :


The game categorically refuses to display an armature stuck on a second body even if the model actually only has one armature and one body (they are duplicated but I 'glued' them together before exporting).
More precisely, the game clearly does not understand why there are additional bones. It does display something but it's mush.


I'm pasting here the error code provided by the game in this case :

ERROR: General     , 1724963861801> ExceptionLogger.logException> Exception thrown java.lang.ArrayIndexOutOfBoundsException: Index 90 out of bounds for length 60 at AnimationTrack.get line:113.
ERROR: General     , 1724963861801> DebugLogStream.printException> Stack trace:
java.lang.ArrayIndexOutOfBoundsException: Index 90 out of bounds for length 60
	at zombie.core.skinnedmodel.animation.AnimationTrack.get(AnimationTrack.java:113)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.getTrackTransform(AnimationPlayer.java:1389)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateBoneAnimationTransform_Internal(AnimationPlayer.java:1313)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateBoneAnimationTransform(AnimationPlayer.java:1253)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateMultiTrackBoneTransforms_DeferredMovementOnly(AnimationPlayer.java:1471)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateAnimation_NonVisualOnly(AnimationPlayer.java:584)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateInternal(AnimationPlayer.java:482)
	at zombie.GameProfiler.invokeAndMeasure(GameProfiler.java:182)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.Update(AnimationPlayer.java:467)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.Update(AnimationPlayer.java:461)
	at zombie.characters.IsoGameCharacter.postUpdateInternal(IsoGameCharacter.java:12165)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.characters.IsoGameCharacter.postupdate(IsoGameCharacter.java:12063)
	at zombie.characters.IsoZombie.postUpdateInternal(IsoZombie.java:2112)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.characters.IsoZombie.postupdate(IsoZombie.java:2104)
	at zombie.MovingObjectUpdateSchedulerUpdateBucket.postupdate(MovingObjectUpdateSchedulerUpdateBucket.java:97)
	at zombie.MovingObjectUpdateScheduler.postupdate(MovingObjectUpdateScheduler.java:185)
	at zombie.CollisionManager.resolveContactsInternal(CollisionManager.java:411)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.CollisionManager.ResolveContacts(CollisionManager.java:236)
	at zombie.iso.IsoWorld.updateInternal(IsoWorld.java:3502)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.iso.IsoWorld.update(IsoWorld.java:3427)
	at zombie.gameStates.IngameState.updateInternal(IngameState.java:1617)
	at zombie.gameStates.IngameState.update(IngameState.java:1333)
	at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:101)
	at zombie.GameWindow.logic(GameWindow.java:298)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.GameWindow.frameStep(GameWindow.java:765)
	at zombie.GameWindow.run_ez(GameWindow.java:681)
	at zombie.GameWindow.mainThread(GameWindow.java:495)
	at java.base/java.lang.Thread.run(Unknown Source)

 

This may give you a starting point to find which file manages the attribution or contains the 'list' of bones of a model.

 

Because I came to the conclusion that if we can modify a piece of code controlling the management of bones of a model we could display the 2 bodies each having their own bones and being able to be differently animated WITHOUT adding anything else in the ZomboWin code.

 

I am sure that we are very close to the goal but I am stuck on this management of the game of bones of a model.

 

If someone has a genius idea, I am listening with joy. 🫡

 

Edit :

I add here the multi-model mod.
This is the best result I can get so far.

ZomboWin Multi Model.zip 1.47 MB · 2 downloads

Warning : This is a broken mod, it displays an error code.
This is just for coders who would like to see the result if it can help them find a solution.
If you are reading this and are not a coder : DO NOT download this mod.

I before had a whole animation group just looking into this and our result was basically base game java code had some limiter of some sort but I can look into your specific case when I got time to see if it's the same or not 

Posted
5 hours ago, weirn said:


Damn was crossing my fingers that the solution was simple. Though I guess I should have expected as much. That was there since zombolewd meaning there was likely more to it. Especially now that as I look at it there is a ton of checks being made to try and simulate a horny zed experience. Guess it is straight zombies for now.
 


Mhn, is all good take your time. I can probably narrow it down in my freetime. Will update if I do get around to pinning it down.

Now the error log looking at it. I think it's AnimationTrack.class that is doing this. You can find the file along with similar such files in "steamapps\common\ProjectZomboid\zombie\core\skinnedmodel\animation" There are files in the animation folder that clearly have stuff to do with bones. Though given the error starts at AnimationTrack that is probably the first place to look. Yet these files are source code, so it complicates things is the short of it.  I personally don't know much else though it doesn't look like there is a nice tidy solution.

Thanks to all of you.
I just looked at the contents of this file in an online decompiler

Java Decompiler online

(there is also JD-GUI)

 

I knew it wouldn't be easy.

 

3 hours ago, AlexTheMan21 said:

I before had a whole animation group just looking into this and our result was basically base game java code had some limiter of some sort but I can look into your specific case when I got time to see if it's the same or not 

I see... I'm not the first to look at this.

 

If a whole group can't do it, then I guess we have little chance of finding a miracle solution. 🤔

 

Well... I guess we'll go the traditional way then, the good old method of creating code for ZomboWin Handler.

 

Don't waste too much time on this if you think it's not a viable solution and thanks for reading my post. 🫡

Posted (edited)
1 hour ago, BlaBla012345 said:

Thanks to all of you.
I just looked at the contents of this file in an online decompiler

Java Decompiler online

(there is also JD-GUI)

 

I knew it wouldn't be easy.

 

I see... I'm not the first to look at this.

 

If a whole group can't do it, then I guess we have little chance of finding a miracle solution. 🤔

 

Well... I guess we'll go the traditional way then, the good old method of creating code for ZomboWin Handler.

 

Don't waste too much time on this if you think it's not a viable solution and thanks for reading my post. 🫡

It was just me in coding and 2 animators so not really a group. Also I'm unsure if u can replace base code like u can with lua but if so then we could replace the code in a mod to remove the limit but I'll take a look when I'm available 

 

I have lost the real reason why ours didn't work but I believe there was a limit to x amount of bones in Java and exceeding that gave an error

Edited by AlexTheMan21
Posted
4 hours ago, mobƎ said:

Recommend some model placer mods plz, I haven't use any of those before

I use PearShaped XL cause i like the model to be thicc, but u can use VariableSkin v2 that is also good if u like more skinny characters 😜

Posted

Trait [Special: Pacify] doesn't seem to work in Zombowin1.23, whether I have [Special: Pacify] or not, zombies will get up after a brief fall and continue to grab me.

screenshot_30-08-2024_17-49-33.png

Posted

@BlaBla012345

I like your enthusiasm :) thank you. I have 0 knowledge of animation so im no help there. But I think the easier way would be to code in a dummy#2 to play alongside the player and dummy#1, using animations that would look right with a 3rd. Though this would probably require some rewriting of ZomboLewds original codes to not assign position based on male/ female rather, assign player, dummy01 and dummy02.

 

@weirn

Its interesting that samesex works at all! Ive experiemented and the same sex characters will occupy the same space and play the same animation. 🤔

 

@Yonchi

At first I was sure the way a character walks couldn't be conditional but thank you for linking a mod that does exactly just that. 🙂

 

There's going to be a long wait before the next update as I am struggling to find time to work on this mod 🙁 just so everyone is aware of the situation. My apologies if you were really looking forward to the next update. I will still be working on the mod, just not as much time put towards it.

Posted

I've got a potentially dumb question; how do you stop the zombies from just killing you when they catch you? 

I've tried a couple characters with this mod now, playing with harder settings so there's a chance I get caught out. Every time i've been swarmed or whatever else, they've just mauled me to death without assaulting me, which defeats the point a little bit. Am I missing something?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...