読者です 読者をやめる 読者になる 読者になる

saitetutan’s diary

Unity,Blender,C#,Javaなどの備忘録的なブログです。電子工作やArduinoなんかも。

Unity,Blender,C#,Javaなどの備忘録的なブログです。電子工作やArduinoなんかも。

SPAJAM大阪予選参加しました

最近更新が滞ってしまっていて。。

 

この間、色々とあったのですが(MBSハッカソン優勝とかタッチデバイス製作とか。。)また今度記事にしようと思います。

 

今回は先週行われたSPAJAM大阪予選についてです。

今回はチーム『でん&つー』としてパクパクトレインというアプリ(ゲーム)を作りました。


f:id:saitetutan:20170427224040j:image

このゲームは踏切などで電車に向かってカメラをかざすと画面端に現れるパックマンが走っている電車を食べていくという単純ゲームです。

 

OpenCVで差分画像を取り、輪郭線を摘出、塗りつぶしを行うことで電車のみを割り出し、その部分の面積量をスコアに反映するという感じで処理を行っています。

 

また、差分なのでカメラを動かすと誤認識してしまうので、角速度を取って、しきい値以下でないとパクパクモードに入らないようにしてます(これを発表の際に言い忘れて、質問してもらえなかったらヤバかった。。というか発表の時疲れすぎて記憶があやふや。。)


f:id:saitetutan:20170427224030j:image

このゲームの開発経緯としては、テーマが電車であったことから、踏切での待ち時間に暇を潰せる(踏切で待つことを楽しみにできる)ゲームはないかとの意見から生まれました。

 

ただ、開発にとても難航し、完成度が自分の中での考えていたものの30%ぐらいのものになってしまったのがとても残念でした。。

 

具体的な難航した所ですが、まずUnityで作ろうとしていたところにOpenCVが無料の範囲だと環境構築が大変そうなことからAndroidStudioに急遽変更(今から思えばこのまま環境構築していても対して変わらなかったかも)し、その後パックマンのアニメーションのせいでカメラ映像がアニメーションに同期しだしたり、最終ビルド直前(終了まであと5分程)にタイトルからの遷移でヌルポしたりなど、とにかく大変でした。。。

(徹夜もめっちゃ疲れた(-_-;))

 

ただ、結果的には優秀賞をいただけました。

 

正直、何故もらえたのか不明なくらいですが、単純に嬉しかったです。

 

あと今後の予定ですが、色々と作ったものがとっ散らかっていて自分でも整理しきれてないので、ポートフォリオを作ろうと思っています。

HackDay2017

遅くなりましたが、HackDay2017に参加してきました。

 

HackUではソフトを作ったので、今回はハード的なのを作りたいということで、ホワイトボードイレーサーロボットを作りました。

 


f:id:saitetutan:20170215171818j:image

 

機能としては自動で文字を消してくれて、尚且つ書かれた文字を撮って保存してくれるようになってます。

 

 中の仕様としては、Arduinoでサーボを制御し、esp8266でgroveのカメラモジュールから写真を撮ってwifiでサーバーに送信、そこで合成という形になってます。

 

外見的にはプロトタイプそのものでしたが、一応ホワイトボードを立てている状態でもきちんと動いてくれました。

 

賞にはなんにも引っかかりませんでしたが、貫徹でなんとかできたので悔いはないです。。。←

 

また、今MBSハッカソンにも参加しており、こちらの記事も後日上げたいと思います。

LGV32(isai vivid) リフロー修理

4ヶ月前ぐらいになりますがLGV32が件の再起動ループになりまして、au辞めてシムフリー化してたこともあって保証効かないんで、泣き寝入りしてました。

で、最近この機種のベースモデルであるG4がリフローしたら直ったっていう英語の記事を見つけまして、じゃあどうせただの文鎮ならやってみようかとリフローしてみました。
(ちなみにG4の方は普通に交換してもらえるらしい)

結果、1回目ではうまく起動しなかったのですが、2回目で普通に直りました!!

今、うれしくて、そのLGV32から書き込んでいます。

本来なら写真とか載せるべきなんですが、直るとは思ってなくて手順とか何も撮ってないです…すいません…

一応、いま書いてる画面とソフトウェア設定のスクショを。

f:id:saitetutan:20170118170459j:plain


f:id:saitetutan:20170118171527j:plain



リフローなんて初めてやったんですが直るもんですね…

自分みたいに保証効かない人は是非やってみては?(自己責任ですが)

一応、リフロー手順としては、Y型ドライバーでネジ外してから、ピック型の開ける器具(日本橋で分解セットで600円ぐらいでした)でこじ開けて、ケーブル類を外して(全部コネクタになってるので爪ではがせます)、基盤をアルミで包んで、家のオーブンで予熱5分から200℃で8分かけました。

