Unity入門講座|キーボードで音を鳴らす方法を学ぼう

Unity
Unity講座
うさタブ
うさタブ

今回はUnityのキーボードで音を鳴らすについて勉強するッピ!

うさタブ
うさタブ

何かキーを押すとサウンド再生される仕組みをつくるッピ!

ユウキ
ユウキ

キー入力とサウンド再生?

アイカ
アイカ

まだ習ったことないわ!

うさタブ
うさタブ

キーボードの扱いとサウンド再生はUnityの基礎の基礎ッピ!
絶対覚えておくと良いッピ!

うさタブ
うさタブ

これからこのキーボードとサウンド再生を一緒に勉強して行くッピよ~

キーボードで音を鳴らす方法を学ぼう

必要なもの

うさタブ
うさタブ

まずは必要なものを用意するッピ!

  • Unity
  • Windows または Mac のパソコン

が必要ッピよ~!

うさタブ
うさタブ

まだ Unity をダウンロードしてない人は

↓ の記事を参考に必要なものをインストールするといいッピ!

Unityを起動する

うさタブ
うさタブ

まずはゲーム作成画面をつくってみるッピ!

Unity-Hubを立ち上げて、

2Dまたは3Dでプロジェクトをつくるッピよ~

ユウキ
ユウキ

できた!

うさタブ
うさタブ

いい感じッピ!

音声ファイルを用意しよう!

うさタブ
うさタブ

それじゃあ、さっそく音声をUnityで再生するっぴ!

うさタブ
うさタブ

・・・その前に、再生する音声が必要だっぴよ~

効果音ラボ様
うさタブ
うさタブ

今回は効果音ラボさまで、好きな音声をお借りするッピ!

ユウキ
ユウキ

オッケー!

音声をAssetsに登録しよう

うさタブ
うさタブ

準備できたッピか?
それなら音声をAssetsに登録するッピ!

うさタブ
うさタブ

使いたい音声を、ドラッグ&ドロップでアセットの部分に登録するッピ!

ユウキ
ユウキ

ドラッグ&ドロップってなんだ??

アイカ
アイカ

たしか、

ファイルをマウスで選択したまま、

ファイルを移動する方法をドラッグ&ドロップっていうんじゃなかったかしら?

ユウキ
ユウキ

そうだったそうだった!

別のウィンドウからファイルを引っ張ってもってくれば良いんだな!?

アイカ
アイカ

こんな感じかしら?

うさタブ
うさタブ

いい感じだっぴ!

2人ともよく出来てるッピ♪

オーディオソース(音源物体)をつくる

うさタブ
うさタブ

まずはオーディオソースのオブジェクトをつくるッピ!

うさタブ
うさタブ

やり方は

ヒエラルキー→右クリック→オーディオ→オーディオソース

で作成するッピ!

ユウキ
ユウキ

こんな感じかな!

アイカ
アイカ

すてきねっ!

C#スクリプトを作成する

うさタブ
うさタブ

次からプログラムを組んでいくッピよ~!

うさタブ
うさタブ

まずは画面下のAssetの部分で

右クリック→作成→C#スクリプト

を選択するッピ!

うさタブ
うさタブ

名前を

keyInput

に変更するッピよ~

アイカ
アイカ

できたわ!

プログラムを編集する

うさタブ
うさタブ

できたC#プログラムを

ダブルクリックして、スクリプトファイルを開くッピ!

うさタブ
うさタブ

もともと書かれている

1~2行目のプログラムを削除して、新しくプログラムを書いていくッピ~!

ユウキ
ユウキ

消しちゃっていいのか?

うさタブ
うさタブ

大丈夫だッピ~♪

このうさタブに任せるッピ!

using UnityEngine;

public class keyInput : MonoBehaviour
{

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }
}
アイカ
アイカ

こんな感じで良いのかしら?

うさタブ
うさタブ

バッチリッピよ~!
アイカちゃん才能あるッピね♪

うさタブ
うさタブ

ちなみにこのプログラムは

using使います UnityEngineユニティエンジンの機能を;

public呼び出し可能 class クラスです keyInput 名前はkeyInput : MonoBehaviourユニティの親クラスです
{

void引数なしプログラム  Start最初に実行します()
{
//ここに新しいプログラムを入力
}
 
void引数なしプログラム Update() 随時更新します
{
//ここに新しいプログラムを入力
}

}

という意味になるッピ!

新たにプログラムを書き込む

うさタブ
うさタブ

まずは、classのすぐ下に
新しくプログラムを書いていくッピ!

 public AudioClip sound1;
 AudioSource SE;

と書き込むッピよ~

うさタブ
うさタブ

これは

public共有プログラム AudioClip オーディオクリップです sound1 名前はsound1;
AudioSource鳴らす音源は SE SEです;

という意味になるッピ!

うさタブ
うさタブ

void Start の中に、新しくプログラムを書いていくッピ!

SE = GetComponent<AudioSource>();

と書き込むッピよ~

うさタブ
うさタブ

ちなみにこれは

SE変数SEは = GetComponent以下のコンポーネントを取得します<AudioSourceオーディオソースに組み込まれたもの>();

という意味になるッピ!

うさタブ
うさタブ

void Update の中に、新しくプログラムを書いていくッピ!

if (Input.GetKey (KeyCode.Return))
  {
    SE.PlayOneShot(sound1);
  }

と書き込むッピよ~

うさタブ
うさタブ

これは

ifもしも (Inputキーボードで.GetKey入力があったら (KeyCode条件は.Returnエンターキーです))
{
SE変数SEの.PlayOneShot音をならして(sound1sound1を);
}

という意味になるッピ!

