21
ROCKSMITH を をををを @hamayanhamayan をを Unity ををを 4/26 Unity をををを Rocksmith ををををを

RockSmithを再現する

Embed Size (px)

Citation preview

Page 1: RockSmithを再現する

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

Page 2: RockSmithを再現する

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

Page 3: RockSmithを再現する

スライドの目標は…

ROCKSMITH を作ること!

Page 4: RockSmithを再現する

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

Page 5: RockSmithを再現する

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

Page 6: RockSmithを再現する

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

Page 7: RockSmithを再現する

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

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

Page 8: RockSmithを再現する

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

Page 9: RockSmithを再現する

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

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

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

Page 10: RockSmithを再現する

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

Page 11: RockSmithを再現する

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

Page 12: RockSmithを再現する

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

Page 13: RockSmithを再現する

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

Page 14: RockSmithを再現する

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

Page 15: RockSmithを再現する

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

Page 16: RockSmithを再現する

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

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

Page 17: RockSmithを再現する

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

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

Page 18: RockSmithを再現する

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

Page 19: RockSmithを再現する

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

Page 20: RockSmithを再現する

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

Page 21: RockSmithを再現する

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