Jump to content

Recommended Posts

28 minutes ago, Flashy (JoeR) said:

One thing I have noticed, since implementing it into RSE, is that facial animation archetypes do not seem to be copied over to the body-double. In CSA, aggressive activity ensues and I used three possible archetypes (Angry, InPain and Afraid). On their own, they work fine, but when the body double comes into play, it has the Neutral facial archetype. Any way to copy this over or not so much (as I suspect)?

It probably is possible to read which archetype keywords an actor has and re-apply them to the body double.

 

But, AAF has its own expression system. Nobody has worked on the XML settings for that to work properly yet. But, when they do, it should be consistent with the archetypes you are using (negative expressions during aggressive animations, etc.).

 

In the long run, I think it will be best to rely on that system because multiple animation packs can tie into one set of settings for expressions and they can be made more animation specific (some animations appearing more negative than others and at different times during the animation).

 

Part of that system is also a way to have the actors say things to each other (theoretically dirty talk if one wanted) based on what is happening. I think everything is in place for that to work. But, I haven't put together a complete test to document it properly yet.

Link to comment
On 9/11/2018 at 5:31 PM, NoxOculis said:

Hi again , i find how to generate name it's AAF_nameData.xml

good it does not seem to be important .

with the pnj and settlers when the mod is not activated, in order to have the same name !

if I select Curie, for example, his name would appear as Curie
if I select me, my name would appear
if i select settlers, his name "settler" change to .."female_nickname" data="Drahira"  for exemple.

but I'm looking for a mod  who gives new names with similar file name list.xml , after , I manage for change it.

If anyone know .

Thanks

Quote

I am not sure that I follow your meaning exactly. I have also wanted to change the names as they appear in the vanilla rollover. But, in my searching, there does not appear to be a way to do that dynamically with code. This is because the code way of changing names applies to the actors base form. So, if you change the name of one settler, it changes all settlers names to that one name.

 

There are unique settler name mods. But, from the little research I have done into those, it looks like they accomplish that with form changes in the CK. That solution wouldn't work for me in AAF because I want the names given via loaded XML files to apply and that has to be done through code.

 

It seems that an F4SE plugin would be needed to do it right. But, I would love to learn that I'm mistaken and that there is a way.

I find this mod : rename anything (including containers, settlers, and more)

https://www.nexusmods.com/fallout4/mods/22105

it's a F4se application without esp
he adds command line : setname "name" work perfect with your mod  

Jill is called Jill now thanks for help

Link to comment
4 hours ago, NoxOculis said:

I find this mod : rename anything (including containers, settlers, and more)

https://www.nexusmods.com/fallout4/mods/22105

it's a F4se application without esp
he adds command line : setname "name" work perfect with your mod  

Jill is called Jill now thanks for help

Thank you for pointing that out! May be just what was needed. I will look into a way to use it.

Link to comment
18 hours ago, dagobaking said:

It probably is possible to read which archetype keywords an actor has and re-apply them to the body double.

 

But, AAF has its own expression system. Nobody has worked on the XML settings for that to work properly yet. But, when they do, it should be consistent with the archetypes you are using (negative expressions during aggressive animations, etc.).

 

In the long run, I think it will be best to rely on that system because multiple animation packs can tie into one set of settings for expressions and they can be made more animation specific (some animations appearing more negative than others and at different times during the animation).

 

Part of that system is also a way to have the actors say things to each other (theoretically dirty talk if one wanted) based on what is happening. I think everything is in place for that to work. But, I haven't put together a complete test to document it properly yet.

Well I have included the Happiness system in StatsAndLists actually, but I renamed I to HappinessPerc in the relevant XML's. I haven't done more than that yet, still working on a few little quirks I have in the STATs at my end :)

Link to comment
7 hours ago, Halstrom said:

Well I have included the Happiness system in StatsAndLists actually, but I renamed I to HappinessPerc in the relevant XML's. I haven't done more than that yet, still working on a few little quirks I have in the STATs at my end :)

Cool. I will be removing the placeholder stats in AAF soon.

 

To have animations change the stats you will also need Action XML. And then for the expressions to change during animations you will need reactionSet XML. These should probably be centralized and worked on like you are doing with stats.

Link to comment

Hey DK,

 

This is the script for the Immersive Lovers Embrace Remastered mod that we were discussing on the issues tracker where the wrong animations were taking place. The author hasn't responded to any comments on the mod page in over a week, so I figured I'd post this here to see if either you or @Flashy (JoeR) could tell me what's wrong with it. I don't mind making changes and testing them because I like the idea behind the mod. Thanks.

Spoiler



Scriptname ILER_MAIN_HUG_KISS extends Quest

;-- Properties --------------------------------------
;--Actors--
Actor Property DogmeatRef Auto Const
Actor Property theActor Auto  
;--Messages--
Message Property ILER_KISS_HUG_MSG Auto Const
Message Property ILER_KISS_HUG_NOT_READY_MSG Auto Const
Message Property ILER_PA_ERROR_MSG Auto Const
;--Sound--
Sound Property ILER_HUG Auto Const
Sound Property ILER_KISS Auto Const
;--Actors/ActorValues--
Actor Property PlayerRef Auto Const
ActorValue Property CA_Affinity Auto Const
;--ImageSpaceModifiers--
ImageSpaceModifier Property HoldAtBlackImod Auto Const
;--AAF-Framework--
AAF:AAF_API AAF_API
;--Integers--
Int Property animType Auto  
;--Globals--
GlobalVariable Property ILER_KISS_ANIM_DURATION Auto Const
GlobalVariable Property ILER_HUG_ANIM_DURATION Auto Const
GlobalVariable Property ILER_PA_IGNORE Auto Const
;--Items--
Armor Property ILER_RING_WEDDING Auto Const
Armor Property ILER_RING_ENGAGEMENT Auto Const
Armor Property ILER_RING_PROMISE Auto Const

