/usr/share/doc/renpy/html/voice.html is in renpy-doc 6.17.6-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 | <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Voice — Ren'Py Documentation</title>
<link rel="stylesheet" href="_static/screen.css" type="text/css" media="screen, projection"/>
<link rel="stylesheet" href="_static/renpydoc.css" type="text/css" media="print" />
<!--[if lt IE 8]>
<link rel="stylesheet" href="_static/renpydoc.css" type="text/css" media="screen, projection"/>
<![endif]-->
<link rel="stylesheet" href="_static/renpydoc.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '6.18.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="top" title="Ren'Py Documentation" href="index.html" />
<link rel="next" title="Text" href="text.html" />
<link rel="prev" title="Movie" href="movie.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="text.html" title="Text"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="movie.html" title="Movie"
accesskey="P">previous</a> |</li>
<li> <img src="_static/logo.png" width=19 height=21 align=center>
<li> <a href="http://www.renpy.org/">Ren'Py Home</a> |
<li><a href="index.html">Ren'Py Documentation</a></li>
</ul>
</div>
<div class="container">
<div class="span4">
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Voice</a><ul>
<li><a class="reference internal" href="#voice-tags">Voice Tags</a></li>
<li><a class="reference internal" href="#automatic-voice">Automatic Voice</a></li>
<li><a class="reference internal" href="#voice-functions">Voice Functions</a></li>
<li><a class="reference internal" href="#voice-actions">Voice Actions</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="movie.html"
title="previous chapter">Movie</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="text.html"
title="next chapter">Text</a></p>
<h4>Search</h4>
<div id="cse-search-form" style="width: 100%;"></div>
<div class="copydata">
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a>.
<br>
</div>
</div>
</div>
</div>
<div class="document span20 last">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="voice">
<h1>Voice<a class="headerlink" href="#voice" title="Permalink to this headline">¶</a></h1>
<p>Ren'Py includes support for playing back voice in conjunction with
dialogue. This is done through the voice statement, which gives the
voice filename to play:</p>
<div class="highlight-renpy"><div class="highlight"><pre><span class="k">voice</span> <span class="s">"line0001.ogg"</span>
<span class="s">"Welcome to Ren'Py"</span>
</pre></div>
</div>
<p>Normally, a playing voice is stopped at the start of the next
interaction. The voice sustain statement can sustain voice playback
through an interaction.</p>
<div class="highlight-renpy"><div class="highlight"><pre><span class="k">voice</span> <span class="s">"line0001.ogg"</span>
<span class="s">"Welcome to Ren'Py..."</span>
<span class="k">voice</span> <span class="n">sustain</span>
<span class="s">"... your digital storytelling engine."</span>
</pre></div>
</div>
<p>The <a class="reference internal" href="config.html#var-config.voice_filename_format"><tt class="xref std std-var docutils literal"><span class="pre">config.voice_filename_format</span></tt></a> variable allows you to customize
the voice filename, making it possible to omit directories and extensions.</p>
<div class="section" id="voice-tags">
<h2>Voice Tags<a class="headerlink" href="#voice-tags" title="Permalink to this headline">¶</a></h2>
<p>Ren'Py includes a voice tag system that makes it possible to selectively
mute or unmute a character's voice. To take advantage of this system,
supply a voice_tag argument to each <a class="reference internal" href="dialogue.html#Character" title="Character"><tt class="xref py py-func docutils literal"><span class="pre">Character()</span></tt></a>, and use the
<a class="reference internal" href="#SetVoiceMute" title="SetVoiceMute"><tt class="xref py py-func docutils literal"><span class="pre">SetVoiceMute()</span></tt></a> or <a class="reference internal" href="#ToggleVoiceMute" title="ToggleVoiceMute"><tt class="xref py py-func docutils literal"><span class="pre">ToggleVoiceMute()</span></tt></a> actions to allow the
player to toggle the voice.</p>
<p>For example:</p>
<div class="highlight-renpy"><div class="highlight"><pre><span class="k">define</span> <span class="n">e</span> <span class="o">=</span> <span class="n">Character</span><span class="p">(</span><span class="s">"Eileen"</span><span class="p">,</span> <span class="n">voice_tag</span><span class="o">=</span><span class="s">"eileen"</span><span class="p">)</span>
<span class="k">define</span> <span class="n">l</span> <span class="o">=</span> <span class="n">Character</span><span class="p">(</span><span class="s">"Lucy"</span><span class="p">,</span> <span class="n">voice_tag</span><span class="o">=</span><span class="s">"lucy"</span><span class="p">)</span>
<span class="k">screen</span> <span class="n">voice_toggle</span><span class="p">:</span>
<span class="k">vbox</span><span class="p">:</span>
<span class="k">textbutton</span> <span class="s">"Mute Eileen"</span> <span class="na">action</span> <span class="n">ToggleVoiceMute</span><span class="p">(</span><span class="s">"eileen"</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="s">"Mute Lucy"</span> <span class="na">action</span> <span class="n">ToggleVoiceMute</span><span class="p">(</span><span class="s">"lucy"</span><span class="p">)</span>
<span class="k">label</span> <span class="n">start</span><span class="p">:</span>
<span class="k">show</span> <span class="k">screen</span> <span class="n">voice_toggle</span>
<span class="k">voice</span> <span class="s">"e01.ogg"</span>
<span class="n">e</span> <span class="s">"You can turn a character's voice on and off."</span>
<span class="k">voice</span> <span class="s">"l01.ogg"</span>
<span class="n">l</span> <span class="s">"Yeah! Now I can finally shut you up!"</span>
<span class="k">voice</span> <span class="s">"l02.ogg"</span>
<span class="n">l</span> <span class="s">"Wait... that means they can mute me as well! Really?"</span>
</pre></div>
</div>
</div>
<div class="section" id="automatic-voice">
<span id="id1"></span><h2>Automatic Voice<a class="headerlink" href="#automatic-voice" title="Permalink to this headline">¶</a></h2>
<p>Ren'Py includes support for automatically determining the voice file to play,
making it possible to play back voice without having to put voice statements
before each line of dialogue.</p>
<p>This is done by creating voice files that match the identifier for each line
of dialogue. To determine the identifiers to use , first export the dialogue
to a spreadsheet by choosing from the launcher "Extract Dialogue", "Tab-delimited
Spreadsheet (dialogue.tab)", and "Continue". This will produce a file, dialogue.tab,
that can be loaded in a spreasheet program.</p>
<p>The first column of the spreadsheet is the identifier to use, with other
columns giving more information about the dialogue.</p>
<p>To make Ren'Py automatically play voices, set <a class="reference internal" href="config.html#var-config.auto_voice"><tt class="xref std std-var docutils literal"><span class="pre">config.auto_voice</span></tt></a> to
a string containing <cite>{id}</cite>. When dialogue occurs, <cite>{id}</cite> is replaced with
the dialogue identifier, forming a filename. If the filename exists, it is
played.</p>
<p>For example, if we have:</p>
<div class="highlight-renpy"><div class="highlight"><pre><span class="n">config</span><span class="o">.</span><span class="n">auto_voice</span> <span class="o">=</span> <span class="s">"voice/{id}.ogg"</span>
</pre></div>
</div>
<p>And the dialogue identifier is <tt class="docutils literal"><span class="pre">demo_minigame_03fc91ef</span></tt>, then when
the corresponding line is shown, Ren'Py will look for the file
<tt class="docutils literal"><span class="pre">voice/demo_minigame_03fc91ef.ogg</span></tt>. If the file exists, Ren'Py will
play it.</p>
</div>
<div class="section" id="voice-functions">
<h2>Voice Functions<a class="headerlink" href="#voice-functions" title="Permalink to this headline">¶</a></h2>
<dl class="function">
<dt>
<tt class="descname">voice</tt><big>(</big><em>filename</em>, <em>tag=None</em><big>)</big></dt>
<dd><p>Plays <cite>filename</cite> on the voice channel. The equivalent of the voice
statement.</p>
<dl class="docutils">
<dt><cite>filename</cite></dt>
<dd>The filename to play. This is used with
<a class="reference internal" href="config.html#var-config.voice_filename_format"><tt class="xref std std-var docutils literal"><span class="pre">config.voice_filename_format</span></tt></a> to produce the
filename that will be played.</dd>
<dt><cite>tag</cite></dt>
<dd><p class="first">If this is not None, it should be a string giving a
voice tag to be played. If None, this takes its
default value from the voice_tag of the Character
that causes the next interaction.</p>
<p class="last">The voice tag is used to specify which character is
speaking, to allow a user to mute or unmute the
voices of particular characters.</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="voice_can_replay">
<tt class="descname">voice_can_replay</tt><big>(</big><big>)</big><a class="headerlink" href="#voice_can_replay" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns true if it's possible to replay the current voice.</p>
</dd></dl>
<dl class="function">
<dt id="voice_replay">
<tt class="descname">voice_replay</tt><big>(</big><big>)</big><a class="headerlink" href="#voice_replay" title="Permalink to this definition">¶</a></dt>
<dd><p>Replays the current voice, if possible.</p>
</dd></dl>
<dl class="function">
<dt id="voice_sustain">
<tt class="descname">voice_sustain</tt><big>(</big><em>ignored=''</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#voice_sustain" title="Permalink to this definition">¶</a></dt>
<dd><p>The equivalent of the voice sustain statement.</p>
</dd></dl>
</div>
<div class="section" id="voice-actions">
<h2>Voice Actions<a class="headerlink" href="#voice-actions" title="Permalink to this headline">¶</a></h2>
<dl class="function">
<dt id="SetVoiceMute">
<tt class="descname">SetVoiceMute</tt><big>(</big><em>voice_tag</em>, <em>mute</em><big>)</big><a class="headerlink" href="#SetVoiceMute" title="Permalink to this definition">¶</a></dt>
<dd><p>If <cite>mute</cite> is true, mutes voices that are played with the given
<cite>voice_tag</cite>. If <cite>mute</cite> is false, unmutes voices that are played
with <cite>voice_tag</cite>.</p>
</dd></dl>
<dl class="function">
<dt id="ToggleVoiceMute">
<tt class="descname">ToggleVoiceMute</tt><big>(</big><em>voice_tag</em>, <em>invert=False</em><big>)</big><a class="headerlink" href="#ToggleVoiceMute" title="Permalink to this definition">¶</a></dt>
<dd><p>Toggles the muting of <cite>voice_tag</cite>. This is selected if
the given voice tag is muted, unless <cite>invert</cite> is true,
in which case it's selected if the voice is unmuted.</p>
</dd></dl>
<dl class="function">
<dt id="VoiceReplay">
<tt class="descname">VoiceReplay</tt><big>(</big><big>)</big><a class="headerlink" href="#VoiceReplay" title="Permalink to this definition">¶</a></dt>
<dd><p>Replays the most recently played voice.</p>
</dd></dl>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="text.html" title="Text"
>next</a> |</li>
<li class="right" >
<a href="movie.html" title="Movie"
>previous</a> |</li>
<li> <img src="_static/logo.png" width=19 height=21 align=center>
<li> <a href="http://www.renpy.org/">Ren'Py Home</a> |
<li><a href="index.html">Ren'Py Documentation</a></li>
</ul>
</div>
</body>
</html>
|