Jump to content

A way to add tracks?


Recommended Posts

1 minute ago, niston said:

Looking at the picture of a crown 800 front panel, I don't even understand where the play/stop buttons are. Is it the set of black ones near the big metal lever to the right?

Yes, it is signed <=operate=>. I was just looking for a tape recorder from the 1960s, made in the USA. Crown800, as far as I understand, was one of the most popular models of that time. It's like an analogue of the WATTZ tape recorder from fo4. Buttons... The small one is Play, the left one is rewind, the right one is fast forward, the big button is Stop.

Link to comment
Share on other sites

Alright! And what about the lever? I suppose it's used to load/unload the tape on the IRL machine, too? It'll probably cause the head assembly to move and press against the loaded tape, respectively release it. Either that, or engages/releases the capstan rollers or shafts.

In any case, if each of these elements has it's animation states made available as gamebryo animations (NiControllerSequence), they can all be called from papyrus script.

Ah yes, BUT:

For controls (buttons, levers) they MUST be separate objects: It's not possible to have more than one activation point on a nif.
So display only animations can be combined into the main nif. Elements that need to be interacted with must be placed as separate nifs/objects, like Chuck described earlier.
Also IIRC there's a practical limit on how small elements for interaction can be, because it becomes impractical to reliably select them for activation at some size.

Link to comment
Share on other sites

Posted (edited)
22 minutes ago, niston said:

Alright! And what about the lever? I suppose it's used to load/unload the tape on the IRL machine, too?

In any case, if each of these elements has it's animation states made available as gamebryo animations, they can all be called from papyrus script.

https://disk.yandex.ru/d/nhIi_jhssP-1aw

I have no idea. I didn’t live in those days and didn’t see these tape recorders. 😁 I don't know how they worked. I think we shouldn’t fall into total perfectionism. Otherwise, it will drag on for a year and will end in nothing, because there are no limits to improvement. You can tell me exactly what you need me to do. I'll do it as you want. But I must understand exactly what needs to be done. I mean the exact details... One nif, or 145? How many sequences? What happens in each sequence? What are these sequences called? 🙂 Because it is impossible to implement abstract ideas.

Edited by South8028
Link to comment
Share on other sites

Well, we gonna need some way to load/unload tapes.

Ok, lets sum up controls we want and keep them simple:
- Power switch - States: On, Turning Off, Off, Turning On
- Play button - States: Idle, Activated
- Stop button - States: Idle, Activated
- Rewind button - States: Idle, Activated
- Fast forward button - States: Idle, Activated
- Tape load/unload lever - States: Unloaded, Loading, Loaded, Unloading
- There is the question of volume control: If we using a component system with a dedicated amplifier component, then I'd suggest we use a volume knob on the amp as master volume control. As for the reel recorder itself, it seems to have separate knobs for volume left and right channels. We could ignore them in case we go the component route, or use them in any other case. Depending if actual stereo playback is possible, we could use both or only one of them.
- Perhaps there should be an extra button for bringing up a configuration menu for the recorder. At least if it's going to use NetLink, user will need a way to set it up. States: Idle, Activated

Each of those need to be placed as separate objects in game (by script), as mentioned earlier. So you'd need to create two button variants (small and big), the power switch, the lever. And a volume knob. 5 nifs in total.


And all the "display-only" stuff:
- Reels - States: Reel_Unloaded, Reel_Loaded, Reel_Playback, Reel_FastFoward, Reel_Rewind
- Backlight - States: Backlight_On, Backlight_Off
- Not sure if you want to do VU meters. I guess those would just be a random looking anim like you use for the speakers. If so, states would be: VU_On, VU_Off. Or - they could be coupled to start/stop their animation together with the Reel_Playback animation. When the reels are in playback state, VU meters animate. In any other state, they don't animate. You decide.

All of this can be directly in the main nif.

Link to comment
Share on other sites

Posted (edited)
12 minutes ago, niston said:

I guess we will wait for Chuck's input on how to proceed?

Yes, I did what he asked. Next, I hope he can explain to me how to implement Reels (rewind, game, reverse rewind, stop)... In the form of one nif, or four nif's.. Together with the buttons, or the buttons will be separate... If there is such a rewind mechanism ... This means that the arrows on the counters should be made separately. And as for loading these reels onto the tape recorder... I don’t know how exactly to do this... I mean, I can do up to havok animation. For npc to come up and put these reels on the tape recorder... Technically this is possible. But this has simply gone very far from the initial modest requirements. 🙂

https://disk.yandex.ru/d/8ERQRiPufcfF_A

Edited by South8028
Link to comment
Share on other sites

21 minutes ago, South8028 said:

And as for loading these reels onto the tape recorder... I don’t know how exactly to do this... I mean, I can do up to havok animation. For npc to come up and put these reels on the tape recorder...

No, I meant for the player to be able to load a tape item into the recorder.

Imagine:

- Player activates load/unload lever on machine
- Container Menu pops up (inventory). Player adds a tape item to the machine inventory.
- As container menu closes, machine script registers valid tape item being inserted
- In base Nif, animation "Reel_Loaded" is played and spools/coils appear/ are made visible.
- Reels appear on base Nif

Now for the opposite:

- Player activates load/unload lever on machine
- Container menu pops up. Player removes tape item from machine inventory.
- As container menu closes, machine script registers tape item no longer being present
- In base Nif, animation "Reel_Unloaded" is played and spools/coils disappear resp are made invisible.

 