分解は比較的し易いので結構おすすめです。

しかし、android6.0のアプデが来てたんですね…知らなかった…

なんにせよ、頑なに製品不良の再起動ループを認めないauとLGジャパンの製品はもう一生買わないかな…

Hack U 2016大阪大会参加してきました!

タイトル通りですが、Yahoo!Japanさんが主催する、Hack U2016大阪会場に参加してきました。

 

camtanという英単語暗記アプリを作ったのですが、当日プレゼン中の実機見せでうまく動いてくれないというバプニング発生…。

終わった…と思いましたが、なんと優秀賞頂けました!

 
f:id:saitetutan:20161219124618j:image

 

プレゼン当日に作って、アプリの最終ビルドも発表15分前という超ギリギリスケジュールでしたが、完成してよかったなぁと。


f:id:saitetutan:20161219124404j:image

 

アプリの仕組みとしては、英文などに書かれた覚えたい単語に蛍光ペンで線を引いてカメラで撮影すると、自動的に日本語訳と一緒にテストの形式として単語帳が作られるという感じです。

 

AndroidStudioで開発して画像認識にopenCV3、文字認識にtesseractOCR、日本語訳抽出にMicrosoft TranslatorAPIを使いました。

 

AndroidStudioでの開発(というかJava自体)初めてだったのですが、Androidの開発がいかに面倒くさいのかがよく分かりました…

 

まあ、とにかく賞いただけて良かったです^^

 

アプリの方は改良を加えて、近いうちに公開したいと思ってたりします。

 

あ、あと秋葉原で行われる本選(Hack Day)に招待して頂いたので頑張ってこようと思います!

IoTLTで初LTしてきた話

最近このブログ更新が滞っていたので、何か書かなきゃと思い。。。

ーーー

11/28に行われたIoTLT大阪vol4で初LTしてきました。

 テーマはIoT with Unityで、IoTで何か作るとき、Unityでインターフェース作ったら楽なんじゃない?みたいな内容でした。

かなり緊張しててアレだったんですが、また機会があったら登壇したいと思ったりしましたね。

ちなみにこのときのスライド↓

 

 

ーーー

 

あと、会場がHDMI対応してなくて、変換アダプターはやっぱり必要だと痛感しました…

PHPとMySQLでシリアルコードの認証システム作成

今回はシリアルコード(シリアルナンバー、シリアル番号)の発行と認証のシステムを作らないといけない状態になり、取りあえずそれらしいものを作ったので載せておこうかと思います。

ここで言うシリアルコードとはゲーム内などでアイテムを貰うために1回だけ入力できるような、あのコードのことです。

違うものを想像していた方は申し訳ないです。

 

また、このブログの記事全てに共通することですが、超初心者向け記事なのであしからず・・・。

 

--------------------- 

 

まず、シリアルコードのデータはレンタルサーバー上のMySQLハッシュ値として置いておくことを想定しています。

 

phpは5.5以上からmysql()が非推奨(しかも今回使ったサーバーでは使用不可)、mysqliを使用しています。

 

概要としてはmysqliでインスタンスを作成し、SQLインジェクション回避用にプリペアドステートメントでクエリを発行する感じです。

 myspl上にはserialとDATEのcahr型、usedのboolean型のカラムをそれぞれ用意しておいてください。

 

まずシリアル発行のスクリプトから、

 ちょっとオブジェクト指向風な感じで

 

 

で、こっちがシリアル認証用のスクリプト

 

 

 

 

if state=="ok"のところにリンクとか貼ればオッケーかもです←

また、useがbool型でtrueになると認証できない(一回しか認証できない)用になっているので注意です。

再読込でも認証不可になるので要改善かも。

 

このソースではmd5を使っておりますが、最近非推奨な傾向なので、もっとセキュアな必要があるならphp標準のpassword_hash()を使うことをお勧めします。

【ネタバレ注意】君の名は ストーリー考察

前に言った、最近ハマった「君の名は。」の考察を少々…

 
f:id:saitetutan:20161019133035j:image

 

ちなみに劇場公開翌日に1回見て翌々週にもう一度観ました。(劇場終了直前にもう一、二度ぐらい見るかも)

また、Anothersideもkindleで買って読みました。その上で、今回はストーリーの考察をしたいと思います。駄文でダラダラと書いておりますが、ご容赦願います。

 

-----------------

 

 

まず、物語を時系列順に揃えることから始めようかとおもいます。

Anothersideや憶測も含めるので間違ってたら申し訳ないです。

 

3600〜2400年前?

彗星が落ちてクレーターができ、現在の神社の御神体に。

これを後世に伝えようと壁画が描かれる。

 

1200年前

また彗星落下。この時湖ができ、神社も破壊され今の位置に。

