SlideShare a Scribd company logo
1 of 35
Download to read offline
アイデア供養会 名古屋の陣
(2018.9.3)
スマホ音楽ゲームの動画から
譜面をデータ化したかった
H.Hiro
https://hhiro.net/
https://twitter.com/h_hiro_
2018-09-03 アイデア供養会 名古屋の陣 1
H.Hiro
•名古屋4年目
•研究の仕事してます(情報系)
•趣味でもソフト作ったり
•MA最近参加してないなあ…
(最後に参加したの2014年だった)
2018-09-03 アイデア供養会 名古屋の陣 2
スマホの音楽ゲーム
いまいろいろ出てますよね
2018-09-03 アイデア供養会 名古屋の陣 3
譜面(指などで反応すべき
アイコンの並び)
典型例:
2018-09-03 アイデア供養会 名古屋の陣 4
アイコンは
こちら向きに
流れる
アイコンが所定の位置
(この場合はライン上)に
来たときにタップする
一曲分の譜面が画像に
まとまっていると、
音ゲーマー的には便利
•難しい箇所の対策に
•譜面についての知識を他者と共有する
際に
2018-09-03 アイデア供養会 名古屋の陣 5
でも、そこから
もう一歩先
2018-09-03 アイデア供養会 名古屋の陣 6
データ化したい
2018-09-03 アイデア供養会 名古屋の陣 7
譜面のデータ化
2018-09-03 アイデア供養会 名古屋の陣 8
時刻 アイコン位置
0’02’’00 1
0’02’’23 3
0’02’’69 2
0’02’’92 4
0’03’’38 3
0’03’’61 5
⋮ ⋮
やりたいこと
●統計を取る
●難易度の評価
2018-09-03 アイデア供養会 名古屋の陣 9
どの音ゲーにも
あること
なのですが、
2018-09-03 アイデア供養会 名古屋の陣 10
「表示された難易度に
対して実際には
難しすぎる(簡単すぎる)」
というのは割とよく
存在する
「詐称」と言ったりする
2018-09-03 アイデア供養会 名古屋の陣 11
さっき挙げたゲームだと、
私の感覚では
2018-09-03 アイデア供養会 名古屋の陣 12
ゲーム内での
表示難易度
実際の難易度
24
25
26
27
データ化して
統計的に難易度を
評価したかった
2018-09-03 アイデア供養会 名古屋の陣 13
アーケードの音ゲーだと
動画を撮って手入力する、
とかしかないだろうけど
2018-09-03 アイデア供養会 名古屋の陣 14
スマホの音ゲーだと
割と自動化できそう
なのでは?
2018-09-03 アイデア供養会 名古屋の陣 15
手順
1. 画面キャプチャ
2. アイコン抽出
2018-09-03 アイデア供養会 名古屋の陣 16
これで大丈夫だと
思ったんだ…
2018-09-03 アイデア供養会 名古屋の陣 17
そうでもなかった
2018-09-03 アイデア供養会 名古屋の陣 18
アイコン抽出が
意外と難しい
2018-09-03 アイデア供養会 名古屋の陣 19
画像から、パターンを
抽出するライブラリ
なんていろいろ
あるわけですけど
2018-09-03 アイデア供養会 名古屋の陣 20
今回のタスクに
適した抽出が
できるものが
見つけられなかった
2018-09-03 アイデア供養会 名古屋の陣 21
画像のパターン抽出の
典型例1:
単にピクセル単位で
マッチング具合を見る
2018-09-03 アイデア供養会 名古屋の陣 22
抽出したいパターンと、対応した
ピクセル同士の値を見て
その差分が少なければよい
2018-09-03 アイデア供養会 名古屋の陣 23
1 3 0 0 0
2 0 3 0 0
3 4 0 2 0
0 0 0 1 0
0 0 5 1 0
1 3 0 0 0
1 0 3 0 0
3 4 3 2 0
0 0 0 2 0
0 0 5 1 0
差分
0 0 0 0 0
1 0 0 0 0
0 0 3 0 0
0 0 0 1 0
0 0 0 0 0
抽出したいパターンと、対応した
ピクセル同士の値を見て
その差分が少なければよい
•ちょっとでもずれると
検出できないのはつらい
•実際こういうゲームは、描画
位置を整数ピクセル単位では
計算していない(はず)
2018-09-03 アイデア供養会 名古屋の陣 24
画像のパターン抽出の
典型例2:
特徴点抽出
2018-09-03 アイデア供養会 名古屋の陣 25
•例えばこんな具合
https://qiita.com/fukuit/items/
546f19d2abf98eccd3e7
•写真とかからの画像抽出だと
こういう手法を考える
ことが多いらしい
2018-09-03 アイデア供養会 名古屋の陣 26
•「どういう形をしているか」
について特徴的な点が多数
あることを想定している
ものが多い
2018-09-03 アイデア供養会 名古屋の陣 27
•音ゲー画面のような
より単純な画像には
効きにくかった
2018-09-03 アイデア供養会 名古屋の陣 28
自分で特徴量を
作ってみたりも
したのだが
色の割合(いわゆる
ヒストグラム)とか
2018-09-03 アイデア供養会 名古屋の陣 29
うまくいかず
止まっている、
というところです
2018-09-03 アイデア供養会 名古屋の陣 30
開発再開を
期しつつも
他の都合で大変な
こともあり
ひとまず供養
2018-09-03 アイデア供養会 名古屋の陣 31
ありがとう
ございました
2018-09-03 アイデア供養会 名古屋の陣 32
おまけ
2018-09-03 アイデア供養会 名古屋の陣 33
このゲーム、
今日でリリースから
ちょうど3年です
キャンペーンも
やってますね
2018-09-03 アイデア供養会 名古屋の陣 34
何かの数字
160561232
2018-09-03 アイデア供養会 名古屋の陣 35

