Jump to content

A way to add tracks?


Recommended Posts

When exported, the resulting nif should look similar to the attached nif.

I have a bunch of these controls ready made btw. They were cut from vanilla console panels and painstakingly animated in nifskope. Lamps, buttons, rotary switches... We can use them if we need to.
 

Also if you look at the animations in nifskope, it has these independent animations I mentioned earlier. The button animations are independent from the lamp animations. Means I only need 1 "Dark" state, 1 "Steady" state, 1 "Blink Slow" and 1 "Blink Fast" - No matter what state the actual button movement animation is in.

 

ConsoleButton_B.nif

  • Like 1
Link to comment
Share on other sites

8 minutes ago, ChuckYufarley said:

I wish I'd have spent more time looking into ways of exporting nif related features from Max, the way you can. At this point, my workflow is pretty much set in stone and I'm stuck doing things in Nifskope that are probably a lot easier to do in Max.

There is nothing complicated there to waste time on. This is a built-in bgs nif exporter script. You need to create a bone. The root of the bone is the coordinates of the node, the direction of the vertex of the bone specifies the angle. Next, right-click on the bone > Object Properties > User Defined. In the window, enter sgoKeep = 1. Rename the bone to the name of any specialized node. When exporting, instead of a bone, a node will be created automatically.

Link to comment
Share on other sites

Posted (edited)

In general, look. I don't know if I did everything right or wrong. All elements or not... Speakers. I made the left and right speakers separately. Animated. Maybe the speakers themselves should be made separately from the speakers box, I don’t know? Or add controls? Insert volume control, etc. Each element is saved separately in 3ds so that the sequences can be easily remade. Write if corrections are necessary.

https://disk.yandex.ru/d/qSZvzRs-n7aLEg

 

WattzAllElements.png

Edited by South8028
Link to comment
Share on other sites

I did some experimenting with two free standing speakers placed in workshop, using invisible radio receiver objectreferences as the actual sound emitters, one refattached to each speaker.

vi5cs9n.png

Turns out, true stereo sound in 3d gamespace is alas not possible - For 3d placement of sound in the game world, the SOM is required to have "Uses HRTF" selected at [1].

* When using HRTF (Head-Related Transfer Function), there is no control over individual channels and the emitter outputs fixed mono signal (possibly mixdown from all source channels, or just from the left (0) chanel).

* When using "Defined Speaker Output",  one can control channel-to-speaker assignment. However, with this option, sound is no longer placed in 3d space, but mixed directly into the audio output of the game. Apparent volume will still be dependent on player's distance from the emitter(s), but spatial positioning in the game world is completely lost. In other words, the sound does no longer appear to emit from the in-game speakers. It's more like opening media player in the background and listening to some track there.

Above you can see SOM for stereo (2 channel) input with output matrix set for right channel output. For input channel 1 (R),  all left output channels [2] set to zero, right output channels [3] set to 100 (Front) / 50 (Side) / 50 (Rear). LFE and Center unused. For input channel 0 (L), everything is simply set to zero.

That said, placing two mono speakers still produces acceptable sound, better than using just one speaker. I also found a way to boost volume of radio stations to actual HiFi-system levels.

The game seems to put a limit on maximum sound level, where boosting beyond a certain point will cause the engine to limit/cap the sound level to that point.
Something else I noticed is that, sometimes, there can be small (but audible, ie >20ms) delay between two radio emitters. Investigating further.

Link to comment
Share on other sites

Posted (edited)
45 minutes ago, niston said:

I did some experimenting with two free standing speakers placed in workshop, using invisible radio receiver objectreferences as the actual sound emitters, one refattached to each speaker.

vi5cs9n.png

Turns out, "true" stereo sound in 3d gamespace is alas not possible - For 3d placement of sound in the game world, the SOM is required to have "Uses HRTF" selected at [1].

* When using HRTF (Head-Related Transfer Function), there is no control over individual channels and the emitter outputs a mono signal (mixdown from all source channels, using an unknown matrix).

* When using "Defined Speaker Output",  one can control channel-to-speaker assignment. However, with this option, sound is no longer placed in 3d space, but mixed directly into the audio output of the game. Apparent volume will still be dependent on player's distance from the emitter(s), but spatial positioning in the game world is completely lost. In other words, the sound does no longer appear to emit from the in-game speakers. It's more like opening media player in the background and listening to some track there.