ユウキ
ユウキ

なるほど、こういう意味だったのか!

using UnityEngine;

public class keyInput : MonoBehaviour
{
 public AudioClip sound1;
 AudioSource SE;

    // Start is called before the first frame update
    void Start()
    {
        SE = GetComponent<AudioSource>();
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey (KeyCode.Return))
        {
            SE.PlayOneShot(sound1);
        }
    }
}
うさタブ
うさタブ

プログラムができたら、

ファイル→保存(Ctrl+S)

でセーブするッピよ~

オーディオソースにプログラムを組み込む

うさタブ
うさタブ

保存したプログラムを、オーディオソースに組み込んでいくッピ!

うさタブ
うさタブ

[keyInput]C#スクリプトを

Audio Sourceにドラッグ&ドロップするッピ~

うさタブ
うさタブ

右のインスペクターに

keyInput(スクリプト)

があることを確認するッピ!

アイカ
アイカ

これかしら?

うさタブ
うさタブ

そうしたら、

音声ファイルをSound1

にドラッグ&ドロップするッピ!

ユウキ
ユウキ

できたぜ!

うさタブ
うさタブ

いい感じッピ!

動作確認

うさタブ
うさタブ

最後は動作確認ッピ~!
ゲームの上にある[▶]ボタンを押してゲームを開始するッピ!

うさタブ
うさタブ

キーボードの

エンターキー(Return↵)

を押して、音が聞こえるか確認するッピ!

ユウキ
ユウキ

できた~!

アイカ
アイカ

やったねユウキくんっ

Unityのキーボード入力について

うさタブ
うさタブ

Unityのキーボード入力には、

Input.GetKeyメッソドを使うッピ!

プログラムメッソド発動条件
Input.GetMouseButtonマウスのボタンが押されていたら発動
Input.GetKeyキーボードのキーが押されたら発動
ユウキ
ユウキ

インプットメッソド~?

って何だ?

うさタブ
うさタブ

インプットメッソドというのは、

マウスやキーボードなど、外部から入力があったときに

発動するプログラムをつくるときに使うものッピ!

うさタブ
うさタブ

インプットゲットキーというのは、

キーボードでキーを入力されたあとに発動するプログラムッピ!

アイカ
アイカ

そうなのね!

ユウキ
ユウキ

へ~
だけどさ、うさタブ

using UnityEngine;

public class keyInput : MonoBehaviour
{
 public AudioClip sound1;
 AudioSource SE;

    // Start is called before the first frame update
    void Start()
    {
        SE = GetComponent<AudioSource>();
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey (KeyCode.Return))
        {
            SE.PlayOneShot(sound1);
        }
    }
}
ユウキ
ユウキ

この、

Input.GetKey (KeyCode.Returnエンターキー)

のやつ
エンターキー以外にもできないのか?

ユウキ
ユウキ

エンターキーだけじゃなく他のキーも使いたいんだけどな・・・

うさタブ
うさタブ

もちろんできるッピね~!

うさタブ
うさタブ

今回使ったエンターキー以外にも、
よく使うキーを紹介するッピ!
これをキーコードというッピ! 覚えておくと良いッピよ~

キーコード対応するキー
Returnエンターキー
Backspaceバックスペースキー
Deleteデリートキー
Tabタブキー
Escapeエスケープキー
Spaceスペースキー
UpArrow↑
DownArrow↓
RightArrow→
LeftArrow←
キーコードと対応キー
数字キーコード対応するキー
Alpha00
Alpha11
Alpha22
Alpha33
Alpha44
Alpha55
Alpha66
Alpha77
Alpha88
Alpha99
キーコードと対応キー
ユウキ
ユウキ

すっげええ!
こんなにあるのか

うさタブ
うさタブ

まだまだあるッピよ~!
詳しくは、Unityのリファレンスをチェックすると良いッピ♪

ユウキ
ユウキ

勉強になったぜ!

アイカ
アイカ

今日もまたひとつ学んだわ!

学習のまとめ
  • 音声素材をAssetに登録
  • ヒエラルキー→右クリック→オーディオソースを作成
  • Assets→右クリック→C#スクリプト
  • プログラムを作成
  • C#スクリプトをオーディオソースに組み込む
  • 音声素材をインスペクターのコンポーネントに組み込む
  • テストプレイ

うさタブ
うさタブ

上手くできたッピか?

これからも色んなゲーム作りやプログラムの解説をしていくッピ!

次回も楽しみにしているッピよ~~!

うさタブ
うさタブ

UnityはC#を元に作られているッピ!
まだまだ Unity や C#について勉強したい人は↓の記事を参考にするッピ♪

スポンサーリンク

いい感じの素材がない!そんなときは?

ユウキ
ユウキ

うさタブ!

オレ、もっと本格的にゲームが作りたいんだ!

アイカ
アイカ

どこか素敵な素材を売っているところはないかしら? 公式の素材販売だと、クレカ支払いしかなくて・・・

ユウキ
ユウキ

小学生じゃクレカで支払えないぜ~

うさタブ
うさタブ

ゲームの素材を買いたいなら、

DLsiteやBoothとかどうッピか?

うさタブ
うさタブ

素敵なドット絵や音楽素材がいっぱい売ってるッピ!

うさタブ
うさタブ

しかもUnityアセットストアと違って、

クレカ支払いじゃなく、コンビニ支払いができるのもポイントッピ!

ユウキ
ユウキ

すげーカッコいい素材がいっぱいある!

アイカ
アイカ

わたしもさっそくチェックしてみようかな♪

スポンサーリンク
Unityプログラミング
シェアする
タイトルとURLをコピーしました