More Related Content

More from Hiro H.

「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)Hiro H.
 
配列の要素挿入・削除もランダムアクセスも両方高速にできる?
配列の要素挿入・削除もランダムアクセスも両方高速にできる?配列の要素挿入・削除もランダムアクセスも両方高速にできる?
配列の要素挿入・削除もランダムアクセスも両方高速にできる?Hiro H.
 
PCSじゃないよ、PCAだよ
PCSじゃないよ、PCAだよPCSじゃないよ、PCAだよ
PCSじゃないよ、PCAだよHiro H.
 
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~Hiro H.
 
シンデレラガールズ声優の増え方まとめ
シンデレラガールズ声優の増え方まとめシンデレラガールズ声優の増え方まとめ
シンデレラガールズ声優の増え方まとめHiro H.
 
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」Hiro H.
 
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」Hiro H.
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Hiro H.
 
最近デレステ創作譜面作ってるので技術的な見地から話します
最近デレステ創作譜面作ってるので技術的な見地から話します最近デレステ創作譜面作ってるので技術的な見地から話します
最近デレステ創作譜面作ってるので技術的な見地から話しますHiro H.
 
C++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみようC++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみようHiro H.
 
デレステの劇場で登場したアイドルの回数の統計取ってます
デレステの劇場で登場したアイドルの回数の統計取ってますデレステの劇場で登場したアイドルの回数の統計取ってます
デレステの劇場で登場したアイドルの回数の統計取ってますHiro H.
 
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Hiro H.
 
名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗Hiro H.
 
MSYS2使いはじめました
MSYS2使いはじめましたMSYS2使いはじめました
MSYS2使いはじめましたHiro H.
 
関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へHiro H.
 
角錐や円錐が、角柱や円柱の体積の3分の1であることを積分・極限抜きで証明してみる
角錐や円錐が、角柱や円柱の体積の3分の1であることを積分・極限抜きで証明してみる角錐や円錐が、角柱や円柱の体積の3分の1であることを積分・極限抜きで証明してみる
角錐や円錐が、角柱や円柱の体積の3分の1であることを積分・極限抜きで証明してみるHiro H.
 
rsyncで差分バックアップしようぜ!
rsyncで差分バックアップしようぜ!rsyncで差分バックアップしようぜ!
rsyncで差分バックアップしようぜ!Hiro H.
 
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】Hiro H.
 
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)Hiro H.
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)Hiro H.
 

More from Hiro H. (20)

「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
 
配列の要素挿入・削除もランダムアクセスも両方高速にできる?
配列の要素挿入・削除もランダムアクセスも両方高速にできる?配列の要素挿入・削除もランダムアクセスも両方高速にできる?
配列の要素挿入・削除もランダムアクセスも両方高速にできる?
 
PCSじゃないよ、PCAだよ
PCSじゃないよ、PCAだよPCSじゃないよ、PCAだよ
PCSじゃないよ、PCAだよ
 
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
 
シンデレラガールズ声優の増え方まとめ
シンデレラガールズ声優の増え方まとめシンデレラガールズ声優の増え方まとめ
シンデレラガールズ声優の増え方まとめ
 
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
 
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
最近デレステ創作譜面作ってるので技術的な見地から話します
最近デレステ創作譜面作ってるので技術的な見地から話します最近デレステ創作譜面作ってるので技術的な見地から話します
最近デレステ創作譜面作ってるので技術的な見地から話します
 
C++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみようC++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみよう
 
デレステの劇場で登場したアイドルの回数の統計取ってます
デレステの劇場で登場したアイドルの回数の統計取ってますデレステの劇場で登場したアイドルの回数の統計取ってます
デレステの劇場で登場したアイドルの回数の統計取ってます
 
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
 
名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗
 
MSYS2使いはじめました
MSYS2使いはじめましたMSYS2使いはじめました
MSYS2使いはじめました
 
関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ
 
角錐や円錐が、角柱や円柱の体積の3分の1であることを積分・極限抜きで証明してみる
角錐や円錐が、角柱や円柱の体積の3分の1であることを積分・極限抜きで証明してみる角錐や円錐が、角柱や円柱の体積の3分の1であることを積分・極限抜きで証明してみる
角錐や円錐が、角柱や円柱の体積の3分の1であることを積分・極限抜きで証明してみる
 
rsyncで差分バックアップしようぜ!
rsyncで差分バックアップしようぜ!rsyncで差分バックアップしようぜ!
rsyncで差分バックアップしようぜ!
 
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
 
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
 

スマホ音楽ゲームの動画から譜面をデータ化したかった