Jump to content

FNIS for Modders / FNIS 4.0 [WIP]


fore

Recommended Posts

 

I'll supply a copy without the Papyrus utilities. It's possible that multiple calls to a function that use those utilities in a threaded environment can turn off the papyrus log.

 

 

Could you please call the Variables

 

FNISMajor, FNISMinor1, FNISMinor2. FNISFlags 
and
FNISCreatureMajor, FNISCreatureMinor1, FNISCreatureMinor2. FNISCreatureFlags 
 
I don't need to distinguish between builds. But I use 3 version levels
 
major: major changes and upgrades 
minor1: functional enhancements
minor2: pure bug fixes
 
Thanks.
Link to comment

Might be the wrong place for my question..

 

Wondering about loop/non loop animation. But what exactly that define an animation for looping or not ? is it only can be set inside the following animation.txt or the animation it self.

 

thanks 

Link to comment

Might be the wrong place for my question..

 

Wondering about loop/non loop animation. But what exactly that define an animation for looping or not ? is it only can be set inside the following animation.txt or the animation it self.

 

thanks 

Animation files (like mt_idle.hkx) always define one cycle of the animation.

 

The behavior files (like mt_behavior.hkx) define, if an animation file under certain conditions is played looping or only once (acyclic).

 

And if you define the animation with FNIS, then the parameter "-a" in the Animation list will determine, whether the animation file is called acyclic or not in the FNIS behavior files.

Link to comment

I just recently implemented Creature support into my mod, however I have a quick question/concern.

 

In FNISZoo I noticed you're sending specific animation events for some creatures, leaving most of them using returnToDefault

 

Sure enough I've noticed returnToDefault doesn't work for some of the creatures, and being lazy I'd rather not have to code in overly specific use cases. So I'm doing this to reset the idle, on both npc's and creatures:

function StopAnimating(bool quick = false)
	if IsCreature
		; // Reset Creature Idle
		Debug.SendAnimationEvent(ActorRef, "ReturnToDefault")
		Debug.SendAnimationEvent(ActorRef, "FNISDefault")
		Debug.SendAnimationEvent(ActorRef, "IdleReturnToDefault")
		Debug.SendAnimationEvent(ActorRef, "ForceFurnExit")
	elseif quick || Game.GetCameraState() == 3
		; // Reset NPC/PC Idle Quickly
		Debug.SendAnimationEvent(ActorRef, "IdleForceDefaultState")
	else
		; // Ragdoll NPC/PC
		ActorRef.PushActorAway(ActorRef, 1)
	endIf
endFunction

It works fine in that it resets the creatures/actors I've tested with; I'm just curious if I should be worried about spamming a creature with 4 sae's in rapid succession?  It's has no discernible negative impact in my light testing, but not sure if my concern is well placed or not.

Link to comment

I think you are save with how you do that. I only used the other ones in case ReturnToDefault didn't exist, and the new FNISDefault only if I didn't find any AnimEvent which would return to a default state. And if you send an event which doesn't exist for a creature it will simply be skipped.

 

Furthermore, in almost all these cases, the transitions using these events had been defined as local, which means they are skipped anyway when called with SAE or playidle. I had to change one to global to make a reset possible in first place. Creatures don't have that massive interaction with the game engine, so they are almost completely defined with local transitions, and no way to interact from outside.

 

The problem is that Bethesda didn't have naming conventions in many places. Look into that CreatureList.txt file, and you will know what I mean.

 

If you should have any problems, which I doubt, I can add this FNISDefault to all creatures. But right now I think I will concentrate on the release. Probably in your interest too. Just a couple of days for the final beta. :)

Link to comment

 

 

I'll supply a copy without the Papyrus utilities. It's possible that multiple calls to a function that use those utilities in a threaded environment can turn off the papyrus log.

 

 

Could you please call the Variables

 

FNISMajor, FNISMinor1, FNISMinor2. FNISFlags 
and
FNISCreatureMajor, FNISCreatureMinor1, FNISCreatureMinor2. FNISCreatureFlags 
 
I don't need to distinguish between builds. But I use 3 version levels
 
major: major changes and upgrades 
minor1: functional enhancements
minor2: pure bug fixes
 
