Slide 1

Slide 1 text

で 音ゲー をつくった話 なんか 衝動的 に 初心者 が

Slide 2

Slide 2 text

しゅう 電子制御工学科 3年 @shulmj_ Q. 好きな食べ物 A. コカ・コーラ

Slide 3

Slide 3 text

こんなことをしてる (数万年ぶりにTwitterでちょっとバズった) https://github.com/shumm7 AviUtl自作スクリプト「媒介変数図形」 映像をつくります

Slide 4

Slide 4 text

https://unity.com/ ・無料版あり 年10万ドルまでの商用利用可 ・ガチでゲーム作れる 商業ゲーからインディーズまで ・めっちゃ簡単 C#書けたら なんとかなる 俺でもできるわw

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Unityを触るのは はじめて もちろんC#もHello Worldくらいしかできない

Slide 7

Slide 7 text

https://unity3d.com/jp/learn/tutorials 公式チュートリアル 「玉転がし」 改造してゲーム仕様を変更 ボールをキー入力で操作して 黄色いポイントを獲得するゲーム

Slide 8

Slide 8 text

できるようになったこと 音ゲー作るか ・基本的なUnityの操作 ・C#ぜんぶ理解した ・リジッドボディとかマテリアルとか ・ポストプロセッシングによる画面処理 ・JSONとかCSVの処理 ・Prefabの使い方 ・ベクトルは未だにわからん

Slide 9

Slide 9 text

ゲームの仕様・目標 ゲーセンの音ゲーっぽく レーンは5列 ノーツの種類:通常, 高得点, スライダー 楽曲・譜面は外部ファイルから取得 入力はとりあえずキーボード 1レーンを3列に分割 計15キー この15キーでゲーム全体を操作できる なるべく低レイテンシ(遅延)

Slide 10

Slide 10 text

開発環境 ゲームエンジン Unity 2019.2.0f1 コーディング Visual Studio Community 2019 UIデザイン AviUtl 1.00

Slide 11

Slide 11 text

ハ イ ト ー ン

Slide 12

Slide 12 text

負荷対策 ノーツのオブジェクトを都度生成 →ノーツと音楽のズレにつながる Instantiate (Prefabから複製) Updateメソッド(ループ) 座標・パラメータ設定 ↓ 時 間 が か か る 時間になったら SetActive(ノーツを有効化) Updateメソッド(ループ) 座標・パラメータ設定 あらかじめノーツを生成 (Instantiate)

Slide 13

Slide 13 text

負荷対策 GetComponent や Destroy メソッドは重い →Updateメソッド や for while内で使わない パフォーマンス>低遅延 →DSPバッファサイズをBest Latencyに Unity Editorには CPUプロファイラが搭載されているので、 逐一確認しながら 負荷の原因となる処理を探っていくのも一つの方法

Slide 14

Slide 14 text

譜面 https://github.com/setchi/NoteEditor NoteEditor 譜面生成めんどい 新たに規格を設定するのもめんどい ・音楽を読み込むとエディタ上から譜面を作成可能 ・通常ノーツとスライダーに対応 ・譜面はJSONで出力 list.json (曲とカテゴリを紐付け) data.json (曲の情報) 0.json (各難易度の譜面情報)

Slide 15

Slide 15 text

UIデザイン 源真ゴシック 風が吹けば桶屋が儲かる 1234567890 WhiteBase Early bird gets the worm 1234567890 KANO Early bird gets the worm (そんなに拘ったわけではない)

Slide 16

Slide 16 text

UIデザイン バ○ドリの劣化コピー チュウ○ズムの劣化コピー

Slide 17

Slide 17 text

DOTween Pro UIデザイン 1780円 (15USD) Unity Asset Storeで最も 有名なTweenエンジン。 様々なパラメータを滑らかに 変化させる(イージング) 無料版もある! ・オブジェクトの移動、拡大縮小 ・音量、透明度などのフェード ・遅延処理

Slide 18

Slide 18 text

←コルーチンを呼び出す コルーチン

Slide 19

Slide 19 text

←DelayedCallメソッドを 呼ぶ ←DOTweenをusing めっちゃ楽 コードがわかりやすい Sequenceという機能を使えば複数の変化動作(Tween)を 連結して、一度に呼び出すこともできる

Slide 20

Slide 20 text

デモプレイ画面

Slide 21

Slide 21 text

これからやってみたいこと ・まずは完成させる ・マルチタッチ機能つきペンタブに対応 ・PaSoRiを接続してFeliCaでログインできるように (疑似Aime的なものをつくりたい) ・スマホとかに移植してみたい ・UIの統一感をもうちょっと出したい ・どっかで実演できたら おもしろそう

Slide 22

Slide 22 text

@shulmj_ shumm7 ↑ リリースできそうだったら ここでやります (大汚スパゲッティコードなので、あんまり中身は見るな)

Slide 23

Slide 23 text

ご清聴 ありがとうございました