And for Chuck:

Now suppose the tape item has a script on it with an array of sound emitter forms. These are the individual "tracks" on the tape. If we can do stereo sound, then each track would have two forms: one for each channel.
The sound system scripts could then attach these emitters to the speakers with PlaceAtNode(), as required and desired. Once a the emitter is placed and refattached on a speaker and enabled, it will play it's corresponding sound descriptor from the speaker's location.
If the speaker is moved in workshop, the (invisible) emitter will move with it.
When playback is no longer desired, the sound system scripts can Delete() the emitters and playback stops.
Possible issues will be syncing of channels and detecting end of track, so the next track can be played back.

 

Link to comment
Share on other sites

1 minute ago, niston said:

No, I meant for the player to be able to load a tape item into the recorder.

Imagine:

- Player activates load/unload lever on machine
- Container Menu pops up (inventory). Player adds a tape item to the machine inventory.
- Machine registers valid tape item being inserted
- In base Nif, animation "Reel_Loaded" is played and spools/coils appear
- Reels appear on base Nif

Now for the opposite:

- Player activates load/unload lever on machine
- Container menu pops up. Player removes tape item from machine inventory.
- As container menu closes, machine registers no more tape item being in the machine
- In base Nif, animation "Reel_Unloaded" is played and spools/coils disappear

 

Then the following difficulties arise... The Reels are one nif with these spindles, or I don’t know what these axes on which the Reels are put on are called. It’s not difficult to tear them off and make them separately. But then we need to start spinning these things and Reels separately? They have not just a round shape, but their own geometry, which also rotates and cannot remain stable when the Reels rotate. They will have to be made invisible when animating Reels. Accordingly, in nif's, where Reels are animated, they will be separate from the basic version.Okay, let's have Chuck look at the buttons first. Maybe I pulled them off incorrectly. I saved their coordinates relative to the base model. Maybe each button should have been placed at 0,0,0 so that they would connect to the NiNode correctly.

Link to comment
Share on other sites

18 minutes ago, South8028 said:

 Maybe each button should have been placed at 0,0,0 so that they would connect to the NiNode correctly.

Yes, absolutely. 1st) this will allow reusing 1 button nif to place any number of this button type via script and 2nd) offer full control over individual button positions, via NiNodes they attach to at runtime.

Quote

Then the following difficulties arise... The Reels are one nif with these spindles, or I don’t know what these axes on which the Reels are put on are called. It’s not difficult to tear them off and make them separately. But then we need to start spinning these things and Reels separately?

Not sure if I understood correctly what you asked. But.
Reels (Coils/Spools) on a Reel-To-Reel tape machine will never move separately, as long as a tape is threaded.
In real life, each of the reels will rotate at different rates, depending on how much actual tape is spooled up on each of them and as the tape moves from one reel to another, the rotation speed of each reel changes.
For in-game simulation, I'm sure it'll be fine if both left and right spool always move in sync at the same speed.

To create the animation in nifskope, I'd use two NiNodes for each reel's axis. Then place a reel mesh (NiTriShape) on each and then have a NiSomething controller (I forget which type) modify the proper rotation axis of the node at the desired speed.
I'm not sure how I'd make them invisible. I think we experimented with scale already and noted that we can make something invisible as long as we scale it small but not zero, but I wouldn't know how to modify the scale through an animation controller and would have to figure it out. And it's of course always possible to modify alpha of a NiTriShape from an animation controller and a NiAlphaProperty to make the NiTriShape transparent.

As for spinning them fast, the Vertibird I believe uses a trick for the propeller blades: When it fully spools up, it replaces the model with individual blades with one that just shows a blurred mess and roates this. It then looks as if the blades were turning very fast.
 

Link to comment
Share on other sites

Posted (edited)
2 hours ago, niston said:

Yes, absolutely. 1st this will allow reusing 1 button nif to place many buttons via script and determine the position via NiNodes they attach to at runtime.

Not sure if I understood correctly what you asked. But.
Reels (Coils/Spools) on a Reel-To-Reel tape machine will never move separately, as long as a tape is threaded.
In real life, each of the reels will rotate at different rates, depending on how much actual tape is spooled up on each of them and as the tape moves from one reel to another, the rotation speed changes.
For in-game simulation, I'm sure it'll be fine if both left and right spool always move in sync at the same speed.

As for spinning them fast, the Vertibird I believe uses a trick for the propeller blades: When it fully spools up, it replaces the individual blades with a blurred mess and roates this. It then looks as if the blades were turning very fast.
 

Two reels are one model. Obviously, their rotation speed is the same. There is no point in replacing reels with uv animation because they can be physically animated at any speed. I think the vertibird cannot be animated like that, because it is a creature with bones. The rotation animation is simply replaced by uv animation due to the complexity of implementing the kinematic rotation of a skinned object. This was probably done to make the work of the animators easier.

Meshes can be shown and hidden using NiVisController. This was in a recent thread where I did ProSnap. In 3ds this is done using the visibility track in the Dope Sheet. The mesh is selected and a key is added to any frame on the visibility track. 1 - the object is visible, 0 - invisible. When exporting, 3ds itself adds the necessary controller and interpolator.

Edited by South8028
Link to comment
Share on other sites

  • Recently Browsing   0 members

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