Jump to content

[LE] Invisible Speaker


Recommended Posts

I'm trying to create a disembodied voice, and that has been harder than expected. I'd love some tips/help.

 

Tried and Failed:

ObjectReference.Say()

 

This looks like a perfect solution for me.

I imagined placing an xmarker at the actors feet, and having it speak with 2D voice so range doesn't make a difference... "I'll be done in 15 minutes!" - famous last words!

 

I can't get it to work. I've tried everything from an xmarker to a weapon for the object, and the line is never spoken.

The topic I'm using was created under a quest, and has no conditions. I can hear the line anytime I want by walking up to any NPC and selecting the topic.

 

My test script creates the object using PlayerRef.PlaceAtMe(SpeakingMarker as Form)

 

speakingObj.Enable()
Utility.Wait(5.0)
speakingObj.Say(sayTopic, speaker, speakInHead)

 

I've tried passing in an actor and not passing in an actor. I've tried adding a long wait (5 seconds) just to see if the timing was off, and something was still loading.

 

I have a debug notification in the "begin topic script", and it never fires.

 

Tried and "kindof" works:

Make a actor, with alpha 0 and the muffledmovement perk.

 

Then when I need the voice, I use SetPosition to place the actor at the player.

This works for letting the actor speak in scenes, but has a couple problems....

 

1) The actor can "bump" into the player when it appears.

2) The actor sometimes falls through the world and then the dialog is skipped.

3) The player can activate the actor (this is probablly easy to fix, I just have not tried yet)

 

Other Option:

I can just use the audio and play it (like a sound effect), but if I do that I don't have subtitles.

 

 

======

 

1) Does anyone know why the first (could be perfect) option isn't working? ObjectRef.Say() looks perfect on paper!

2) Any suggestions on fixing the "falling through the world" problem?

3) Any suggestions on fixing the "bump into player" problem?

4) Any other solutions to the problem I missed?

 

Thank you!

 

Link to comment
Share on other sites

Update: I managed to get ObjectReference.Say() working with one of the built in topics (WICastMagicNonHostileSpellWeirdTopic). It even works with an xmarker (that a set display name), but I still have not managed to make it work for my topic.

 

The code is exactly the same, so the only change is the topic.

 

I found the quest holding their topic, and tried to make both exact copies of each other.

 

I also re-generated my SEQ file (they used a "start game enabled" quest, so I changed mine to match)

 

Branch:

Normal, Not exclusive

 

Topic:

Subtype: Custom

Topic Text: blank

 

Topic Info:

Condition: GetIsVoiceType: FemaleKhajiit == 1.0

 

Set topic to "WICastMagicNonHostileSpellWeirdTopic", all works.

Set topic to "MyTopicName", nothing happens.

 

Any suggestions?

Link to comment
Share on other sites

You're looking for Talking Activators. Try to google it, I think I've seen a few tutorials on the subject somewhere.

 

Excuse me while I scream in frustration!

 

.

.

.

 

Yes, that works perfectly.

 

I've spent many hours trying to fix this problem, never once trying a TalkingActivator because they have "Activator" in the name, so I assumed they would show up as something the PC could activate.... (even if it didn't require clicking, I expected to have the text there)

 

But tonight in about 10 minutes I had it working perfectly. Just placeatme and start the scene. Delete after and you are good to go.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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