2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

2D動画から2Dマップを自動生成する (movie2map)

Last updated at Posted at 2019-03-03

#movie2map
movie2mapは、縦横にスクロールしながら移動する2D動画から自動的に2Dマップを自動生成するツールです。
2Dでスクロールするタイプのゲームをやっていて、保存した動画から自動的に全体マップが作れたらいいのに、と思って検索したのですがそういうツールが見つかりませんでした。
たまたま仕事でAI関連の勉強をしていてPythonのNumpyの行列演算に触れていたので、やりながら学習できればと一石二鳥を兼ねてそういうツールを作ってみようと思い、やってみたらできました。
このページではインストールの仕方や使い方を説明します。
##システム要件

  • Python 3.7 or 2.7
  • Numpy
  • OpenCV for python
  • Windows or Linux OS

デモ

どのように変換できるか説明のために、変換例を載せます。
以下が変換前の動画です。

上記の動画から、変換して生成された2Dマップが以下になります。
変換時間は v1.0-beta版で 5分6秒でした。v2.0-beta版で3分でした。大きすぎるので1/4にサイズ変更しています。
2019_02_28_11_53_18.mp4.4bunno1.png

特定のゲームに特化しているわけではないので、上下左右にスクロールする2Dの動画であれば、たいていは対応できます。
map_dq1by4.png

###注意点
移動量の検知ロジックの都合で、黒枠がついた動画の場合移動検知に失敗します。
その場合はオプション指定で、スクロールエリアのみを対象範囲とするよう、-x -y -width -heightパラメータを追加してください。
またキャラクターや背景の黒い輪郭を移動検知のキーにしていますので、黒い輪郭が全くないパステルな画像だと移動量が検知できないかもしれません。

インストール手順

  1. Python、numpy、OpenCVをインストールします。 既にインストール済みの場合は不要です。これらのインストールの仕方は後述します。
  2. https://github.com/pensil-jp/movie2map を開き、 [Clone or download]をクリックして、[Download ZIP] をクリックして、 movie2map-XXXXX.zip をダウンロードします。
    WS000082.JPG
  3. movie2map-XXXXX.zipをコンピュータに解凍します。
  4. Windowsの場合 :
    メモ帳などで movie2map.bat を開き、PYTHON= の部分にpython.exeの場所を入力します。python.exeが環境変数PATHに含まれている場合、この手順は不要です。
    Linuxの場合 :
    chmod + x movie2map.sh を実行して実行権限を付与します。

使い方

  • Windowsの場合 :
    movie2map.bat [オプション] [ファイル名]
    動画ファイルをmovie2map.bat にドラッグ&ドロップしても実行できます
  • Linuxの場合 :
    ./movie2map.sh [オプション] [ファイル名]
    WS000067.JPG
    そのままお待ちください。
    しばらくすると静止画像([ファイル名].png)が完成します。

起動オプション

オプション 説明 デフォルト値
-h, --help ヘルプ表示
-o OUTPUT 出力ファイル名 (入力ファイル名).png
-m MASK マスクファイル 別に用意する場合のみ指定する
-s START(sec) 開始位置(秒) 0
-e END(sec) 終了位置(秒) 0にすると全て解析します 180
-r RATE 解析フレーム間隔 小さくすると精度が上がりますが時間がかかります 15
-c COUNT サンプリング数(1000~5000) 多いほど精度が上がりますが時間がかかります 1500
-b BRITENESS サンプリング閾値(20~128) 指定数より暗いポイントを識別します 50
-d DEPS 畳み込み範囲(2~5) 変更する必要はありません 4
-test 比較テスト画像をworkフォルダに出力します 動作チェック用
-x XPOS 開始左座標 0
-y YPOS 開始上座標 0
-width WIDTH 動画の幅
-height HEIGHT 高さ 動画の高さ
-p COMPRESSION 画像リサイズ率 1にすると原寸で処理 0.5 (半分)

使用ツール類のインストール手順(Windows)

利用ツール類のインストールがちょっとハードル高いので、インストール方法をまとめました。

###Pythonのインストール

  1. https://www.python.org/downloads を開き、Looking for a specific release? の下の Python 3.7.2 の右にある Download をクリック
    WS000068.JPG
  2. ページ下部にある、Windows x86-64 executable installer(32ビットOSの場合は Windows x86 executable installer) をクリックしてインストーラをダウンロードする
    WS000069.JPG
  3. インストーラを起動してインストール開始する。下のAdd Python 3.7 to PATH のチェックをONにしてから Install Now を押す。インストール中に、デバイスに変更を加えることを許可しますか?と聞かれたら「はい」を押す
    WS000071.JPG
  4. パスを通す設定にしてインストールしたので、バッチファイルのパス設定の修正は不要ですが、もしチェックをオフのままインストールしてしまった場合は、以下の設定を書き換えてください。
    WS000073.JPG

###numpy のインストール

  1. https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy を開いて、numpy‑1.16.2+mkl‑cp37‑cp37m‑win_amd64.whl (32ビットの場合は numpy‑1.16.2+mkl‑cp37‑cp37m‑win32.whl) をダウンロードする
    WS000074.JPG
  2. コマンドプロンプトを「管理者として実行」で起動しする。
    WS000077.JPG
  3. pip install [ダウンロードしたファイル名] を実行する。
    WS000079.JPG

###OpenCV のインストール

  1. https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv を開いて、opencv_python‑4.0.1‑cp37‑cp37m‑win_amd64.whl (32ビットの場合は opencv_python‑4.0.1‑cp37‑cp37m‑win32.whl) をダウンロードする
  2. コマンドプロンプトを「管理者として実行」で起動しする。
  3. pip install [ダウンロードしたファイル名] を実行する。

以上でインストール完了です。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?