プレイヤーをゲームに没頭させる音楽について!

こんばんは

最近、「ゲームサウンド制作ガイド」という本を買って読んでいますので、その本で得た知識をここに書いていきたいと思います。
(前のマリオの無限音階の話もこの本で見た。)
satotucircle.hatenablog.com




今日は音楽がユーザーをゲームに没頭させるという話をしていきたいと思います。



そもそもゲームに音楽って必要なの?という疑問を抱くかもしれません。


僕の考えになりますが、
"ユーザーをゲームに没頭させたい"なら音楽は必須で、
片手間に遊ばせたいなら、音楽はなくてもいいんじゃないかなと思います。



さて、ではどのような音楽がユーザーをゲームに没頭させるかですが、それはゲームのジャンルによって様々ですので、既存のゲームがどのような音楽でユーザーを没頭させているか、例を紹介したいと思います。

シムシティ3000」


一定の音型を繰り返しつつも、様々な楽器の音を重ねつつ変化させていくことで、前進と静止の両方が同時に表現されています。
DSかなんかのシムシティはちょっとだけ遊んだことがありますが、自分の街がどんどん成長していくのを感じさせる、シムシティらしいBGMだと思います。

FEZ


FEZ」というパズルゲーのBGMですが、単純な電子音をウニョウニョと揺らぎ響かせることで、催眠術的な効果を生み出し、プレイヤーの集中力を爆上げしています。

かの神ゲーゼルダの伝説 ブレスオブ ザ ワイルド」の祠も同じ感じですね。

ウニョウニョしてます。


「Dune 2000」

「Dune 2000」は、リアルタイムストラテジーというジャンルの戦争ゲームです。
軍隊のようなリズムにのせて同じコード進行を執拗なまでに繰り返し、ユーザーに切迫感を与え、また、活発的かつ冷静な音楽がこのゲームにはぴったりフィットしているため、ユーザーをこのゲームの世界観に引き込んでいます。



音楽だけじゃよくわからんって人は、つべでググればプレイ動画が出てくるので探してみてくださいね。


作曲する人もそうでない人も、ゲームを作るのであれば、音楽が人の心理にどう働くのか、ある程度は知っておいたほうがよさそうです。

【ナシアサルト】完成間近なので、残りやらないといけないこと

こんばんは

正月明けですが、みなさんお元気でしょうか。
僕は仕事が忙しすぎて、お元気ではありません。


ゲームする元気はあるんだけどね!!




現在開発中のゲーム「ナシアサルト」があともう少しで完成しそうです。
f:id:satotucircle:20200112204843p:plain

バグとかめっちゃありそうですが、とにかく早くリリースしたいです。せっかちなので。

残りやることは

  • 難易度の調整
  • 実機でのデバッグ
  • アプリをリリースする


くらいですかね。。。

アプリのリリースについてはグーグル先生に頼らないと。ぜんぜんやり方がわからないですね。審査とかあるってよく聞きますが、上手くできるか心配です。



上手くリリースできたらみなさん遊んでみてくださいね!

爆発エフェクト作たよその2

こんばんは


お休みが終わってしまいましたね。
連休明けにいきなり五連勤はきつそうです。


ゲームに使う素材を作ったのでよかったらみていってください。

f:id:satotucircle:20200105212102g:plain

f:id:satotucircle:20200105211233p:plainf:id:satotucircle:20200105211238p:plainf:id:satotucircle:20200105211243p:plainf:id:satotucircle:20200105211251p:plainf:id:satotucircle:20200105211252p:plainf:id:satotucircle:20200105211301p:plain
f:id:satotucircle:20200105211307p:plain
f:id:satotucircle:20200105211311p:plain
f:id:satotucircle:20200105211318p:plain
f:id:satotucircle:20200105211320p:plain
※そのまま再配布以外okです


青い爆発エフェクトです。


ゲーム画面に落としこむといい感じに見える
f:id:satotucircle:20200105213316g:plain

ゲーム用の爆発エフェクトの素材配布

こんばんは

ゲーム用の爆発エフェクトをがんばって作ったので配布したいと思います。

f:id:satotucircle:20191227215807p:plain
f:id:satotucircle:20191227215833p:plain
f:id:satotucircle:20191227215838p:plain
f:id:satotucircle:20191227215924p:plain
f:id:satotucircle:20191227215920p:plain
f:id:satotucircle:20191227215909p:plain
f:id:satotucircle:20191227215904p:plain
f:id:satotucircle:20191227215849p:plain
f:id:satotucircle:20191227215858p:plain
(そのまま再配布以外なんでもokです。)



ちなみにこんな感じになります
左下の大砲が壊れた時の演出に使用。
f:id:satotucircle:20191227215529g:plain

小さくなるといい感じに見えました。


