(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


Text Animatorで文字送り中に文字に合わせてSE(効果音)を鳴らす方法【Unity】【アセット】【Text Animator】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2022.3.32f1


はじめに

以前テキストにアニメーションを追加したり、


文字送り(文字を最初から順番に表示する)を実装出来たりする、


Text Animatorというアセットを紹介しました。

Text Animator for Unity - Unity Asset Store


今回はこのText Animatorで

「表示される文字に合わせてSE(効果音)を鳴らす」

というゲームでよくあるやつを実装する方法の紹介です!






Text Animatorで文字送り中に文字に合わせてSE(効果音)を鳴らす方法

さっそくですが、TypewriterByCharacter(またはTypewriterByWord)の

onCharacterVisibleというイベントで、

文字送り中に新たな文字が表示される度に処理が行えます。

//文字送り中に新たな文字が表示されたらログで表示
_typewriter.onCharacterVisible.AddListener((char c) => {
  Debug.Log($"追加文字 : {c}");
});


これを使ってSEを鳴らせば良いわけですが、記号などのSEを鳴らしたくない文字を設定しておけば、

//SEを鳴らさない文字一覧
private readonly List<char> IGNORE_SE_CHARS = new List<char> {
  ' ', ' ', '\n', '\r', '\t', '\v', '\f', 'や', '。', '、', '!', '?', '「', '」', '(', ')', '[', ']', '『', '』', ':', ';', '―', '…', 'ー', '〜', 
  '・', '+', '=', '<', '>', '*', '&', '%', '#', '$', '@', '^', '¥', '|', '{', '}', '‘', '’', '“', '”', '\', '/', '_', '\', '`', '{', '}', '⦅', '⦆'
};


特定の文字の時はSEを鳴らさないという事も簡単に行えます。

//新たな文字の表示を検知
_typewriter.onCharacterVisible.AddListener((char c) => {
  //SEを鳴らす文字かチェック
  if (!IGNORE_SE_CHARS.Contains(c)) {
    /*SEを鳴らす処理*/
  }
});


なお、句読点などの任意の文字で溜めを作る事も可能です。