;--Events------------------------------------------
Event AAF:AAF_API.OnAnimationStart(AAF:AAF_API akSender, Var[] akArgs)
    Debug.Trace("ILER: ILER_MAIN_HUG_KISS - OnAnimationStart event called")
	If animType == 1 								;Hug
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Hug selection detected")
		ILER_HUG.playandwait(Game.GetPlayer())		;Play sound effect for Hug
    ElseIf animType == 2 							;Kiss
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Kiss selection detected")
		ILER_KISS.playandwait(Game.GetPlayer())		;Play sound effect for Kiss
	EndIf
	Utility.Wait(1)                                                             ;Pause 1 sec
    String actorName = theActor.GetActorBase().GetName()                       ;Companion name to string
	Debug.Notification(actorName + " liked that.")                              ;Liked that notification

EndEvent

;--Functions---------------------------------------
Function LoadAAF()
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - LoadAAF function called")
    AAF_API = Game.GetFormFromFile(0x00000F99, "AAF.esm") as AAF:AAF_API
    If AAF_API
		;Debug.MessageBox("Installed")
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - LoadAAF - AFF API detected")
	else
		;Debug.MessageBox("Not Installed")
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - LoadAAF - AFF API NOT detected")
    Endif
EndFunction

Function KissHugTrigger()
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugTrigger Function called")
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugTrigger loading AAF API")
    RegisterForRemoteEvent(PlayerRef, "OnPlayerLoadGame")
    LoadAAF()

    Actor[] playerFollowers = Game.GetPlayerFollowers( )    ;Array that holds player followers
    Actor Companion = Game.GetPlayer()                      ;Intialise object to hold companion, temp hold player

    int index = 0
    while (index < playerFollowers.Length)
        If ( playerFollowers[index].IsPlayerTeammate() == True && playerFollowers[index] != DogmeatRef )
			Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Matching companion Found " + playerFollowers[index].GetActorBase().GetName())
				
			If ( Companion.IsInPowerArmor() && ILER_PA_IGNORE.GetValue() == 0 || Game.GetPlayer().IsInPowerArmor() && ILER_PA_IGNORE.GetValue() == 0 ) ; PA check
				Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Power armor error caught")
				ILER_PA_ERROR_MSG.show()
				return 
			ElseIf ( playerFollowers.Length > 1 )	;Multiple companions, picks the first one wearing a ring
				Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Multiple companions detected")
				If RingType(playerFollowers[index]) != 0				;found companion with ring
					Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Found a companion with a ring, chosing them")
					Companion = playerFollowers[index]		;Set companion equal to the current playerfollowers index
					theActor = Companion					;Set theActor to the companion - Public actor object assecable by the events
           			KissHugMain(Companion)					;Pass found companion to kiss hug function
            		return                              ;Found companion and called scene, kill
				ElseIf ( index == (playerFollowers.Length - 1) )	;Loop is on final index and didn't find matching companion
					Debug.MessageBox("Tip: When using multiple companions a ring is required to be equiped on the companion you wish to engage with.")
				EndIf
			Else
			    Companion = playerFollowers[index]	;Set companion equal to the current playerfollowers index
				theActor = Companion				;Set theActor to the companion - Public actor object assecable by the events
           		KissHugMain(Companion)				;Pass found companion to kiss hug function
            	return                              ;Found companion and called scene, kill
			EndIf
        EndIf
        index += 1 
    EndWhile

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - No companion found in range")
    Debug.Notification("No compatable companion detected")	;Informs player that no compatable companion found

EndFunction

int Function RingType(actor Companion)
  Debug.Trace("ILER: RingType function called")

	If Companion.IsEquipped(ILER_RING_WEDDING)
		debug.trace("ILER: RingType Function: Returns 3 (Wedding)", 0)
		return 3
		
	ElseIf Companion.IsEquipped(ILER_RING_ENGAGEMENT)
		debug.trace("ILER: RingType Function: Returns 2 (Engage)", 0)
		return 2
		
	ElseIf Companion.IsEquipped(ILER_RING_PROMISE)
		debug.trace("ILER: RingType Function: Returns 1 (Promise)", 0)
		return 1
  Else
  	debug.trace("ILER: RingType Function: Returns 0 (no ring)", 0)
		return 0
	EndIf
	
EndFunction

Function KissHugMain(Actor Companion)

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugMain Function called")
    int ibuttonILE = ILER_KISS_HUG_MSG.Show() 				;Shows the menu for hug/kiss
    float npcAffinity = Companion.GetValue(CA_affinity)		;Store companions affinity



    If ibuttonILE == 1 												;Hug
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Hug option selected")

		If npcAffinity >= 250											;Affinity check on companion: >=250
			SceneHandler(Companion, 1)										;Call kissHug scene with Hug parameter
			Companion.SetValue( CA_affinity, npcAffinity+10 )  				;Buff +10 affinity to companion
		Else
			ILER_KISS_HUG_NOT_READY_MSG.Show()								;Show the not ready message	if they failed affinity check				
		EndIf

	ElseIf ibuttonILE == 2 											;Kiss
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Kiss option selected")

		If npcAffinity >= 500											;Affinity check on companion: >=500
			Debug.Trace("ILER: ILER_MAIN_HUG_KISS >= Affinity check passed")
			SceneHandler(Companion, 2)									;Call kissHug scene with Kiss parameter
			Companion.SetValue( CA_affinity, npcAffinity+15 )  			;Buff +15 affinity to companion
		Else
			Debug.Trace("ILER: ILER_MAIN_HUG_KISS >= Affinity check failed")
			ILER_KISS_HUG_NOT_READY_MSG.Show()							;Show the not ready message	if they failed affinity check
		EndIf

	EndIf

EndFunction

Function SceneHandler(Actor Companion, int Type)

	If !AAF_API	;AAF Not installed
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - SceneHandler - AFF API NOT detected")
		KissHugScene(Companion, Type)
	Else		;AAF installed
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - SceneHandler - AFF API detected")
		KissHugSceneAAF(Companion, Type)
	EndIf

EndFunction