一枚にまとめたほうがいいのかわかりませんが、
自分はバラバラの方がいいのでとりあえずバラバラにしました。

マリオ64の「無限階段」が面白いから見て

f:id:satotucircle:20191222195059j:plain
こんばんは

ゲームには音楽が欠かせませんが、みなさんが思っている以上にゲームにおける音楽の役割は大きいと思います。
僕もDTMなどを独学で身につけようとあれこれやってますが、まだまだ初心者レベルなのでたくさん勉強する必要があります。

例えば、「スーパーマリオ64」に出てくる「無限階段」

これには「無限音階」という心理的な錯覚を利用した作曲におけるテクニックです。

永遠に登り続けてるように聴こえますが、最初と比べてあまり音の高さは変わっていません。

オクターブ離れた二つの音階を同時に鳴らし、音階の始まりにフェードイン、音階の途切れにフェードアウトすることで無限に登り続けるような錯覚を起こしてます。

フェードしてるのがわかりますでしょうか?

これを利用すれば、例えば、何かが上昇しているときの演出に使えたり、逆に何かが落下しているときにも使えますね!プレイヤーの操作によって長さはいくらでも変わるので、ゲームにはかなり相性の良いテクニックだと思います。

いつか自分のゲームにもこういった要素を入れてみたいなあ

ハリネズミを敵にくっつける処理(ナシアサルト)

こんばんは

ナシアサルト(仮)を作ってますが今はだいたいこんな感じです。

youtu.be

先週からの変更点としては、

  1. 敵の種類を増やした。
  2. 効果音をつけた。
  3. 敵を捕まえたときのアニメーションを追加した。
  4. スコア加算

などを加えました。


前回からすでに実装されていましたが、
打ち出されたハリネズミが敵にくっつく処理がUnityならすげく簡単にできて感動したので書いておきたいと思います。

まず、ハリネズミと敵キャラにコライダーをアタッチします。
f:id:satotucircle:20191215204734p:plain

ハリネズミには"Bullet"という名のタグをつけます。
f:id:satotucircle:20191215204742p:plain

次に敵キャラのスクリプトに下記処理を入れます。

    private void OnTriggerEnter2D(Collider2D collision)
    {
        // ハリネズミ弾と当たった場合
        if (collision.gameObject.tag == "Bullet")
        {
            // pearとくっつけてハリネズミの重力を消す
            collision.gameObject.transform.SetParent(this.transform, true);
            // ハリネズミの物理演算処理を止める
            collision.gameObject.GetComponent<Rigidbody2D>().isKinematic = true;

            // 表示順をいじってる
            collision.gameObject.GetComponent<Canvas>().sortingLayerID = 2;
            canvas.sortingLayerID = 2;
        }
     }

これでいけるはず。
表示順をいじってるのは、くっついたハリネズミが他の敵キャラと重なったとき、ハリネズミだけがその敵キャラより前面に表示されて変になっちゃうからです。


SetParent()が便利で使いまくってますが、親子関係を持たせるとスケールとか表示位置などで融通きかなくてムキーってなります。

明日からは敵の攻撃とかゲームオーバーとか実装していきたいです。

BGMとか入れたり、アニメーション追加したり(ナシアサルト)

こんばんは

ちまちま作ってってますが、ちっとはゲームっぽくなってきました。


先週から見た目が変わった↓↓
f:id:satotucircle:20191208213827p:plain
f:id:satotucircle:20191208214203g:plain

後ろでなっててうるさいBGMですが、
BGMにイントロが入ってて、イントロ以外をループさせる方法がわからずに力技でやってます。

イントロ部分とループ部分にBGM素材を分けて、イントロが終わるであろう秒数を計算してループ部分BGMの開始を遅らせるようにしてるんですが、
微妙にずれて嫌なんですよね。
調べてもいい方法が出てこない。。。

今は下の命令をゲーム開始時に実行してる

// イントロの再生
SoundManager.Instance.PlayBgm("BGM_intro");

//イントロが終わる頃にメインBGMを流す
Observable.Timer(TimeSpan.FromSeconds(3.692)).Subscribe(_ =>
{
      SoundManager.Instance.PlayBgm("BGM_loop");
}).AddTo(this);

イントロ長さはインスペクターの下にあるやつ見て入れてるんだけど、
これって時間のことであってるんかな
f:id:satotucircle:20191208213115p:plain

サウンドマネージャーはこちらの肩のを丸パクリしてるんですが、
https://qiita.com/waken/items/a0288c9b160a20022635

イントロ以外だけループするとかはできるようになってないんですよね。

WAVファイルにループポイントを入れることもできるそうですが、ツールが必要みたいで、これ以上ツール増やしたくないから
とりあえず今ので我慢する。

明日からは梨を捕まえたときの動きと、効果音とか入れていきたい。