いまや飛ぶ鳥を落とす勢いの超人気YouTuber『水溜りボンド』さんのチャンネル登録数が遂に50万人を突破しました

いつもキリの良い数字を突破した時には、勝手にお祝いをして記念品を差し上げています

前回は30万人突破の時で、サブチャンネル用のBGM「Cat life -水溜Remix-」を勢いで作って水溜りボンドさんにプレゼントしました

今回は50万人突破ということで、いつもBGMを使ってくださっている水溜りボンドさんと、定番BGM「Cat life」のファンになってくれた方々へのプレゼントとして、この曲の楽譜(ピアノアレンジ譜)を無料配布することにしました~


http://fast-uploader.com/file/7015984691790/
(公開パスワード:mizubon)

パスワードかかってますけど、公開パスワードなのでどなた様でもご利用いただけます。

また、とりあえずの配布期限は5月中旬頃までとなります。
ダウンロードの様子次第では延長するかもしれません。

一人で弾くには少々難易度の高い楽譜となっていますが、上段と下段に分けて連弾しても楽しめると思います。

弾いてみた等の動画にチャレンジしてくださる方は大歓迎です~






AD
※本記事にはサンプルコードはありません

前回の(準備編)に続き、今回は実装編1となります。






今回から実装編になりますが、記事の最初に注意書きしている通り、当ブログではサンプルコードなどは基本的に書きません。
コーディングに関しては僕より優秀なエンジニアさんのブログなどで正しいやり方を学んだ方が絶対に良いです。

それでは本題に入ります。

1、どのシーンから作り始めるか

今回はゲームが単純なので、実際に遊べるシーンから作り始めます。

ボールの動きはおそらく難しくないので、先にユニティちゃんの動きをコントロールするところから始めました。

3Dモデルとボイス素材はそのまま使えますが、動きだけはバスケットっぽい動きが同梱されていなかったので、それっぽい動きのアセットを探しました。

そこでたどり着いたのが「Huge FBX Mocap Library part 1」です。


サムネイルで既にバスケットのシュートしてる動きが見えてるし、無料だし、まさに願ったり叶ったりの最高のアセットです

後々対処したことですが、このアセットはとても豊富にモーションデータが入っているので容量がとんでもなく大きいので、使わないモーションはインポート時に外しておくか、あとから削除するかしておいたほうが良いかと思います

2、ユニティちゃんにモーションをつける

早速インポートしたモーションをユニティちゃんにセットします。

厳密には、ユニティちゃんオリジナルのモーションと組み合わせました。

必要そうなモーションをあらかじめ整理しておくと、モーションロジックを組み立てやすいと思います。

今回は下記のパターンを作ることにしました。

・何もしない(アイドル状態)
・構え
・シュートする

この状態にロジックを組んで、モーション遷移するようにしました。

ロジックもなるべくシンプルにします。

何も操作しなければ「アイドル状態」

タップしている間は「構え」

タップを離すと「シュート」

シュートモーションが終わったらアイドル状態に戻る

これで問題はなさそうです。

操作(タップ)でどう切り替わるかをこの時点である程度決めておくと、スクリプトを組む際に整理しやすいですね。

3、モーションに関するスクリプトを組む

モーション遷移を決めたらスクリプトを組みます。

「タップ」という操作はこのゲームの基本部分ですし、きっと他のコーディングでも参照したくなることが多そうなので、ゲーム全体を管理できそうな「GameController」というスクリプトファイルを作ってコーディングしました。

あとはHierarchyの中にも「GameController」という空オブジェクトを作って、GameControllerスクリプトをアタッチしてあげれば、どこからでも参照しやすいスクリプトとして有意義に使えます。

ユニティちゃん用のAnimatorを組んで、そこにスクリプトをアタッチしてTransitionなどを正しく設定するだけでユニティちゃんは思ったように動いてくれました。

Unityは簡単ですね~

4、背景を組んで立ち位置を決める

