マガジン

気持ちいい操作音は何ヘルツか:聴覚の特性から確かめる効果音の作り方

遊びを見つける

執筆にClaudeを使用しています。

大きなボタンに指が触れ、スピーカーへ金色の音の波が広がる立体イラスト
記事のテーマをもとに制作したAI生成イラスト。

ブラウザゲームのボタンに、押したときの小さな音をつける場面を考えてみます。440Hzの音と2,000Hzの音のどちらを鳴らすか。迷って数値を変えながら何度も鳴らすうちに、どれも同じように聞こえてきます。 先に結論を言うと、「この周波数が万人にとって気持ちいい」と言える単一の数値はありません。ただし、決める材料はあります。人の耳は高さによって感度が変わります。音の高さの関係(周波数の比)には、広く使われてきた整理の仕方があります。この2つを押さえたうえで、自分の作品と自分の耳で確かめる手順を持つことが、効果音づくりの根拠になります。 この記事では、聴覚の一般的な特性を整理し、周波数・長さ・音量を変えて聴き比べる小さな試作コードと、記録の取り方、結果の読み方を示します。測定結果は載せていません。答えは読者自身の環境で出していただきます。

この記事の目次
  1. 耳の感度は「高さ」で変わる
  2. 高さの「関係」が印象を作る
  3. 試作:周波数・長さ・音量を並べて聴き比べる
  4. 実験の設計書:何を、どの単位で、何回記録するか
  5. 結果の読み方と起こりやすい誤り
  6. 公式作品で「音の役割」を確かめる
  7. 次の行動
  8. 参考資料

耳の感度は「高さ」で変わる

音の大きさは、機械的には音圧で測れます。しかし人が感じる「聞こえの大きさ」は、音圧だけでは決まりません。同じ音圧でも、低い音と非常に高い音は小さく聞こえやすく、中高域は大きく聞こえやすいことが知られています。この関係を示したものが等ラウドネス曲線で、国際規格ISO 226に整理されています。一般には、おおよそ2kHzから5kHzあたりで感度が高くなると説明されます。人の話し声の子音や、赤ちゃんの声が含まれる帯域に近い範囲です。

操作音の設計では、次の2点が重要になります。

  • 高い音ほど鋭く目立つ傾向があり、小さな音量でも「聞こえる」一方で、長く繰り返すと耳につきやすくなります。
  • 低い音は同じ音量設定では小さく感じやすく、小型スピーカーでは再生しきれないことがあります。

つまり、周波数を変えると「高さ」と同時に「聞こえの大きさ」も変わります。周波数だけを変えて好みを比べたつもりでも、実際には音量の違いを比べているかもしれません。この混入が、効果音の聴き比べで最も起こりやすい誤りです。

また、可聴域は個人差があり、一般に年齢とともに高い側から聞こえにくくなります。再生機器の特性も影響します。スマートフォンの内蔵スピーカー、ノートPCのスピーカー、イヤホンでは、出せる帯域が違います。「自分の環境で心地よい」音が、他の人の環境でそうとは限りません。

高さの「関係」が印象を作る

絶対的な周波数のほかに、2つの音の関係が印象を左右します。

音楽で一般的に使われる音階では、基準音の周波数を2倍にするとちょうど1オクターブ上の同じ名前の音になります。よく使われる基準は、A4(ラの音)の440Hzです。12平均律では、1オクターブを12等分した半音ごとに周波数が約1.0595倍(2の12乗根)になります。完全5度(半音7つ分)は、周波数比で約3対2に近い値です。この比に近い2音は、協和して聞こえるとされることが多い組み合わせです。

効果音の定番として、「成功・決定は上がる2音、失敗・キャンセルは下がる2音」という使い分けがあります。多くのアプリやゲームで見られる慣習ですが、これは文化や経験で身についた連想の面が大きく、物理的な決まりではありません。作品の世界観に合わなければ、逆にしても構いません。大切なのは、作品の中で一貫させることです。

公式作品の設計から読み取れること