Function KissHugScene(Actor Companion, int Type)

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugScene Function called")
    Utility.Wait(0.5)                                                           ;Slight pause
	Game.ForceThirdPerson()		                                                ;Force Third Person
	Utility.Wait(0.5)                                                           ;Slight pause
	HoldAtBlackImod.ApplyCrossFade(2)                                           ;Crosfade to black over 2 secs
	InputEnableLayer myLayer = InputEnableLayer.Create()                        ;Input layer to disable controls
	myLayer.DisablePlayerControls(true, true, true, true, true, true, true)     ;Disable player controls
	Debug.EnableAI(False)                                                       ;Disable all AI debug
	Debug.EnableDetection(False)                                                ;Disable all AI Detection
	Utility.Wait(3)                                                             ;Pause 3 secs
	Companion.MoveTo(Game.GetPlayer())                                          ;Move companion to player

    If type == 1 								;Hug
		ILER_HUG.playandwait(Game.GetPlayer())		;Play sound effect for Hug
    ElseIf type == 2 							;Kiss
		ILER_KISS.playandwait(Game.GetPlayer())		;Play sound effect for Kiss
	EndIf

	Utility.Wait(1)																;Slight pause
    myLayer.EnablePlayerControls()                                              ;Enable all controls
	Debug.EnableAI()                                                            ;Enable all AI debug
	Debug.EnableDetection()                                                     ;Enable all AI Detection
	ImageSpaceModifier.RemoveCrossFade(2)                                       ;Fade back in 2 secs
	Utility.Wait(1)                                                             ;Pause 1 sec
    String actorName = Companion.GetActorBase().GetName()                       ;Companion name to string
	Debug.Notification(actorName + " liked that.")                              ;Liked that notification

EndFunction

Function KissHugSceneAAF(Actor Companion, int type)

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF Function called")
	animType = type																		;Retrieve the user selection: 1=Hug 2=Kiss
	Actor[] Actors = New Actor [2]														;Actor Array for our two actors for the scene
	Actors[0] = Game.GetPlayer()														;First actor set as player
	Actors[1] = Companion																;Second actor set as companion

	; Create some dank SceneSettings
	AAF:AAF_API:SceneSettings HugSettings = AAF_API.GetSceneSettings()
	AAF:AAF_API:SceneSettings KissSettings = AAF_API.GetSceneSettings()

	; Adjust Hug settings:
	HugSettings.duration = ILER_HUG_ANIM_DURATION.GetValue()
	HugSettings.position = "Atomic Embrace"

	; Adjust Kiss settings:
	KissSettings.duration = ILER_HUG_ANIM_DURATION.GetValue()
	KissSettings.position = "Atomic Kissing"

	; Type1 = Hug | Type2 = Kiss
	If type == 1
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF - Hug detected, call hug anim")
		AAF_API.StartScene(actors, HugSettings)	;Calls animation scene via API - Start a scene (including the adjusted settings struct as a parameter):
	ElseIf type == 2
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF - Kiss detected, call kiss anim")
		AAF_API.StartScene(actors, KissSettings)	;Calls animation scene via API - Start a scene (including the adjusted settings struct as a parameter):
	EndIf
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF - End of function, rest of code should be called from animation start event")
	;Rest of code gets executed in the event

EndFunction


 

Basically what happens is that AAF plays a random animation whenever you use the pop-up menu to either hug or kiss your romanced companion rather than the proper animation. I would debug it myself, but I only know enough scripting to be dangerous and I would have to basically rewrite it using Flashy's template to figure out what's going on. Thanks again.

Link to comment
9 hours ago, Gulfwulf said:

Hey DK,

 

This is the script for the Immersive Lovers Embrace Remastered mod that we were discussing on the issues tracker where the wrong animations were taking place. The author hasn't responded to any comments on the mod page in over a week, so I figured I'd post this here to see if either you or @Flashy (JoeR) could tell me what's wrong with it. I don't mind making changes and testing them because I like the idea behind the mod. Thanks.

  Hide contents

 



Scriptname ILER_MAIN_HUG_KISS extends Quest

;-- Properties --------------------------------------
;--Actors--
Actor Property DogmeatRef Auto Const
Actor Property theActor Auto  
;--Messages--
Message Property ILER_KISS_HUG_MSG Auto Const
Message Property ILER_KISS_HUG_NOT_READY_MSG Auto Const
Message Property ILER_PA_ERROR_MSG Auto Const
;--Sound--
Sound Property ILER_HUG Auto Const
Sound Property ILER_KISS Auto Const
;--Actors/ActorValues--
Actor Property PlayerRef Auto Const
ActorValue Property CA_Affinity Auto Const
;--ImageSpaceModifiers--
ImageSpaceModifier Property HoldAtBlackImod Auto Const
;--AAF-Framework--
AAF:AAF_API AAF_API
;--Integers--
Int Property animType Auto  
;--Globals--
GlobalVariable Property ILER_KISS_ANIM_DURATION Auto Const
GlobalVariable Property ILER_HUG_ANIM_DURATION Auto Const
GlobalVariable Property ILER_PA_IGNORE Auto Const
;--Items--
Armor Property ILER_RING_WEDDING Auto Const
Armor Property ILER_RING_ENGAGEMENT Auto Const
Armor Property ILER_RING_PROMISE Auto Const

;--Events------------------------------------------
Event AAF:AAF_API.OnAnimationStart(AAF:AAF_API akSender, Var[] akArgs)
    Debug.Trace("ILER: ILER_MAIN_HUG_KISS - OnAnimationStart event called")
	If animType == 1 								;Hug
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Hug selection detected")
		ILER_HUG.playandwait(Game.GetPlayer())		;Play sound effect for Hug
    ElseIf animType == 2 							;Kiss
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Kiss selection detected")
		ILER_KISS.playandwait(Game.GetPlayer())		;Play sound effect for Kiss
	EndIf
	Utility.Wait(1)                                                             ;Pause 1 sec
    String actorName = theActor.GetActorBase().GetName()                       ;Companion name to string
	Debug.Notification(actorName + " liked that.")                              ;Liked that notification

EndEvent

;--Functions---------------------------------------
Function LoadAAF()
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - LoadAAF function called")
    AAF_API = Game.GetFormFromFile(0x00000F99, "AAF.esm") as AAF:AAF_API
    If AAF_API
		;Debug.MessageBox("Installed")
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - LoadAAF - AFF API detected")
	else
		;Debug.MessageBox("Not Installed")
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - LoadAAF - AFF API NOT detected")
    Endif
EndFunction