ネット上でイイ感じのバスケットコートの3Dモデルデータを見つけて、作者さんの許可もすんなりいただけたので、早い段階でシーンの中に配置しました。

今回はカメラがグリグリ動いたりはしない予定なので、最初からある程度の立ち位置とカメラアングルを固定させてしまっても全く問題ないです。

というより、画面全体の構図を決めないとボールの軌道が決められなかったです。

あと、コート外の風景もイイ感じのアセットを使って街の中っぽい感じにしたのですが、この時点では後のことを考えずにドカッとモデルを置いたら、まぁ重いのなんの。。。

とりあえずUnity上では普通に再生できていますが、後で実機確認をした際にこの背景モデルがいろんな問題を抱えていることに気がつき、後々対処することになりました。

まぁその話はあとで出てきます。


次回は「実装編2」です
AD
※本記事にはサンプルコードはありません

前回の(企画編)に続き、今回は準備編となります。





作るゲームの方向性が決まったので、早速準備をします。

1、Unityの最新状態をチェックする

まずはゲーム作りの母艦となるUnityが最新版かどうかをチェックします。

最近のUnityはミドルアップデートでもおいしい機能を追加してくれることが多いので、できれば新しくアプリを作り始める際には最新の状態で始めた方が良いかと思います。

2、素材を集める

スクリプトを自分で書くのは当たり前ですが、ゲームの素材は一人の力ではどうにもならないので素材集めをしなければなりません。

僕は土台がサウンドクリエイターなので、音素材は基本的に自前でどうにかなりますが、グラフィック関係の素材はかき集める必要があります。

そんなときに便利なのがUnityの公式素材配布サイトUnityアセットストアです。

アセットストアには、Unityが公式に用意している素材はもちろん、世界中のクリエイターがUnityですぐ使える様々な素材を無料、または有料で配布してくれています。

もちろん、ここで入手した素材はUnityのみで使うことが原則ですが、利用範囲については素材配布者のポリシーによってUnity以外でも使える場合があります。

僕がアセットストアで配布しているGameMusicPackシリーズも、利用者からの申請があればUnity以外での使用をOKとしています。

今回はなるべく無料で済ませたかったので、最終的に下記の素材を揃えました。

【アセットストアで入手した素材】
・バスケットコート以外の背景3D素材
・3Dキャラクター用のモーションデータ
・フォントデータ

【アセットストア以外の場所から入手した素材】
・ユニティちゃんモデルデータとそれに関するもの一式(ユニティちゃん公式サイト)
・バスケットコートのモデルデータ一式(モデルデータを配布してる別サイト)
・その他スプライトやテクスチャ素材(無料素材配布サイト)

もちろん、試行錯誤する過程で他にもいろんな素材を使ってみたりもしました。

3、ゲームループの全体図をザックリ考える

企画編で決めたフリースローゲームのゲームループを考えます。

最初からあまりガチガチに決めると後々の調整で融通が利かなくなる可能性があるので、ザックリとした全体図を考えます。



最近のゲーム会社にありがちなんですけど、いわゆるゲームの遷移図を最初から作り込むことは、僕はあまり良いことではないと思っています。

今回のような小規模ゲームならまだしも、それなりに大きくて複雑なゲームになってくると遷移図を書くのは相当な時間と労力がいります。

しかも、大抵はプログラムやサーバーの知識がないプランナーが書いています。

当然、その遷移図は不備だらけなのは確実です。

なので進め方としては、最初はとりあえず全体のザックリとした遷移図をコンパクトに作り、次にプログラマー等の組み立てに関わりそうな人を交えて細かいフェーズ毎に必要な情報を足して、大きな遷移図を完成させることが大事なんじゃないかと思います。

そうすることで、開発途中に軌道修正があったとしても、プログラマーも柔軟に対応ができるようになります。

一番最悪なのは、開発者の知らないところで企画や遷移が勝手に変わり、既成事実みたいな感じでメインプログラマーに要望が突きつけられることです。

そんなの聞いてねーよ!