アソバースの公式作品「雨音のピアノ」は、フェルトとガラスの2音色、3段階のタッチ、余韻の切り替えを備え、キーボードのA W S E D F T G Y H U Jの12個のキーで演奏でき、Z/Xで音域を移せます。音域を切り替える作りから、音の高さを「相対的な並び」として扱っていることが読み取れます。12個のキーがどの音名に対応するか、音域がどれだけ動くかは、作品を開いて実際に鳴らして確かめてください。

「WAVE / WAVE」は、4つの音を16ステップに並べてループ再生するリズムスタジオです。音色ごとにトラックを分け、ミュートで音を出し入れできる構造から、音の重なりを聴き比べながら組み立てる使い方が設計に含まれていると読み取れます。

試作:周波数・長さ・音量を並べて聴き比べる

自分の耳で確かめるための最小の道具を用意します。外部ライブラリは使わず、ブラウザ標準のWeb Audio APIだけで動きます。次のコードを test.html として保存し、ブラウザで開いてください。

html
<!doctype html>
<meta charset="utf-8">
<label>周波数 <input id="f" type="range" min="200" max="4000" value="880"></label>
<output id="o">880</output> Hz<br>
<label>長さ(ms) <input id="d" type="range" min="40" max="600" value="120"></label><br>
<label>音量 <input id="v" type="range" min="1" max="30" value="3"></label>
<output id="vo">3</output><br>
<button id="p">鳴らす</button>
<button id="u">上昇2音(3:2)</button>
<button id="w">下降2音(3:2)</button>
<script>
const $=id=>document.getElementById(id);
let ctx;
function tone(freq,start,dur,vol){
  const o=ctx.createOscillator(), g=ctx.createGain();
  o.type="sine"; o.frequency.value=freq;
  const t=ctx.currentTime+start;
  g.gain.setValueAtTime(0.0001,t);
  g.gain.exponentialRampToValueAtTime(vol,t+0.005);
  g.gain.exponentialRampToValueAtTime(0.0001,t+dur);
  o.connect(g).connect(ctx.destination);
  o.start(t); o.stop(t+dur+0.02);
}
function P(){ctx=ctx||new AudioContext();
  return {f:+$("f").value,d:$("d").value/1000,v:$("v").value/100};}
$("f").oninput=()=>$("o").textContent=$("f").value;
$("v").oninput=()=>$("vo").textContent=$("v").value;
$("p").onclick=()=>{const p=P();tone(p.f,0,p.d,p.v);};
$("u").onclick=()=>{const p=P();tone(p.f,0,p.d,p.v);tone(p.f*1.5,p.d*.8,p.d,p.v);};
$("w").onclick=()=>{const p=P();tone(p.f*1.5,0,p.d,p.v);tone(p.f,p.d*.8,p.d,p.v);};
</script>

音量スライダーは小さい値から始めてください。ブラウザの自動再生制限のため、音はボタンを押した操作の後にだけ鳴ります。音の頭と終わりに短い立ち上がり・減衰をつけているのは、急に始まる音や急に切れる音で出る「プチッ」というノイズを避けるためです。

実験の設計書:何を、どの単位で、何回記録するか

問い

「同じ大きさに聞こえるよう揃えたとき、自分(または協力者)は、どの高さと長さの操作音を心地よいと感じるか」を調べます。

準備するもの

  • 上記の試作ページ
  • 再生機器を2種類以上(例:イヤホンと、PCやスマートフォンのスピーカー)
  • 記録用の表(紙でも表計算でも構いません)
  • できれば協力者を数名。自分ひとりの結果は、自分の耳と機器だけの結果になります。

