Scripted Island – Ambiences [in Unity 3D]

I have created a few scripts in Unity 3D to testing purposes which are driving custom recorded sounds to build an audio atmosphere of small island. Scripts randomly trigger oneshot sounds and a couple of loops (wind, river and some other) to create non-repetitive audio background without use of long recordings. This also allows to position point sound sources, like birds at certain places in the enviroment which helps you to locate yourself in the world.

What’s scripted on the island:

  • Triggering sounds only when the Player is in the area
  • Scripted Island ScreenNighingale Birds Sounds on trees
  • Ocean waves near the shore
  • Spatialized sound of the river
  • Frogs in Ponds
  • Crickets around grass area
  • Wind blowing at the cliff (also spatialized)
  • Footsteps:
    – script automatically chooses apropriate footsteps set (ground, sand, stones, water, wood, metal etc.), coresponding  to terrain textures and detects collision with objects (bridges, water)
    – Shuffles steps playing order to alleviate repetitiveness (every set contains 10 to 50 sounds).

The sound files size  is 10 MB of ogg compressed data. 21 MB of all data to transfer and run online (Unity 3D Web Player is required. Update: Chrome Browser withdrew support for NPAPI plugins and Webplayer doesn’t work there anymore. Also in Opera browser. You need to use other browser like Firefox to run this).

To control movement use keys: WASD + Mouse to look around. To turn on the fullscreen mode click the icon in the bottom right corner.

Update info (06.2017): due to policy changes and lack of updates on Unity side, online example seems not to work in any of current browsers. Sorry.

[unity src=”701″]

Unity 4.x scripts are limited in a few places when you want to control Audio Source. For example you can use one of only two RollOff Curves (Linear or Logarithmic). Custom Rolloff Curve is not available when accessing from script. Overcoming such limitation isn’t complex so if you need different Rolloff to your sounds you can emulate it by feeding distance between Player and sound emitter to audio.volume manually.

Whith similar approach we can simulate if the sound in the Unity surrounds the player or not. Change gently Pan Level parameter of the Audio Source when player approaches near the object and see – I mean – listen to what happens with the sound (check the river in the island).

Sound of Nature in Unity 3D: Nightingale

Simple scene made with Unity 3D and custom recordings of single Nightingale multiplied and radomized by javascript attached to a few objects. The scene uses about 100 one shot sounds of singing bird wchich uses 3,8 MB of space after compressing it into ogg.

 

The sounds and the script are available on the Unity Asset Store: Nightingale Sing

UDK, KISMET and Interactive Music

Attempt to make simple music system with horizontal and vertical interactive arrangement which follows user progress and going back to areas passed before. It respects tempo and given number of bars of the music. But it is also limited and not very effective for more complex music tracks and presents some flaws in UDK audio engine which suggest to use middlewares like FMOD or WWise to achieve good results much quicker. Any later changes to the music makes implementing it in UDK quite a pain.

Listen how it works here.

 

and have a quick glance on some Kismet Wires:

Kismet

 

 

ps: video was recorded with some free software I had around and it causes significant framedrop. It did not record any sound so I had to do separately (by connecting headphone output to input by cable :>) and put it together later. Forgive me such a quality.