Function KissHugTrigger()
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugTrigger Function called")
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugTrigger loading AAF API")
    RegisterForRemoteEvent(PlayerRef, "OnPlayerLoadGame")
    LoadAAF()

    Actor[] playerFollowers = Game.GetPlayerFollowers( )    ;Array that holds player followers
    Actor Companion = Game.GetPlayer()                      ;Intialise object to hold companion, temp hold player

    int index = 0
    while (index < playerFollowers.Length)
        If ( playerFollowers[index].IsPlayerTeammate() == True && playerFollowers[index] != DogmeatRef )
			Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Matching companion Found " + playerFollowers[index].GetActorBase().GetName())
				
			If ( Companion.IsInPowerArmor() && ILER_PA_IGNORE.GetValue() == 0 || Game.GetPlayer().IsInPowerArmor() && ILER_PA_IGNORE.GetValue() == 0 ) ; PA check
				Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Power armor error caught")
				ILER_PA_ERROR_MSG.show()
				return 
			ElseIf ( playerFollowers.Length > 1 )	;Multiple companions, picks the first one wearing a ring
				Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Multiple companions detected")
				If RingType(playerFollowers[index]) != 0				;found companion with ring
					Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Found a companion with a ring, chosing them")
					Companion = playerFollowers[index]		;Set companion equal to the current playerfollowers index
					theActor = Companion					;Set theActor to the companion - Public actor object assecable by the events
           			KissHugMain(Companion)					;Pass found companion to kiss hug function
            		return                              ;Found companion and called scene, kill
				ElseIf ( index == (playerFollowers.Length - 1) )	;Loop is on final index and didn't find matching companion
					Debug.MessageBox("Tip: When using multiple companions a ring is required to be equiped on the companion you wish to engage with.")
				EndIf
			Else
			    Companion = playerFollowers[index]	;Set companion equal to the current playerfollowers index
				theActor = Companion				;Set theActor to the companion - Public actor object assecable by the events
           		KissHugMain(Companion)				;Pass found companion to kiss hug function
            	return                              ;Found companion and called scene, kill
			EndIf
        EndIf
        index += 1 
    EndWhile

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - No companion found in range")
    Debug.Notification("No compatable companion detected")	;Informs player that no compatable companion found

EndFunction

int Function RingType(actor Companion)
  Debug.Trace("ILER: RingType function called")

	If Companion.IsEquipped(ILER_RING_WEDDING)
		debug.trace("ILER: RingType Function: Returns 3 (Wedding)", 0)
		return 3
		
	ElseIf Companion.IsEquipped(ILER_RING_ENGAGEMENT)
		debug.trace("ILER: RingType Function: Returns 2 (Engage)", 0)
		return 2
		
	ElseIf Companion.IsEquipped(ILER_RING_PROMISE)
		debug.trace("ILER: RingType Function: Returns 1 (Promise)", 0)
		return 1
  Else
  	debug.trace("ILER: RingType Function: Returns 0 (no ring)", 0)
		return 0
	EndIf
	
EndFunction

Function KissHugMain(Actor Companion)

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugMain Function called")
    int ibuttonILE = ILER_KISS_HUG_MSG.Show() 				;Shows the menu for hug/kiss
    float npcAffinity = Companion.GetValue(CA_affinity)		;Store companions affinity



    If ibuttonILE == 1 												;Hug
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Hug option selected")

		If npcAffinity >= 250											;Affinity check on companion: >=250
			SceneHandler(Companion, 1)										;Call kissHug scene with Hug parameter
			Companion.SetValue( CA_affinity, npcAffinity+10 )  				;Buff +10 affinity to companion
		Else
			ILER_KISS_HUG_NOT_READY_MSG.Show()								;Show the not ready message	if they failed affinity check				
		EndIf

	ElseIf ibuttonILE == 2 											;Kiss
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Kiss option selected")

		If npcAffinity >= 500											;Affinity check on companion: >=500
			Debug.Trace("ILER: ILER_MAIN_HUG_KISS >= Affinity check passed")
			SceneHandler(Companion, 2)									;Call kissHug scene with Kiss parameter
			Companion.SetValue( CA_affinity, npcAffinity+15 )  			;Buff +15 affinity to companion
		Else
			Debug.Trace("ILER: ILER_MAIN_HUG_KISS >= Affinity check failed")
			ILER_KISS_HUG_NOT_READY_MSG.Show()							;Show the not ready message	if they failed affinity check
		EndIf

	EndIf

EndFunction

Function SceneHandler(Actor Companion, int Type)

	If !AAF_API	;AAF Not installed
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - SceneHandler - AFF API NOT detected")
		KissHugScene(Companion, Type)
	Else		;AAF installed
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - SceneHandler - AFF API detected")
		KissHugSceneAAF(Companion, Type)
	EndIf

EndFunction

Function KissHugScene(Actor Companion, int Type)

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugScene Function called")
    Utility.Wait(0.5)                                                           ;Slight pause
	Game.ForceThirdPerson()		                                                ;Force Third Person
	Utility.Wait(0.5)                                                           ;Slight pause
	HoldAtBlackImod.ApplyCrossFade(2)                                           ;Crosfade to black over 2 secs
	InputEnableLayer myLayer = InputEnableLayer.Create()                        ;Input layer to disable controls
	myLayer.DisablePlayerControls(true, true, true, true, true, true, true)     ;Disable player controls
	Debug.EnableAI(False)                                                       ;Disable all AI debug
	Debug.EnableDetection(False)                                                ;Disable all AI Detection
	Utility.Wait(3)                                                             ;Pause 3 secs
	Companion.MoveTo(Game.GetPlayer())                                          ;Move companion to player

    If type == 1 								;Hug
		ILER_HUG.playandwait(Game.GetPlayer())		;Play sound effect for Hug
    ElseIf type == 2 							;Kiss
		ILER_KISS.playandwait(Game.GetPlayer())		;Play sound effect for Kiss
	EndIf

	Utility.Wait(1)																;Slight pause
    myLayer.EnablePlayerControls()                                              ;Enable all controls
	Debug.EnableAI()                                                            ;Enable all AI debug
	Debug.EnableDetection()                                                     ;Enable all AI Detection
	ImageSpaceModifier.RemoveCrossFade(2)                                       ;Fade back in 2 secs
	Utility.Wait(1)                                                             ;Pause 1 sec
    String actorName = Companion.GetActorBase().GetName()                       ;Companion name to string
	Debug.Notification(actorName + " liked that.")                              ;Liked that notification

