Twine 2 doesn't currently have the ability to embed multimedia into your story. If you'd like to create something that makes heavy use of images, sound, or movies, you may want to stick to Twine 1 for now. But that's not to say that you can't use these things in your story! For now, you'll need to store them elsewhere – whether it's on a web site you control, or a service you use like Dropbox – and put references to them in your story.
If you are using relative links for your multimedia, you will need to publish your story to the correct location on your computer so that the references point to the right place. If you have an image tag whose source property is “myimage.jpeg”, for example, then your published file must be placed in the same folder as the file myimage.jpeg. Learn more about relative links
If you are using relative links, testing or playing your story inside Twine will unfortunately not work.
Hotlinking, or using a resource on someone else's server without their permission, is a bad idea. Not only is it freeloading on someone else's bandwidth, but the media could go away at any time – or be replaced by an angry owner with something you weren't expecting!
Once you know what your image's URL is, having it display in your story is as simple as entering the correct HTML code to show up:
<img src="the URL of your image" width="500" height="300" alt="Two foxes">
The width and height part of the code control the size of your image on the page. If you leave them off, then it will display the image in the dimensions as you saved it.
The code to enter for a video is similar to what you use for an image:
<video src="the URL of your video" width="640" height="480"> </video>
There are a lot more options for customizing how your video appears – try this HTMl5Rocks article for details.
If you'd like to embed a video from a service like YouTube or Vimeo, check the page for an option to embed it. See YouTube's help and Vimeo's help for specific instructions on how to get the embed code and customize it. Once you have that code, enter it as-is into your passage to have it display.
The code to add a basic sound effect looks like this:
<audio src="the URL of your sound effect" autoplay>
The autoplay attribute causes it to play as soon as the passage it is in is displayed.
That said, SugarCube has features that make using audio much simpler, and also allow for music. If you use the code above, you'll find that any music ends as soon as the reader navigates to another passage, which is probably not what you'd like to have happen. There are two steps to using audio in SugarCube. First, you'll need to cache it. Caching it allows the browser to load your audio ahead of time, so that there isn't a delay when you ask it to be played. It also allows you to give each sound effect or piece of music a short name to make
<<cacheaudio "door-opens" "the URL of your sound effect">>
The best place to cache audio is right at the start of your story. On a later passage, playing a sound effect is as simple as writing:
There are many other options that let you fade in and out sounds, play multiple at the same time, and even move to another passage when a sound effect finishes. For more information, see the Audio section of the SugarCube macro documentation.