Thanks.

 

 

Do you have any flags and their bitmasks that you want me to define in the script?

Link to comment

 

Do you have any flags and their bitmasks that you want me to define in the script?

 

 

The only thing that came into my mind are 3 bits for a beta. I'm sure I will never make a 4 beta sequence an more, but maybe beta bugfixes.

 

Others than that I have no idea. Not something that any modder would need to get values for.

Link to comment

FNIS 4.0 Beta 4 is out

 

This is the final Beta, and is mainly intended to allow modders to adapt to the new FURNITURE syntax (arbitrary number of AnimFile and AnimObjects. And allow me to update the documentation, especially make a better "Modder's Doc".

 

Target RELEASE DATE for FNIS 4.0 Final: October 2, 2013

 

Some remarks:

  • This was a very intense update. And although I did a lot of testing, this release can be a little less stable than usual.
  • Modders, please use the next 7 days to update your mods to the new furniture format. I will di whatever I can to keep this October 2 date.
  • Also please be aware that I have tightened the "Consistence Check" (e.g. file existence). So users will complain about warnings and messages where they didn't before. But I did that after I spent 3 hours looking for problems in the FNIS Zoo 1.0, caused by simple file name typos

 

EDIT: Could someone please help me and compile a list of FNIS based mods uploaded here at LoversLab? I would like to add them in my Nexus description. Thanks.

 

 

Link to comment

Could you shed some light on how to do dog/wolf animations for me? I know you've said they are messed up in some way, but I can't seem to find how exactly and what to do about it. I tried just doing what it looked like fniszoo was doing, but couldn't seem to get it to work when testing animations on the wolf from fniszoo.

 

I have these files:

 

canine\animations\SexLabCreature\FNIS_SexLabCreature_dog_List.txt

canine\animations\SexLabCreature\FNIS_SexLabCreature_wolf_List.txt

canine\behaviors\FNIS_SexLabCreature_dog_Behavior.hkx

canine\behaviors\FNIS_SexLabCreature_wolf_Behavior.hkx

 

also have this one, though I'm not sure if it's supposed to exists or the other one is

canine\behaviors wolf\FNIS_SexLabCreature_wolf_Behavior.hkx

 

 

dog animations play fine, but none of the animation events I'm sending to the wolf get processed. They use the same animation event names and both dog and wolf used for testing are the ones in fniszoo if that matters.

Link to comment

Could you shed some light on how to do dog/wolf animations for me? I know you've said they are messed up in some way, but I can't seem to find how exactly and what to do about it. I tried just doing what it looked like fniszoo was doing, but couldn't seem to get it to work when testing animations on the wolf from fniszoo.

 

I have these files:

 

canine\animations\SexLabCreature\FNIS_SexLabCreature_dog_List.txt

canine\animations\SexLabCreature\FNIS_SexLabCreature_wolf_List.txt

canine\behaviors\FNIS_SexLabCreature_dog_Behavior.hkx

canine\behaviors\FNIS_SexLabCreature_wolf_Behavior.hkx

 

also have this one, though I'm not sure if it's supposed to exists or the other one is

canine\behaviors wolf\FNIS_SexLabCreature_wolf_Behavior.hkx

 

 

dog animations play fine, but none of the animation events I'm sending to the wolf get processed. They use the same animation event names and both dog and wolf used for testing are the ones in fniszoo if that matters.

 

canine\behaviors wolf\FNIS_SexLabCreature_wolf_Behavior.hkx

is the corrrect one. dog_Behavior and bothe AnimLists are correct too.

 

Did you change behaviors wolf\wolfbehavior_FNISXXX.hkx to wolfbehavior_FNIS.hkx? The XXX renamning excludes the wolf AnimList from being processed.

 

I don't know if you saw my response about this dog/wolf issue in another thread ("dog/wolf fix"). It might help clarify the background.

 

This is not a fix, unfortunately. What you created with replacing the dogproject is a wolf in a dog's fur. Meaning, the dog has the specific wolf animations, but it now lacks specific dog animations. Most likely the the domesticated stuff. For example the dog has a specific tail behavior subtree, wolves have not. This might also break dog related quests (where you have to follow a dog).

 

The problem is NOT a wolf/dog specific FNIS bug. Wolf and dog are implemented the SAME way as are 48 other characters, creatures, tails, and plants. The problem must to be way Beth has mingled wolf and dog behavior elements. In the wolf behaviors there are dog "elements" and there are different types of wolf elements in dog behaviors. If you look into the dog behavior folder you even find a reduced version of wolf.hklx.

 

Once I got 4.0 released I will try some more things, but honestly, I don't have big hopes. The biggest hope I have, that a modder finds a combination of wolf/dog animation lists which don't show the CTD, and then I can test from there for a work-around. But that's also not very likely. Usually, if you have t-shape or CTD with behaviors, then it's immediate and consistent, until you remove the cause of it.

 
Link to comment

canine\behaviors wolf\FNIS_SexLabCreature_wolf_Behavior.hkx

is the corrrect one. dog_Behavior and bothe AnimLists are correct too.

 

Did you change behaviors wolf\wolfbehavior_FNISXXX.hkx to wolfbehavior_FNIS.hkx? The XXX renamning excludes the wolf AnimList from being processed.

 

I don't know if you saw my response about this dog/wolf issue in another thread ("dog/wolf fix"). It might help clarify the background.

 

Thank, got it all set now.

 

I just regenerated all my creature behaviors using the new beta, however now whenever I do a Consistence Check I get the following.

 

Duplicate AnimFile VampireLord_Doggystyle_A2_S1.hkx for vampirelord, mods SexLabCreature and standard

Duplicate AnimFile VampireLord_Doggystyle_A2_S2.hkx for vampirelord, mods SexLabCreature and standard
Duplicate AnimFile VampireLord_Doggystyle_A2_S3.hkx for vampirelord, mods SexLabCreature and standard
Duplicate AnimFile VampireLord_Doggystyle_A2_S4.hkx for vampirelord, mods SexLabCreature and standard
Duplicate AnimFile VampireLord_Holding_A2_S1.hkx for vampirelord, mods standard and SexLabCreature
Duplicate AnimFile VampireLord_Holding_A2_S2.hkx for vampirelord, mods SexLabCreature and standard
Duplicate AnimFile VampireLord_Holding_A2_S3.hkx for vampirelord, mods standard and SexLabCreature
Duplicate AnimFile VampireLord_Holding_A2_S4.hkx for vampirelord, mods standard and SexLabCreature
Duplicate AnimFile VampireLord_Missionary_A2_S1.hkx for vampirelord, mods SexLabCreature and standard
Duplicate AnimFile VampireLord_Missionary_A2_S2.hkx for vampirelord, mods SexLabCreature and standard
Duplicate AnimFile VampireLord_Missionary_A2_S3.hkx for vampirelord, mods SexLabCreature and standard
Duplicate AnimFile VampireLord_Missionary_A2_S4.hkx for vampirelord, mods SexLabCreature and standard
 

 

 

Don't see duplicated files anywhere and I haven't changed anything vampirelord's related since beta 3 other than to regenerate it's behavior file just now under beta 4.

Link to comment

This should do it.

Full script in the spoiler

 

Scriptname FNIS Hidden
; =============================================================================
; FNIS Versioning =============================================================
; created by: jbezorg@yaiws.com
; =============================================================================


; =============================================================================
; FNIS.GetVersion() ===========================================================
; =============================================================================
; This function returns the concatenation of Major & minor versions as well
; as the version flags. A period (full stop) delimiter is used.
;
; @param bool abCreature - check FNIS Creature Pack version info. defaults to
;        false and FNIS Behavior version info.
; @return string - concatenated version info
string function GetVersion( bool abCreature = false ) global
	actor kPlayer = Game.GetPlayer()

	if abCreature
		return kPlayer.GetAnimationVariableInt("FNISCreatureMajor") as String \
		+ "." + kPlayer.GetAnimationVariableInt("FNISCreatureMinor1") as String \
		+ "." + kPlayer.GetAnimationVariableInt("FNISCreatureMinor2") as String \
		+ "." + kPlayer.GetAnimationVariableInt("FNISCreatureFlags") as String
	else
		return kPlayer.GetAnimationVariableInt("FNISmajor") as String \
		+ "." + kPlayer.GetAnimationVariableInt("FNISMinor1") as String \
		+ "." + kPlayer.GetAnimationVariableInt("FNISMinor2") as String \
		+ "." + kPlayer.GetAnimationVariableInt("FNISFlags") as String
	endIf
endFunction

; =============================================================================
; FNIS.VersionCompare() =======================================================
; =============================================================================
; This function will parse a concatenated version string and compare it to the
; current version of FNIS installed. This function returns an int reflecting
; the result of the comparision between Major, Minor1 & Minor2 version numbers.
; Note that FNISFlags values are not compared.
;
;  0 = Both versions match.
;  1 = The installed version is newer/greater than the compared version.
; -1 = The installed version is older/less than the compared version.
;
; @param string asVersion - concatenated version string returned from GetVersion()
; @param bool abCreature - check FNIS Creature Pack version info. defaults to
;        false and FNIS Behavior version info.
; @return int - 0 
int function VersionCompare( string asVersion, bool abCreature = false ) global
	int iCharPos
	int iInstMajor
	int iInstMinor1
	int iInstMinor2
	
	actor kPlayer = Game.GetPlayer()

	iCharPos  = StringUtil.Find(asVersion, ".")
	int iCompMajor = StringUtil.Substring(asVersion, 0, iCharPos) as int
	asVersion = StringUtil.Substring(asVersion, iCharPos + 1)

	iCharPos   = StringUtil.Find(asVersion, ".")
	int iCompMinor1 = StringUtil.Substring(asVersion, 0, iCharPos) as int
	asVersion  = StringUtil.Substring(asVersion, iCharPos + 1)

	iCharPos   = StringUtil.Find(asVersion, ".")
	int iCompMinor2 = StringUtil.Substring(asVersion, 0, iCharPos) as int
	asVersion  = StringUtil.Substring(asVersion, iCharPos + 1)

	if abCreature
		iInstMajor  = kPlayer.GetAnimationVariableInt("FNISCreatureMajor")
		iInstMinor1 = kPlayer.GetAnimationVariableInt("FNISCreatureMinor1")
		iInstMinor2 = kPlayer.GetAnimationVariableInt("FNISCreatureMinor2")
	else
		iInstMajor  = kPlayer.GetAnimationVariableInt("FNISmajor")
		iInstMinor1 = kPlayer.GetAnimationVariableInt("FNISMinor1")
		iInstMinor2 = kPlayer.GetAnimationVariableInt("FNISMinor2")
	endIf

	if iInstMajor == iCompMajor
		if iInstMinor1 == iCompMinor1
			if iInstMinor2 == iCompMinor2
				return 0
			elseIf iInstMinor2 > iCompMinor2
				return 1
			else
				return -1
			endIf
		elseIf iInstMinor1 > iCompMinor1
			return 1
		else
			return -1
		endIf
	elseIf iInstMajor > iCompMajor
		return 1
	else
		return -1
	endIf
endFunction


; =============================================================================
; call FNIS.GetMajor() ========================================================
; =============================================================================
; Major changes and upgrades
;
; @param bool abCreature - check FNIS Creature Pack version info. defaults to
;        false and FNIS Behavior version info.
; @return int - major version
int function GetMajor( bool abCreature = false ) global
	actor kPlayer = Game.GetPlayer()

	if abCreature
		return kPlayer.GetAnimationVariableInt("FNISCreatureMajor")
	else
		return kPlayer.GetAnimationVariableInt("FNISmajor")
	endIf
endFunction

; =============================================================================
; call FNIS.GetMinor1() =======================================================
; =============================================================================
; Functional enhancements
;
; @param bool abCreature - check FNIS Creature Pack version info. defaults to
;        false and FNIS Behavior version info.
; @return int - minor1 version
int function GetMinor1( bool abCreature = false ) global
	actor kPlayer = Game.GetPlayer()

	if abCreature
		return kPlayer.GetAnimationVariableInt("FNISCreatureMinor1")
	else
		return kPlayer.GetAnimationVariableInt("FNISMinor1")
	endIf
endFunction

; =============================================================================
; call FNIS.GetMinor2() =======================================================
; =============================================================================
; Bug fixes
;
; @param bool abCreature - check FNIS Creature Pack version info. defaults to
;        false and FNIS Behavior version info.
; @return int - minor2 version
int function GetMinor2( bool abCreature = false ) global
	actor kPlayer = Game.GetPlayer()

	if abCreature
		return kPlayer.GetAnimationVariableInt("FNISCreatureMinor2")
	else
		return kPlayer.GetAnimationVariableInt("FNISMinor2")
	endIf
endFunction

; =============================================================================
; FNIS Version Flags ==========================================================
; =============================================================================
; 0000 0000 0000 0000 0000 0000 0000 0001
int property ISALPHA = 1 autoreadonly
; 0000 0000 0000 0000 0000 0000 0000 0010
int property ISBETA  = 2 autoreadonly
; 0000 0000 0000 0000 0000 0000 0000 0011
int property ISFULL  = 3 autoreadonly

; =============================================================================
; call FNIS.IsAlpha() =========================================================
; =============================================================================
; Returns true if the installed FNIS version is flagged as an alpha.
;
; @param bool abCreature - check FNIS Creature Pack version info. defaults to
;        false and FNIS Behavior version info.
; @return bool
Bool function IsAlpha( bool abCreature = false ) global
	actor kPlayer = Game.GetPlayer()

	if abCreature
		return Math.LogicalAnd( kPlayer.GetAnimationVariableInt("FNISCreatureFlags"), 1) as Bool
	else
		return Math.LogicalAnd( kPlayer.GetAnimationVariableInt("FNISflags"), 1) as Bool
	endIf
endFunction

; =============================================================================
; call FNIS.IsBeta() ==========================================================
; =============================================================================
; Returns true if the installed FNIS version is flagged as an beta.
;
; @param bool abCreature - check FNIS Creature Pack version info. defaults to
;        false and FNIS Behavior version info.
; @return bool
Bool function IsBeta( bool abCreature = false ) global
	actor kPlayer = Game.GetPlayer()

	if abCreature
		return Math.LogicalAnd( kPlayer.GetAnimationVariableInt("FNISCreatureFlags"), 2) as Bool
	else
		return Math.LogicalAnd( kPlayer.GetAnimationVariableInt("FNISflags"), 2) as Bool
	endIf
endFunction

; =============================================================================
; call FNIS.IsFull() ==========================================================
; =============================================================================
; Returns true if the installed FNIS version is flagged as a stable release.
;
; @param bool abCreature - check FNIS Creature Pack version info. defaults to
;        false and FNIS Behavior version info.
; @return bool
Bool function IsFull( bool abCreature = false ) global
	actor kPlayer = Game.GetPlayer()

	if abCreature
		return Math.LogicalAnd( kPlayer.GetAnimationVariableInt("FNISCreatureFlags"), 3) as Bool
	else
		return Math.LogicalAnd( kPlayer.GetAnimationVariableInt("FNISflags"), 3) as Bool
	endIf
endFunction

; =============================================================================
; call FNIS.GetFlag() =========================================================
; =============================================================================
; This is a generic function to accommodate the addition of new FNIS versioning
; flags without a script update
;
; @param int aiBitMask - 
; @param bool abCreature - check FNIS Creature Pack version info. defaults to
;        false and FNIS Behavior version info.
; @return bool
Bool function GetFlag( int aiBitMask, bool abCreature = false ) global
	actor kPlayer = Game.GetPlayer()

	if abCreature
		return Math.LogicalAnd( kPlayer.GetAnimationVariableInt("FNISCreatureFlags"), aiBitMask) as Bool
	else
		return Math.LogicalAnd( kPlayer.GetAnimationVariableInt("FNISflags"), aiBitMask) as Bool
	endIf
endFunction

 

 

FNIS.7z

Link to comment

You prpbably didn't update the creature pack. THe new files contain labels I need for these duplicate checks.

 

I've definitely updated the creature pack, updated fnis zoo as well. Just reinstalled all FNIS stuff to be doubly sure, and still getting the error on Consistence Check. Not just for my mod, but I'm getting it for FNISZoo animations as well:

 

 

Missing AnimFile FNISchaurusflyer5aAnim.hkx for chaurusflyer, mod FNISZoo

Missing AnimFile FNISdwarvenballistacenturion5aAnim.hkx for dwarvenballistacenturion, mod FNISZoo
Duplicate AnimFile FNISvampirelord1aAnim.hkx for vampirelord, mods standard and FNISZoo
Duplicate AnimFile FNISvampirelord2cAnim.hkx for vampirelord, mods standard and FNISZoo
Duplicate AnimFile FNISvampirelord3aAnim.hkx for vampirelord, mods FNISZoo and standard
Duplicate AnimFile FNISvampirelord4cAnim.hkx for vampirelord, mods FNISZoo and standard
Duplicate AnimFile FNISvampirelord5aAnim.hkx for vampirelord, mods FNISZoo and standard
Duplicate AnimFile FNISvampirelord6cAnim.hkx for vampirelord, mods standard and FNISZoo
Duplicate AnimFile FNISvampirelord7aAnim.hkx for vampirelord, mods FNISZoo and standard

 

 

 

Also not positive it's related to the update to beta 4 or just my install/implementation, but IdleForceDefaultState seems to have stopped working as a means to stop a looping animation after updating. It gets processed by the graph, but actor doesn't stop the looping like they used to. I stuck in patch fix using an additional sendanimationevent with JumpLandEnd, and that resets them well enough.

 

I may have simply botched something somewhere to break the upgrade to beta 4. I can't find what it would be though, hard to screw up a simple drag and drop upgrade of 3 downloads.

 

I'm also using the generate tools via Mod Organizer if that matters, though under beta 3 mod organizer gave no issues other than complaining about the games install folder.

Link to comment

Ok, sorry, my mistake. You did update. I didn't put all the proper files into the release. Sorry. It really becomes a pain to get them all right now. But that was the reason why I tightened the CC. But I still missed 2 of them. :-/

 

About the duplicates I don't know. Can you check if the file vampirelord\behaviors\vampirelord_default_TEMPLATE.txt, if the following line exists

<!-- Start FNIS Animations -->

 

This is new in Beta 4, and allows me to make this duplicate check. If it's missing for some reason then you still have the beta 3 version. Any idea?

 

With the IdleForceDefaultState you are right as well. But I have no idea where this comes from. It also effects the acyclic animations. The problem here is that IdleForceDefaultState is no FNIS event. This worries me a little bit. Because I have no clue why a global standard AE suddenly doesn't react. I hope this is not one of those "features" I'm running into so often.

 

 

Link to comment

 

About the duplicates I don't know. Can you check if the file vampirelord\behaviors\vampirelord_default_TEMPLATE.txt, if the following line exists

<!-- Start FNIS Animations -->

 

 

Opened the file directly out of the "FNIS Creature Pack 4_0_1-11811-4-0-Beta-4.7z" and didn't see the <!-- Start FNIS Animations --> line anywhere. Checked other creatures template files and it was present.

 

Also tested the animations in game just using SAE from console, and the animations play fine, it's just the consistence check.

Link to comment

 

Also not positive it's related to the update to beta 4 or just my install/implementation, but IdleForceDefaultState seems to have stopped working as a means to stop a looping animation after updating. It gets processed by the graph, but actor doesn't stop the looping like they used to. I stuck in patch fix using an additional sendanimationevent with JumpLandEnd, and that resets them well enough.

 

 

Ashal, I hope you read this.

 

It was a bug in the modder's generator. I fixed it and made it a 1-file-update at Nexus. 

 

At least I learned something new. (In the behavior files) AnimEvents are case sensitive.

 

 

 

And btw. for everyone: GENDER and PCEA make males (partially) use female animations. But I won't upload that before Wednesday. Oh my, it really becomes a mess now.

Link to comment

Just tried this on Zap with furniture lines removed. I get a

ERROR(2012): Could not generate: FNIS_ZaZAnimationPack_Behavior.hkx
Also at times the generator complains that behavior templates are broken? "ERROR(2008)".

 

Any ideas what I'm doing wrong?

 

Edit: Using 4.0 beta 4...

 

Edit2: Trying to bisect the behavior file, but so far very low success rate. At first it seems that sequenced animations were the problem, but by themselves, the behavior file generates correctly.

Link to comment

Just tried this on Zap with furniture lines removed. I get a

ERROR(2012): Could not generate: FNIS_ZaZAnimationPack_Behavior.hkx
Also at times the generator complains that behavior templates are broken? "ERROR(2008)".

 

Any ideas what I'm doing wrong?

 

Edit: Using 4.0 beta 4...

 

Edit2: Trying to bisect the behavior file, but so far very low success rate. At first it seems that sequenced animations were the problem, but by themselves, the behavior file generates correctly.

 

Please post or send me an Animlist where you get this.

 

No need to figure it out yourself.  :)