EndFunction

Function KissHugSceneAAF(Actor Companion, int type)

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF Function called")
	animType = type																		;Retrieve the user selection: 1=Hug 2=Kiss
	Actor[] Actors = New Actor [2]														;Actor Array for our two actors for the scene
	Actors[0] = Game.GetPlayer()														;First actor set as player
	Actors[1] = Companion																;Second actor set as companion

	; Create some dank SceneSettings
	AAF:AAF_API:SceneSettings HugSettings = AAF_API.GetSceneSettings()
	AAF:AAF_API:SceneSettings KissSettings = AAF_API.GetSceneSettings()

	; Adjust Hug settings:
	HugSettings.duration = ILER_HUG_ANIM_DURATION.GetValue()
	HugSettings.position = "Atomic Embrace"

	; Adjust Kiss settings:
	KissSettings.duration = ILER_HUG_ANIM_DURATION.GetValue()
	KissSettings.position = "Atomic Kissing"

	; Type1 = Hug | Type2 = Kiss
	If type == 1
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF - Hug detected, call hug anim")
		AAF_API.StartScene(actors, HugSettings)	;Calls animation scene via API - Start a scene (including the adjusted settings struct as a parameter):
	ElseIf type == 2
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF - Kiss detected, call kiss anim")
		AAF_API.StartScene(actors, KissSettings)	;Calls animation scene via API - Start a scene (including the adjusted settings struct as a parameter):
	EndIf
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF - End of function, rest of code should be called from animation start event")
	;Rest of code gets executed in the event

EndFunction

 

 

 

 

Basically what happens is that AAF plays a random animation whenever you use the pop-up menu to either hug or kiss your romanced companion rather than the proper animation. I would debug it myself, but I only know enough scripting to be dangerous and I would have to basically rewrite it using Flashy's template to figure out what's going on. Thanks again.

Loks like its set up for only 2 animations Atomic Embraces and Atomic Kissing, if you don't have those installed maybe it picks a random animation.

Link to comment
4 hours ago, Halstrom said:

Loks like its set up for only 2 animations Atomic Embraces and Atomic Kissing, if you don't have those installed maybe it picks a random animation.

I wish that was the problem but it isn't because I have those two animations installed: they're both part of Rufgt's Atomic Lust animation package, which leads me to think it's a scripting issue because others have been having the same problem.

Link to comment
14 hours ago, Gulfwulf said:

Hey DK,

 

This is the script for the Immersive Lovers Embrace Remastered mod that we were discussing on the issues tracker where the wrong animations were taking place. The author hasn't responded to any comments on the mod page in over a week, so I figured I'd post this here to see if either you or @Flashy (JoeR) could tell me what's wrong with it. I don't mind making changes and testing them because I like the idea behind the mod. Thanks.

  Reveal hidden contents

Basically what happens is that AAF plays a random animation whenever you use the pop-up menu to either hug or kiss your romanced companion rather than the proper animation. I would debug it myself, but I only know enough scripting to be dangerous and I would have to basically rewrite it using Flashy's template to figure out what's going on. Thanks again.

I need someone to try the test I describe on the issue tracker. Basically, sending in a fake position name to AAF to make sure that it throws the correct error.

Link to comment
4 hours ago, dagobaking said:

I need someone to try the test I describe on the issue tracker. Basically, sending in a fake position name to AAF to make sure that it throws the correct error.

Sorry, Dk, but I was hoping the mod author would do that. Anyway, I renamed both animations to Fake Position and tried the hug and kiss options: both played a random animation so it seems there's either an issue with the code or with AAF.

 

By the way, do you know of a good Notepad++ compiler script I could use? I'd rather not have to run the GECK everytime I need to recompile this script. Thanks.

Link to comment
1 hour ago, Gulfwulf said:

Sorry, Dk, but I was hoping the mod author would do that. Anyway, I renamed both animations to Fake Position and tried the hug and kiss options: both played a random animation so it seems there's either an issue with the code or with AAF.

Yeah. That suggests that something is broken in the calling code that causes the names being sent in to become "None" at some point.

 

I am testing this on my end with fake position names and it throws an error saying that position can't be found. Random animations playing means that the position name isn't even making it into AAF for some reason.

1 hour ago, Gulfwulf said:

By the way, do you know of a good Notepad++ compiler script I could use? I'd rather not have to run the GECK everytime I need to recompile this script. Thanks.

I have used Sublime Text for a long time and am really happy with it. WAY better than trying to use the GECK.

 

There is a tutorial here about setting it up: https://www.creationkit.com/fallout4/index.php?title=Sublime_Text

 

It is also very good for editing XML.

Link to comment
28 minutes ago, Gulfwulf said:

Does FO 4 save script data like Skyrim did? If so, that might be part of the issue because I don't have a clean game to test with.

FO4 saves currently running scripts in your save.  So whether you need a clean save depends on how the mod is set up and whether its scripts run in the background.

Link to comment

My game CTDs whenever I try to start dog animations. Might have something to do with the fact that it's specifically Dogmeat I'm using, but I'm assuming it's something flobal for animals across the board. It might have something to do with my AAF install, which keeps giving me an error saying that some "LL FP" thing wasn't installed and it needed Version 7 of it. For the record, I do NOT have whatever this "LL FP" mod thing is installed. Someone pointed me to what it might be at one point and I installed version 26 of it, but then I was told AAF supplies its own version and to uninstall that, so I have and I reinstalled AAF to be safe. Self anims work fine, and human-on-human anims seem to work fine as well. Maybe it's something with my load order? Here it is below:

 

GameMode=Fallout4