っていう状況はホントに作らないほうがいいですし、そんな状況を作ってる原因が自分にあることをわかっていないプロデューサーディレクターはマジで反省したほうが良いです。
(おっと、つい日常の怒りが......)


次回は「実装編」です
(何回かに分けるかも)

AD
※本記事にはサンプルコードはありません

おかげさまで、ゲームアプリ「ゆにばす!」のダウンロード数は緩やかに、それでいて好調に伸びている模様です






これから何回かに分けて、プログラム初心者なりにどうやってアプリを作っていったかを紹介したいと思います。

具体的なサンプルコードはもっと優秀なエンジニアさんのブログなどを見ていただいた方が間違いなく良いので、このシリーズではサンプルコードは記載しません。

1、何をつくるか?

企画の一番最初は必ずここから始まりますよね。
僕は今回アプリを作るにあたって、以下の要件を作りました。

・無理に高度な開発はしない
・説明がほぼ不要なくらい簡単な操作性にする
・可能な限りゲームループを短くする

それでは1つずつ詳しく見ていきます。

2、無理に高度な開発はしない

今回アプリを開発するにあたって、僕は独学でほぼ全ての知識を入門書から学びました。
なので、入門書に書いてあること以上のことは基本的にできないものとして、ゲームの組み立て方を考える必要があります。

とは言え、なんだかんだで開発途中であーしたいこーしたいというのは必ず出てくるので、結果的に優秀なエンジニアさんのブログなどを度々参考にしました。

3、説明がほぼ不要なくらい簡単な操作性にする

プログラム初心者だからこそ、できることはあまり多くはありません。
なので必然的にゲームの操作性も単純なものしか組み立てることはできません。

この時点で僕が実装できる操作系は

・タップ
・フリック
・スワイプ
・加速度センサー

のみですが、できればタップだけで簡潔させたいと考えました。

あと、僕自身がチュートリアルを読むことが嫌いなので、チュートリアルは絶対に設けないことにしました。

4、可能な限りゲームループを短くする

暇潰しアプリだけど、それでいてハマるとなかなかやめられない。
そんな感じのゲームを作ろうと思いました。

いくつもステージを作るのは骨が折れるので「FlappyBird」のような即死ゲーで、でも何度も繰り返してスコアを伸ばしたくなるゲームを目指すことにしました。

5、何を参考にするか

今回はできれば企画に時間をかけたくないので、何かのゲームを参考にしてほぼ同じシステムにしようと考えていました。

上記の要件を満たして、且つ参考にしやすそうなゲームということで、今回は名作「FINAL FANTASY 7」の中にあったゴールドソーサーで遊べる、フリースローのミニゲームを再現することにしました。

個人的にもすごくハマったミニゲームで思い入れもあるので、ヤル気の維持にも繋がります。


次回は「準備編」です

最近すっかり音楽を作っていなかったのですが、その理由をやっと公表できるようになりました。

今まで全くプログラミングが出来なかったのですが、Unityを介してプログラミングを習得する機会がありまして、ゲーム作りにベクトルを向かせていました。

そしてようやく、アプリをリリースすることができました。


検索 → 各アプリストアにて「ゆにばす」で検索



ゲームの内容はとてもシンプルなフリースローミニゲームで、難しい操作は一切不要ですが、難易度はものすごく高いです。

画面の好きなところをタップ(長押し)して離すだけですが、このタップしている長さによってシュートの成否が決まります。

長すぎても短すぎてもダメという、ものすごくシビアな設計にしたので、ゲームの腕よりもプレイヤーの時間感覚が決め手となります。

どのくらいのタップ時間が成功かは一切明かさないことにしていますが、何度かやってみるとシュートが決まるタイミングが自ずとわかってくるので、是非チャレンジして高得点を目指してください。

ちなみに、何人かの知り合いにテストプレイしてもらいましたが、ゲームの腕前や経験年数に関わらず、平均得点はだいたい6点前後でした。

16点以上獲得するとゴールドメダルの称号が与えられますので、頑張ってください。