Link to comment

 

Just tried this on Zap with furniture lines removed. I get a

ERROR(2012): Could not generate: FNIS_ZaZAnimationPack_Behavior.hkx
Also at times the generator complains that behavior templates are broken? "ERROR(2008)".

 

Any ideas what I'm doing wrong?

 

Edit: Using 4.0 beta 4...

 

Edit2: Trying to bisect the behavior file, but so far very low success rate. At first it seems that sequenced animations were the problem, but by themselves, the behavior file generates correctly.

 

Please post or send me an Animlist where you get this.

 

No need to figure it out yourself.  :)

 

Thanks! Posted the file in a pm to you.

Link to comment

 

 

Also not positive it's related to the update to beta 4 or just my install/implementation, but IdleForceDefaultState seems to have stopped working as a means to stop a looping animation after updating. It gets processed by the graph, but actor doesn't stop the looping like they used to. I stuck in patch fix using an additional sendanimationevent with JumpLandEnd, and that resets them well enough.

 

 

Ashal, I hope you read this.

 

It was a bug in the modder's generator. I fixed it and made it a 1-file-update at Nexus. 

 

At least I learned something new. (In the behavior files) AnimEvents are case sensitive.

 

 

 

And btw. for everyone: GENDER and PCEA make males (partially) use female animations. But I won't upload that before Wednesday. Oh my, it really becomes a mess now.

 

 

 