Fallout4.esm=1
DLCRobot.esm=1
DLCworkshop01.esm=1
DLCCoast.esm=1
DLCworkshop02.esm=1
DLCworkshop03.esm=1
DLCNukaWorld.esm=1
ArmorKeywords.esm=1
SimSettlements.esm=0
Unofficial Fallout 4 Patch.esp=1
TortureDevices.esm=1
Devious Devices.esm=1
AAF.esm=1
LooksMenu.esp=1
LooksMenu Customization Compendium.esp=1
AWKCR - Mod Power Armor Engine Glitch Fix.esp=1
Armorsmith Extended.esp=1
AzarPonytailHairstyles.esp=1
SimSettlements_XPAC_RiseOfTheCommonwealth.esp=0
Loot Detector.esp=1
You Talk Too Much.esp=1
Settler Sandbox Overhaul.esp=1
CompanionAccuracy.esp=1
Companion Infinite Ammo and Unbreakable Power Armour.esp=1
sisterofbattle.esp=1
The Space Marine.esp=1
InfiniteFusionCore.esp=1
keke-bu All-in-one Pack_1.1.7.esp=1
CBBE.esp=1
DX Commonwealth Shorts.esp=1
DX Vault Girl Shorts.esp=1
KSHairdos.esp=1
Craftable Armor Size - Fix Material Requirements.esp=1
Craftable Armor Size.esp=1
DOOMDesertEagle.esp=1
WAYN_CompanionTracking.esp=1
LovingPiper_LCC.esp=1
CraftableAmmo_plus.esp=1
CraftableAmmo.esp=1
R91AssaultRifle.esp=1
AKM_AKMS.esp=1
SA80.esp=0
slootyVaultSuit.esp=1
Mk14 Redux.esp=1
Mk14 Redux - Damage Modifiers.esp=1
M60.esp=1
LeeEnfieldNo4MkI.esp=1
M6Magnum.esp=1
ColtDeltaElite_10mmReplacer v1_1.esp=1
HairVariations_YoungAtHeart.esp=1
HairVariations_FairyTails.esp=1
HairVariations_Elegant.esp=1
HairVariations_Sophisticate.esp=1
HairVariations_Conversions.esp=1
Headcrab_Bunny.esp=1
zWGirlClothMina.esp=1
FrenchMaidFO4-CBBEPhysics.esp=1
Prisoner Shackles.esp=1
HouseDress1Fix.esp=1
four_play.esp=1
FO4_AnimationsByLeito.esp=1
Crazy_Animations_Gun.esp=1
AAF_Four-Play_Animations_Crazy6987.esp=1
CumNWealth.esp=1
SavageCabbage_Animations.esp=1
Rufgt's Animations.esp=1
Atomic Lust.esp=1
Mutated Lust.esp=1
looksmenupantyhose.esp=1
Vadermania[AAF_anims].esp=1
Aegis_Outfitter.esp=1
Rogg DD Items Manager.esp=1
FPAttributes.esp=1
FP_SexualHarassment.esp=1
FP_FamilyPlanningEnhanced.esp=1
FPEDogAddon.esp=1
FPESuperMutantAddon.esp=1
Deviously Cursed Wasteland.esp=0
AAF_RSE.esp=1
AAF_RSE_DLCPatch.esp=1
 

Link to comment
15 minutes ago, trees said:

My game CTDs whenever I try to start dog animations. Might have something to do with the fact that it's specifically Dogmeat I'm using, but I'm assuming it's something flobal for animals across the board. It might have something to do with my AAF install, which keeps giving me an error saying that some "LL FP" thing wasn't installed and it needed Version 7 of it. For the record, I do NOT have whatever this "LL FP" mod thing is installed. Someone pointed me to what it might be at one point and I installed version 26 of it, but then I was told AAF supplies its own version and to uninstall that, so I have and I reinstalled AAF to be safe. Self anims work fine, and human-on-human anims seem to work fine as well. Maybe it's something with my load order? Here it is below:

 

 

That LLFP error means that your version of F4SE is out of date or at least doesn't match what that version of LLFP was built for.  LLFP is a F4SE plugin that comes with AAF, and it can also be downloaded separately.  For best results, make sure your Fallout 4 is up to date, you have the latest F4SE, and you are using the latest release of AAF. 

 

Not sure if the LLFP error is related to your canine CTD, but best to have everything installed correctly before trying to diagnose a problem.  Note that there is not a general problem with canine animations and AAF, they normally work just like any other animation.

Link to comment
7 hours ago, EgoBallistic said:

FO4 saves currently running scripts in your save.  So whether you need a clean save depends on how the mod is set up and whether its scripts run in the background.

It's attached to a quest that starts automatically. Could I remove the mod, then use the save game cleaner to remove the scripts? I'd rather not have to start a new game just to test this out because it requires a romanced companion to work.

Link to comment
On 9/16/2018 at 2:07 PM, Gulfwulf said:

Hey DK,

 

This is the script for the Immersive Lovers Embrace Remastered mod that we were discussing on the issues tracker where the wrong animations were taking place. The author hasn't responded to any comments on the mod page in over a week, so I figured I'd post this here to see if either you or @Flashy (JoeR) could tell me what's wrong with it. I don't mind making changes and testing them because I like the idea behind the mod. Thanks.

  Reveal hidden contents

 



Scriptname ILER_MAIN_HUG_KISS extends Quest

;-- Properties --------------------------------------
;--Actors--
Actor Property DogmeatRef Auto Const
Actor Property theActor Auto  
;--Messages--
Message Property ILER_KISS_HUG_MSG Auto Const
Message Property ILER_KISS_HUG_NOT_READY_MSG Auto Const
Message Property ILER_PA_ERROR_MSG Auto Const
;--Sound--
Sound Property ILER_HUG Auto Const
Sound Property ILER_KISS Auto Const
;--Actors/ActorValues--
Actor Property PlayerRef Auto Const
ActorValue Property CA_Affinity Auto Const
;--ImageSpaceModifiers--
ImageSpaceModifier Property HoldAtBlackImod Auto Const
;--AAF-Framework--
AAF:AAF_API AAF_API
;--Integers--
Int Property animType Auto  
;--Globals--
GlobalVariable Property ILER_KISS_ANIM_DURATION Auto Const
GlobalVariable Property ILER_HUG_ANIM_DURATION Auto Const
GlobalVariable Property ILER_PA_IGNORE Auto Const
;--Items--
Armor Property ILER_RING_WEDDING Auto Const
Armor Property ILER_RING_ENGAGEMENT Auto Const
Armor Property ILER_RING_PROMISE Auto Const

