RockSmithを再現する

Preview:

Citation preview

ROCKSMITH を再現する@hamayanhamayan金沢 Unity 勉強会 4/26Unity を使って Rocksmith を再現する

自己紹介 金沢大学 プログラミング、 B’z 、エレキギター・ベースあたりが好き 最近、羽生結弦くんに似ていると言われたので、羽生くんの画像を自画像にしている Twitter は @hamayanhamayan

スライドの目標は…

ROCKSMITH を作ること!

ROCKSMITH とは? Ubisoft 製の本物のギターとベースを使った音ゲー 色んなプラットフォームで出ている( PC,PS3,etc… ) 今までは TAB 譜を見て演奏していたのが…                     TAB 譜はギターのどこを押さえて鳴らすかわかりやすい!           しかし、鳴らすタイミングがわかりにくい!

ROCKSMITH とは? それをわかりやすくしてくれる

作りたいもの Rocksmith のクローン Rocksmith の表示法に慣れすぎて、 TAB 譜じゃ弾けない! でも、クローン作ってる間に上達しちゃって TAB 譜でも、今は弾けるのだけど…とにかく!ネット上にある TAB 譜を読み込んでRocksmith の表示法を真似て再生するソフトを作る!

TAB 譜の話 ネット上には TAB 譜がたくさんある TAB 譜用のフォーマットが存在し、 gp4 ファイル、 gpx ファイル、 ptb ファイルなど色々ある しかし、どのファイルもある会社(または個人?)が作ったもので、かつ、仕様が詳しく公開されていない! フォーマット解析をして、オープンソース化してくれている素晴らしいライブラリ

C#(.Net) にも対応しているという、まさに Unity にピッタリ!

UNITY で外部ライブラリを使用する場合 使って驚いたのが、外部ライブラリ (.dll) を Asset フォルダに入れるだけで、参照を自動でしてくれる!ということ しかし、バージョンには気をつける必要がある AlphaTab でビルド済みの dll → .Net Framework 4.0 用 Unity の Mono のバージョン → .Net Framework 3.5 相当 このようになっているので、ビルド済みの dll を使わずに、ソースコードを .Net Framework 3.5 用にビルドし直す必要がある 幸い、少しの変更でビルドが通ったのでよかった

UNITY 用にライブラリを作る場合 Unity での Mono のバージョンに合わせてライブラリを作るには、

Visual Studio ユーザーお馴染みの「 Visual Studio Tools For Unity 」が便利

Unity では使えないライブラリもあるので、 VS Tools For Unityを使えばそのへんも教えてくれる 具体的には、この拡張機能を導入すれば…

UNITY 用にライブラリを作る場合 プロジェクトのプロパティの「対象のフレームワーク」に Unity用のフレームワークが追加されるので、これを使えば OK

UNITY で TAB 譜を読み込む! 実際に作成を始めてみるとかなりサクサク作れました

UNITY で TAB 譜を読み込む! 実際に作成を始めてみるとかなりサクサク作れました

UNITY で TAB 譜を読み込む! 実際に作成を始めてみるとかなりサクサク作れました

それなりに出来たので試してみる 試す曲は「 B’z の ultra soul のイントロリフ」

それなりに出来たので試してみる RockSmith としての最低限の見た目を確保したが、見づらくて、仕方がない あと、「カン!カン!」というのも無機質な感じがある → 音が出るようにしたい! → Beep 音を使えばいいのでは?

UNITY で BEEP 音 .Net では Beep 音を鳴らすには、 Console.Beep を使えば OK Unity では (Mono では? )Console.Beep が使えない! なので、 Beep 音を鳴らすスクリプトを作ることに → https://github.com/hamayanhamayan/BeepForUnity

Beep 音は正弦波(矩形波もある)で鳴らすことができ、正弦波の周波数を変えることで音程を変化させることができる

ギターの周波数 周波数は決まっているので、それを使う

       http://site2913.com/music/guitar-bass-frequency/

改良版 前のバージョンがみにくいのは、 3D のせいでどのフレッド上を動いているかが分からなかったせい。なので、棒を追加した

改良版 RockSmith に近づいた あと、音のピッチが全然合っていない。ギターの周波数の表が間違っているのか、 Beep 音を鳴らすライブラリがダメなのか…

ひと通りやってみて Rocksmith が凄いのは、表示部分じゃなかった凄いのは、「ギター入力からの正確なピッチ判定」と「ギターアンプシミュレータとしての力」だった。 UbiSoft は凄いなぁ ギターの Tab 譜のフォーマットの発展は望めないなので、 3DCG でグラフィカルに表現するというのは、 2D のフォーマットではできない表現ができるのでは?

懇親会 「ひかりや」で行います! もし、参加したい場合は、わたくし、濱屋までお願いします なるべく早く教えていただけると、飲み屋から怒られずに済むので、 5時までには教えていただければ大丈夫かと思います。

Recommended