Updated the modder generator and regenerated the behavior files for my mod, then updated with the user tool. IdleForceDefaultState still doesn't work for me. FNISZoo is the only other animation mod I have installed, and I tried again with it uninstalled to similar results.

Link to comment

Despite previous assetions, I have uploaded one more Beta, FNIS 4.0 Beta 4.1. It has fixes for the following issues:

  1. xaz's FNISforModders abort with certain SAs
  2. Ashal's IdleForceDefaultState problem (see below)
  3. Problem with male GENDER/PCEA (got vanilla females as well)
  4. Sending bad AnimEvents for some types of furniture animations (while I have no idea what that may have caused, it might be related to the reports of 2 Nexus users who have experienced some mid air sitting of vanilla NPCs/animations)

Ashal, I'm sorry to read that my fix didn't help you. I have listed it anyway here as solved, since I was able to reproduce, and after the plaiusible fix th problem indeed has disappeared for me. So now we need continue with your issue. Please send me your AnimList, as well as your behavior's xml file (from GeneratorforModders\temporary_logs).

Link to comment

 

Ashal, I'm sorry to read that my fix didn't help you. I have listed it anyway here as solved, since I was able to reproduce, and after the plaiusible fix th problem indeed has disappeared for me. So now we need continue with your issue. Please send me your AnimList, as well as your behavior's xml file (from GeneratorforModders\temporary_logs).

 

I did a fresh install with 4.1 and tried again, regenerating my own behaviors didn't fix it.

 

However I did manage to fix it, I had to regenerate the FNIS behaviors that come with beta 4.1 and creature pack as well; FNIS, FNISBase, and FNISCreatureVersion. After regenerating those and not just my own mods behaviors, IdleForceDefaultState worked.

 

Unless I'm missing some files in my overwrites from Mod Organizer, I think you might have included the wrong FNIS behaviors with the download. I reverted the generated FNIS behaviors back to what came with the beta 4.1 and latest creature pack, and it broke again.

Link to comment

Ashal, you are totally right. This lowercase IFDS has slipped into my own behavior files. And since I usually generate them to see if nothing is broken, they were ok in my installation, but not in yours. Sorry again. 

 

Got an idea why my releases usually take so long?  :)

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use