;--Events------------------------------------------
Event AAF:AAF_API.OnAnimationStart(AAF:AAF_API akSender, Var[] akArgs)
    Debug.Trace("ILER: ILER_MAIN_HUG_KISS - OnAnimationStart event called")
	If animType == 1 								;Hug
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Hug selection detected")
		ILER_HUG.playandwait(Game.GetPlayer())		;Play sound effect for Hug
    ElseIf animType == 2 							;Kiss
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Kiss selection detected")
		ILER_KISS.playandwait(Game.GetPlayer())		;Play sound effect for Kiss
	EndIf
	Utility.Wait(1)                                                             ;Pause 1 sec
    String actorName = theActor.GetActorBase().GetName()                       ;Companion name to string
	Debug.Notification(actorName + " liked that.")                              ;Liked that notification

EndEvent

;--Functions---------------------------------------
Function LoadAAF()
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - LoadAAF function called")
    AAF_API = Game.GetFormFromFile(0x00000F99, "AAF.esm") as AAF:AAF_API
    If AAF_API
		;Debug.MessageBox("Installed")
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - LoadAAF - AFF API detected")
	else
		;Debug.MessageBox("Not Installed")
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - LoadAAF - AFF API NOT detected")
    Endif
EndFunction

Function KissHugTrigger()
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugTrigger Function called")
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugTrigger loading AAF API")
    RegisterForRemoteEvent(PlayerRef, "OnPlayerLoadGame")
    LoadAAF()

    Actor[] playerFollowers = Game.GetPlayerFollowers( )    ;Array that holds player followers
    Actor Companion = Game.GetPlayer()                      ;Intialise object to hold companion, temp hold player

    int index = 0
    while (index < playerFollowers.Length)
        If ( playerFollowers[index].IsPlayerTeammate() == True && playerFollowers[index] != DogmeatRef )
			Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Matching companion Found " + playerFollowers[index].GetActorBase().GetName())
				
			If ( Companion.IsInPowerArmor() && ILER_PA_IGNORE.GetValue() == 0 || Game.GetPlayer().IsInPowerArmor() && ILER_PA_IGNORE.GetValue() == 0 ) ; PA check
				Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Power armor error caught")
				ILER_PA_ERROR_MSG.show()
				return 
			ElseIf ( playerFollowers.Length > 1 )	;Multiple companions, picks the first one wearing a ring
				Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Multiple companions detected")
				If RingType(playerFollowers[index]) != 0				;found companion with ring
					Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Found a companion with a ring, chosing them")
					Companion = playerFollowers[index]		;Set companion equal to the current playerfollowers index
					theActor = Companion					;Set theActor to the companion - Public actor object assecable by the events
           			KissHugMain(Companion)					;Pass found companion to kiss hug function
            		return                              ;Found companion and called scene, kill
				ElseIf ( index == (playerFollowers.Length - 1) )	;Loop is on final index and didn't find matching companion
					Debug.MessageBox("Tip: When using multiple companions a ring is required to be equiped on the companion you wish to engage with.")
				EndIf
			Else
			    Companion = playerFollowers[index]	;Set companion equal to the current playerfollowers index
				theActor = Companion				;Set theActor to the companion - Public actor object assecable by the events
           		KissHugMain(Companion)				;Pass found companion to kiss hug function
            	return                              ;Found companion and called scene, kill
			EndIf
        EndIf
        index += 1 
    EndWhile

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - No companion found in range")
    Debug.Notification("No compatable companion detected")	;Informs player that no compatable companion found

EndFunction

int Function RingType(actor Companion)
  Debug.Trace("ILER: RingType function called")

	If Companion.IsEquipped(ILER_RING_WEDDING)
		debug.trace("ILER: RingType Function: Returns 3 (Wedding)", 0)
		return 3
		
	ElseIf Companion.IsEquipped(ILER_RING_ENGAGEMENT)
		debug.trace("ILER: RingType Function: Returns 2 (Engage)", 0)
		return 2
		
	ElseIf Companion.IsEquipped(ILER_RING_PROMISE)
		debug.trace("ILER: RingType Function: Returns 1 (Promise)", 0)
		return 1
  Else
  	debug.trace("ILER: RingType Function: Returns 0 (no ring)", 0)
		return 0
	EndIf
	
EndFunction

Function KissHugMain(Actor Companion)

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugMain Function called")
    int ibuttonILE = ILER_KISS_HUG_MSG.Show() 				;Shows the menu for hug/kiss
    float npcAffinity = Companion.GetValue(CA_affinity)		;Store companions affinity



    If ibuttonILE == 1 												;Hug
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Hug option selected")

		If npcAffinity >= 250											;Affinity check on companion: >=250
			SceneHandler(Companion, 1)										;Call kissHug scene with Hug parameter
			Companion.SetValue( CA_affinity, npcAffinity+10 )  				;Buff +10 affinity to companion
		Else
			ILER_KISS_HUG_NOT_READY_MSG.Show()								;Show the not ready message	if they failed affinity check				
		EndIf

	ElseIf ibuttonILE == 2 											;Kiss
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - Kiss option selected")

		If npcAffinity >= 500											;Affinity check on companion: >=500
			Debug.Trace("ILER: ILER_MAIN_HUG_KISS >= Affinity check passed")
			SceneHandler(Companion, 2)									;Call kissHug scene with Kiss parameter
			Companion.SetValue( CA_affinity, npcAffinity+15 )  			;Buff +15 affinity to companion
		Else
			Debug.Trace("ILER: ILER_MAIN_HUG_KISS >= Affinity check failed")
			ILER_KISS_HUG_NOT_READY_MSG.Show()							;Show the not ready message	if they failed affinity check
		EndIf

	EndIf

EndFunction

Function SceneHandler(Actor Companion, int Type)

	If !AAF_API	;AAF Not installed
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - SceneHandler - AFF API NOT detected")
		KissHugScene(Companion, Type)
	Else		;AAF installed
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - SceneHandler - AFF API detected")
		KissHugSceneAAF(Companion, Type)
	EndIf

EndFunction