この時まで、彗星は龍として崇められていた(壁画の影響?)が、この後から糸への信仰へと変わる。

また、この時以来入れ替わりが巫女と口噛み酒に宿る(もっと前からかも?)

 

200年程前

繭五郎の大火で本殿や資料などが失われる。

 

20年程前

俊樹(三葉の父)が歴史調査で糸森を訪れる。

二葉に出会い、色々ありながらも結婚。

 

15年程前

二葉が無くなり俊樹が町長になる。

 

3年前

三葉が3年後の瀧と入れ替わる。

10/4、彗星落下。糸森は壊滅的な被害を受ける。

 

現在(2016年)

瀧は3年前の三葉と入れ替わる。

入れ替わりが止まり、糸森を探しに行く過程で彗星落下を知り、口噛み酒で3年前の三葉と入れ替わる。

 

3年前(別の世界線)

三葉(in 瀧)が奮闘するも、本人でないと俊樹を説得できないことを悟り入れ替わる。

俊樹を三葉と一葉、四葉とともに説得(俊樹は、これが虚言でないと勘付いてきていた)

 

5年後

君の名は。

 

 -----------------

 

概ね、こんな感じでしたね。

 

様々な場所で、「この物語は主人公たちによって、いとも簡単に人が救われる、薄っぺらいセカイ系だ」との意見があったので、果たしてそうなのか考察してみようと思います。

 

 

結論から言うと、ノーです!

 

ストーリーに薄っぺらさはないですし、厳密にはセカイ系でも無いのです。

 

↑↑の時系列を見ても明らかですが、糸森の人達(と言うか巫女)は1200年も前から今回の彗星落下のために様々な準備をしてきました。

恐らくですが、今回避難した学校が彗星落下の被害を受けない場所にあった事なども、この力によるところが大きいと考えられます。

 

その最たる例が二葉です。二葉が亡くなったのは俊樹を町長にするためでした(町長の力で避難させるため)。これは外伝小説の最後で俊樹の胸中の描写からも明らかです。

 

つまり、今回の町民の救出は1200年を掛けて糸(組紐)を人々が編み、三葉と瀧は最後の役割である「糸を張る」仕事をしただけというのが全体の構造なのです。

 つまり、町民500人の救出のために、1200年かけて準備をし、二葉の犠牲もあったことを考えると、偶然でも都合がいいわけでもなく、必然だったと考えられるのです。

 

この物語は、ある意味運命論的な側面があります。

彗星の落下も町民を救出するのも、三葉と瀧が最後出会うのも全て運命的に決まっていたと見ることができます。

 

では、作中にあった繭五郎の大火はどうでしょう。

繭五郎の大火は劇中では不幸な事故のように描かれています。

しかし、偶然であるならば今回のように、大火を回避するように見えざる手が働くはずです。

 

なぜ回避できなかったのか。

ここからは私の憶測に過ぎないので注意ですが、この繭五郎の大火も運命として決定されていたからではないかと考えられます。

 

どういうことかと言うと、この数百年の間に日本は急速に発展し、政治の中心が神社から地方自治体への以降が進み始まることになりますが、この変化に対応し、全員の避難を完了するために、火事によって神社の影響力を弱め、古文書の消失によって外からの人間(俊樹)を呼び込み町役場の力を強めさせたのではないかと考えられます。

 

外からの人間を入れて町長にするだけならば他にも犠牲の出ない方法がありそうですが、町長にする人間には古い言い伝えを熟知しており、神社関係者でなければならない(でないと口噛み酒の効果が使えない)ため、俊樹でなければならないのです。

それを考えると、このような方法を取ったのも、少しは理解できます。

 

これらの要素を考えると、決してストーリーが薄っぺらいとは思えず、この運命論的構成は、主人公達の意思や行動によって世界を変化させるセカイ系とは違う物語であることも頷いてもらえると思います。

 

他にもいくつかの気になった小ネタを幾つか列挙しとこうかと思います。

 

・瀧という字は、氵に龍であり宮水と彗星(龍)を表している

・口噛み酒を瀧が飲んだことで、あの世の物を摂取したことによって、あの世にいる三葉と会話できた(千と千尋でも同じような場面があった)

 

 

 

ーーーーーーーーーーー

まとめ

駄文でストーリーの考察をしておいてなんですが、とにかく言いたいのは、この映画の醍醐味はなんと言っても総合力の高さです。

映像、音楽、ストーリー、構成…どれを取っても、映画素人の私には今まで味わったことのない、とても素晴らしい映画だと感じられました。

 

もしまだ見に行ってない方がいらっしゃれば、是非劇場で見ることをおすすめします!

 

 また、Anothesideも読んでない方は是非読むことをおすすめします。映画で語られてないことが多く保管されています!