Above you can see SOM for stereo (2 channel) input with output matrix set for right channel output. All left channels [2] set to zero, right channels [3] set to 100 (Front) / 50 (Side) / 50 (Rear). LFE and Center unused.

That said, placing two mono speakers still produces acceptable sound, better than using just one speaker. I also found a way to boost volume of radio stations to actual HiFi-system levels.

The game seems to put a limit on maximum sound level, where boosting beyond a certain point will cause the engine to limit/cap the sound level to that point.
Something else I noticed is that, sometimes, there can be small (but audible, ie >20ms) delay between two radio emitters. Investigating further.

I know that stereo sound is not possible for sound node. Stereo sound does not come from the object's pivot point, but from the pip-boy. I previously proposed a ready-made pseudo-stereo bypass circuit. Two mono from a separate left, separate right channel, distributed between the left and right speakers. The result will be stereo. For me the only question is whether it is possible to launch one sound from two different soundNodes.More precisely... Is it possible to synchronize two mono in soundNodes of two different objects.

Edited by South8028
Link to comment
Share on other sites

Two mono channels do not equal stereo, because of the mixdown performed by HRTF. So both speakers will output same mixed-down signal, instead of left respectively right channels only. But as mentioned, using two mono speakers still sounds much better than having just one. True stereo is possible, but only for sound sources not positioned in the 3d game world (using "Defined Speaker Output" instead of "HRTF" in Sound Output Model).

I do not work with sound nodes at all in my testing. Each speaker has a NiNode called REF_ATTACH_NODE and another NiNode called EMITTER_NODE.
Script then spawns invisible radio receiver object and attaches it to EMITTER_NODE.

Instead of spawning radio receiver objects, custom emitter objects for playback of a certain file/track can be possible. It remains to be seen if these can be synced across multiple speakers. I was investigating game code and there is a whole bunch of functions for sound handles, including one to duplicate state of a sound handle to another handle. There are also functions for getting and setting playback position. Looking into making them all available to Papyrus via DLL, but testing will be needed.

 

Link to comment
Share on other sites

2 minutes ago, niston said:

Two mono channels do not equal stereo, because of the mixdown performed by HRTF. So both speakers will output same mixed-down signal, instead of left respectively right channels only. But as mentioned, using two mono speakers it still sounds better than having just one. True stereo is possible only for sound not positioned in the 3d in the game world.

I do not work with sound nodes at all in my testing. Each speaker has a NiNode called REF_ATTACH_NODE and another NiNode called EMIITER_NODE.
Script then spawns invisible radio receiver object and attaches it to EMITTER_NODE.

Instead of spawning radio receiver objects, other emitter objects (I forgot what they're called in CK) for playback of a certain file can be possible. It remains to be seen if these can be synced across multiple emitter objects. I was investigating game code and there is a whole bunch of functions for sound handles, including one to duplicate state of a sound handle to another handle. Looking into making them all available to Papyrus via DLL, but more testing will be needed.

 

Well, OK. 🙂 Then I will continue to make different nifs for all these buttons, reels, indicators, etc. I will do a lot for all sorts of options. By the way, I even made a havok animation to turn on the tape recorder. You can animate everything with an actor without any problems, but I just don’t know how to run these havok animations if the tape recorder is not furniture. Anyway, I'll make an animation for the actor with the headphones. Furniture can be plugged into the socket on the bs connect point and the actor will take headphones - furniture from the table, put them on his head and play the listener's animation.

Link to comment
Share on other sites

I have a question: Could you animate the volume knob to have 20 positions (different volume levels) in total, each being an individual state?

Script can then be made and attached, allowing to rotate the knob, like  E) DOWN   R) UP, decreasing or increasing volume level.

Link to comment
Share on other sites

Posted (edited)
5 minutes ago, niston said:

I have a question: Could you animate the volume knob to have 20 positions (different volume levels) in total, each being an individual state?

Script can then be made and attached, allowing to turn knob, like  E) UP   R) 

Sure, no problem. First frame - volume at minimum? And then 20 sequences maximum? Sequence names don't matter? Just, for example, up01, up02, etc... Up to Up20.Write what else you need. For example, different states for reels. Also remember that I can make objects visible and invisible in different sequences.

Edited by South8028
Link to comment
Share on other sites

  • Recently Browsing   0 members

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