FF10の雷除けを自動化した話

これはAizu Advent Calender 2014の9日目の記事です!

Aizu Advent Calender 2014

 

前の人: @MiZuKi_Sonoko

mizukindevelop: Hackathonに参加しよう {Aizu Advent Calendar 2014 [8]日目}

次の人: @a_r_g_v

 

はじめに

FF10はみんな知ってるよね?

FF10には七曜の武器っていう伝説の武器みたいなものがあって、入手方法がゲーム中のミニゲームをなんかすごいやるみたいな感じ。

例)

その中で巨乳おっぱいさんルールーの「雷平原のサブイベント・雷除けを200回連続で成功する」というものがある。

おっぱいさん

f:id:panchiga:20131228210446j:plain

 

雷除けとは

画面が光ったら◯ボタンを押す。それを200回繰り返す。そんな作業。


雷平原 雷避けチャレンジ20140517 - YouTube

 

 

こんな作業を人間がやる必要無くないか…じゃあ自動化してみよう!!!ってなったので

自動化をしてみた。

 

準備

今回使った物

 

 手順

  1. Webカメラから画面をキャプチャする
  2. キャプチャした画面情報から光ったかどうかの判定
  3. 光っていたら◯ボタンを押させる
  4. 光ってなかったら↑ボタンを押させる

 

コード

gist086a1a0c2a2bc05a70c2

 

gistf19a396b0924a1ba547d

 

配線

f:id:panchiga:20141209083845p:plain

 

 

f:id:panchiga:20141202043020j:plain

きったね

 

グランドか電源かわからないけど黄色の線が繋がってるのがリレーの入れ替わらない部分。

青色で繋がってるのが◯ボタン

灰色でつながってるのが上ボタン

 

灰色のとこから伸びてる黄色は上以外のボタンを押したい時に使う用

灰色のとこから伸びてる赤色は意味が無さそうので気にしないで…

 

それにしてもひどいな… 

 

動かす


[ff10]雷除けの自動化 - YouTube

 

動いてるね

 

 200回達成!!やったぜ!!!!

 

辛かったこと

Webカメラが勝手にホワイトバランスとか調整しちゃうのでミスが出る。それに気づくまで何が悪いのか全然分からなくて閾値とかスリープの時間とか変えたりしてわからんわからんってしてた。Logicoolwebカメラ使ってたので公式で配ってる調整ソフト(?)使って解決できてばんざい! 

トランジスタがなかったけどたまたまリレーがあって良かった。

 

まとめ 

  • PSコントローラーの基板直接使えばPC側から操作できるの最高
  • pythonシリアル通信超簡単
  • OpenCV強い
  • Arduino便利
  • リレー便利

 

感想

手でやりたくないことを機械にやらせよう的な事が計算みたいにコンピュータの中だけで済ませていたものから、PS2のゲームをやらせる的な現実の世界にまで飛び出して、行動の幅と言うかまさに世界が広がったなって感じがしてる。

電子工作って面白いなあって思いました。

 

次の人 → @a_r_g_v

 

 

Arduinoをはじめようキット

Arduinoをはじめようキット

 

 

【永久保証付き】Arduino Uno

【永久保証付き】Arduino Uno