Function KissHugScene(Actor Companion, int Type)

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugScene Function called")
    Utility.Wait(0.5)                                                           ;Slight pause
	Game.ForceThirdPerson()		                                                ;Force Third Person
	Utility.Wait(0.5)                                                           ;Slight pause
	HoldAtBlackImod.ApplyCrossFade(2)                                           ;Crosfade to black over 2 secs
	InputEnableLayer myLayer = InputEnableLayer.Create()                        ;Input layer to disable controls
	myLayer.DisablePlayerControls(true, true, true, true, true, true, true)     ;Disable player controls
	Debug.EnableAI(False)                                                       ;Disable all AI debug
	Debug.EnableDetection(False)                                                ;Disable all AI Detection
	Utility.Wait(3)                                                             ;Pause 3 secs
	Companion.MoveTo(Game.GetPlayer())                                          ;Move companion to player

    If type == 1 								;Hug
		ILER_HUG.playandwait(Game.GetPlayer())		;Play sound effect for Hug
    ElseIf type == 2 							;Kiss
		ILER_KISS.playandwait(Game.GetPlayer())		;Play sound effect for Kiss
	EndIf

	Utility.Wait(1)																;Slight pause
    myLayer.EnablePlayerControls()                                              ;Enable all controls
	Debug.EnableAI()                                                            ;Enable all AI debug
	Debug.EnableDetection()                                                     ;Enable all AI Detection
	ImageSpaceModifier.RemoveCrossFade(2)                                       ;Fade back in 2 secs
	Utility.Wait(1)                                                             ;Pause 1 sec
    String actorName = Companion.GetActorBase().GetName()                       ;Companion name to string
	Debug.Notification(actorName + " liked that.")                              ;Liked that notification

EndFunction

Function KissHugSceneAAF(Actor Companion, int type)

	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF Function called")
	animType = type																		;Retrieve the user selection: 1=Hug 2=Kiss
	Actor[] Actors = New Actor [2]														;Actor Array for our two actors for the scene
	Actors[0] = Game.GetPlayer()														;First actor set as player
	Actors[1] = Companion																;Second actor set as companion

	; Create some dank SceneSettings
	AAF:AAF_API:SceneSettings HugSettings = AAF_API.GetSceneSettings()
	AAF:AAF_API:SceneSettings KissSettings = AAF_API.GetSceneSettings()

	; Adjust Hug settings:
	HugSettings.duration = ILER_HUG_ANIM_DURATION.GetValue()
	HugSettings.position = "Atomic Embrace"

	; Adjust Kiss settings:
	KissSettings.duration = ILER_HUG_ANIM_DURATION.GetValue()
	KissSettings.position = "Atomic Kissing"

	; Type1 = Hug | Type2 = Kiss
	If type == 1
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF - Hug detected, call hug anim")
		AAF_API.StartScene(actors, HugSettings)	;Calls animation scene via API - Start a scene (including the adjusted settings struct as a parameter):
	ElseIf type == 2
		Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF - Kiss detected, call kiss anim")
		AAF_API.StartScene(actors, KissSettings)	;Calls animation scene via API - Start a scene (including the adjusted settings struct as a parameter):
	EndIf
	Debug.Trace("ILER: ILER_MAIN_HUG_KISS - KissHugSceneAAF - End of function, rest of code should be called from animation start event")
	;Rest of code gets executed in the event

EndFunction

 

 

 

 

Basically what happens is that AAF plays a random animation whenever you use the pop-up menu to either hug or kiss your romanced companion rather than the proper animation. I would debug it myself, but I only know enough scripting to be dangerous and I would have to basically rewrite it using Flashy's template to figure out what's going on. Thanks again.

I did ask him about the blackout and he says it is one error in AAF.

Even if you have turned off the blackout in the menu it still are there.

 

 

Link to comment
13 minutes ago, Gulfwulf said:

It's attached to a quest that starts automatically. Could I remove the mod, then use the save game cleaner to remove the scripts? I'd rather not have to start a new game just to test this out because it requires a romanced companion to work.

I tested it out myself with ILER and with another mod that passes position names to AAF and had the same problem.  It looks like it may be a problem in AAF.

 

If you do want to clean your save, do it while the mod is still installed.  Doing a blanket removal of unattached script instances is not safe in FO4, so you need to leave the mod installed so that you can identify its records in the save.  In ReSaver, you can apply a filter for that mod, expand everything under script instances and changeforms, select everything, and delete them all.  This ensures you are only removing records from that mod.  Then you can safely update or uninstall the mod.

Link to comment
2 hours ago, fred200 said:

I can't let this pass without mentioning:

https://www.creationkit.com/fallout4/index.php?title=Notepad%2B%2B

 

Notepad++ has been great for anything I wanted to do, from XML to Papyrus to compiles.

 

Yes. Many people use Notepad++ also. I started with Sublime Text and never felt that anything was missing. But, I would be curious to hear about any pros/cons from someone who has used both.

Link to comment
On 9/16/2018 at 5:07 AM, Gulfwulf said:

Hey DK,

 

This is the script for the Immersive Lovers Embrace Remastered mod that we were discussing on the issues tracker where the wrong animations were taking place. The author hasn't responded to any comments on the mod page in over a week, so I figured I'd post this here to see if either you or @Flashy (JoeR) could tell me what's wrong with it. I don't mind making changes and testing them because I like the idea behind the mod. Thanks.

  Reveal hidden contents

Basically what happens is that AAF plays a random animation whenever you use the pop-up menu to either hug or kiss your romanced companion rather than the proper animation. I would debug it myself, but I only know enough scripting to be dangerous and I would have to basically rewrite it using Flashy's template to figure out what's going on. Thanks again.

This is fixed in beta 19.

Link to comment
3 hours ago, EgoBallistic said:

 

That LLFP error means that your version of F4SE is out of date or at least doesn't match what that version of LLFP was built for.  LLFP is a F4SE plugin that comes with AAF, and it can also be downloaded separately.  For best results, make sure your Fallout 4 is up to date, you have the latest F4SE, and you are using the latest release of AAF. 

 

Not sure if the LLFP error is related to your canine CTD, but best to have everything installed correctly before trying to diagnose a problem.  Note that there is not a general problem with canine animations and AAF, they normally work just like any other animation.

Is it possible to install an older version of LL FP over what AAF provides then? I don't want to have to re-optimize 20+ gigs of textures if I don't have to, that's a day-long job

Link to comment

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...

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