手順

  1. 音量を揃える。 長さを120msに固定し、周波数を400・800・1600・3200Hzの4点にします。基準を800Hzとして、ほかの周波数が「同じ大きさ」に聞こえる音量スライダーの値を、それぞれ記録します。ここで値が揃わなければ、耳と機器の感度が高さで違うことを自分の環境で確認できたことになります。
  2. 高さを比べる。 手順1で記録した音量で、4点の周波数を各3回、順番をランダムにして鳴らします。1回ごとに「心地よさ」を5段階で記録します。順番は、カードやくじで決めると偏りを避けられます。
  3. 長さを比べる。 好みが高かった周波数を1つ選び、長さを40・120・300msに変えて、同様に各3回評価します。
  4. 2音の向きを比べる。 同じ周波数から「上昇2音」と「下降2音」を各3回鳴らし、「成功っぽい」「失敗っぽい」という印象を言葉でも記録します。
  5. 機器と環境を変えて繰り返す。 別の機器、静かな場所と生活音のある場所で、同じ手順を行います。

記録のしかた

表の行を条件(周波数・長さ・向き)、列を回数・機器・環境・評価者にします。音量の値は手順1の結果をそのまま残します。評価は数字だけでなく、「耳に刺さる」「こもる」「軽い」のような短い言葉も添えると、後で原因を考えやすくなります。

結果の読み方と起こりやすい誤り

結果の読み方の目安は次のとおりです。

  • 手順1で音量の値が周波数ごとに大きく違うなら、同じ数値で全周波数を鳴らす設計は避けたほうがよいと判断できます。作品内では音ごとに音量を調整する必要があります。
  • 評価がある高さで高く、両側で下がるなら、その付近を操作音の中心にします。評価が機器によって入れ替わるなら、広い帯域で聞こえる高さに寄せます。
  • 長さを変えて評価が大きく動くなら、高さよりも長さのほうが印象を左右していることになります。短くて頻繁に鳴る音は、短いほど疲れにくいのかを、繰り返し鳴らして確かめます。
  • 協力者の間で評価が割れるなら、一つの音に決めず、音量や音のオン・オフを選べる設計も検討できます。

起こりやすい誤りもまとめます。

  • 音量の混入。 手順1を省くと、高さの好みではなく大きさの好みを測ることになります。
  • 順序効果。 最初に聞いた音は新鮮に、あとの音は慣れや疲れで評価が変わります。順番をランダムにしてください。
  • 機器の限界。 小型スピーカーでは低い音が再生されず、「その高さが悪い」のではなく「出ていない」場合があります。
  • 純音の単調さ。 試作のサイン波は最も単純な音色です。実際の作品で使う音色が違えば、感じ方も変わります。音色を変えた比較は、o.type を "triangle" などに変えて、別の実験として行ってください。
  • 少人数からの一般化。 数人の結果を「人間一般」とは言えません。自分の作品を遊ぶ人に近い人に聞くのが現実的です。

公式作品で「音の役割」を確かめる

作った音を作品に組み込むときは、音が情報の唯一の手段になっていないかも確認してください。

アソバースの公式作品「こだまの森」は、光る葉の順番を覚えて4つの音色で返す記憶ゲームですが、音なしでも遊べると案内されています。ここから、音は体験を豊かにする要素であり、進行に必須の条件にしない設計方針が読み取れます。音が聞こえない環境や、消音で遊ぶ場面でも、遊びが成り立つ作りです。

効果音を作るときは、次の点を作品を開いて確認してみてください。

  • 押した結果が、音以外(見た目の変化など)でも伝わるか。
  • 同じ音が連続して鳴っても耳障りにならないか。
  • 音色の違いを、どのタイミングの操作に割り当てているか(この割り当ては作品を開いて実際に確かめる部分です)。

次の行動

まず試作ページで、周波数ごとに「同じ大きさに聞こえる音量」を記録してみてください。その値の差が、自分の耳と機器の特性を知る入口になります。次に、イヤホンとスピーカーで同じ手順を行い、差を表に残します。

作った効果音をコードで生成する方式なら、音声ファイルを同梱せずに済むため、アソバースのアップロード容量(20MiB以内)にも余裕を持たせやすくなります。完成した作品は、音ありと音なしの両方で遊べるかを確認してから公開してください。

参考資料

  • ISO 226(等ラウドネス曲線に関する国際規格)
  • MDN Web Docs「Web Audio API」解説