diaryこの広告は、90日以上更新していないブログに表示しています。追記したり斜めの画像を差し替えたりしました)オープニング的なご挨拶お久しぶりです。Calendarの季節がやってまいりました。Calendarは本来、12月1日から24日までクリスマスを待つまでに1日に1つ、穴が空けられるようになっているカレンダーです。Calendarは、その風習に習い、12月1日から25日まで1日に1つ、みんなで記事を投稿していくというイベントです。Calendarとなり、大いに盛り上がりました。www.adventar.org調子に乗って今年も募集してみたところ、この記事を書き始めるちょっと前くらいに25日分埋まったようです。ありがとうございます。www.adventar.org去年に引き続いて参加されている方も多い&似たような日付に陣取っていることが多いように見えるのがなるほどと思います。Calendarの行く先を見守っていただければ幸いです。去年、大変に好評だったエントリから影響を受けて作ったプログラムをご紹介します。non117.hatenablog.com上記がそのエントリですが、技術的にも発想的にも、愛や狂気が見て取れる素晴らしいエントリに仕上がっています。この中にある枠線の検出方法が目からウロコ&自分でもコマを切り出したいという思いから後追いで作ってみることにしました。結論から言うと、記事中のロジック実装は難しくなかったのですが、手元の自炊した画像だと微妙に線が斜めになっているものがあり、それだと切り取るべき枠線がうまく検出できないようでした。斜めを修正することも考えましたが、色んな画像を切り取ることを考えると一括で処理できそうなものが思いつかなかったので、平均的な切り取り位置を検出して、一括で切り取ることにしました。その際、Paddingを足してあげて広めに切り取ることで、できるだけほしい部分が切り取れているように調整しました。綺麗にする処理を別に作ってもよいかとは思います。扉絵があっても気にせず定位置で切り取るので、そこは扉絵とコマを別に切り抜けるようにはしたいところです。1.9.2Python以外のバージョンは最新でよいかと思います。EngineやTensorFlowに縛られているからです。それ以外なら3.4系以上でよいかと思います。日本語でつまづく確率がぐっと減ります。インストール手順は、記事の反応的に必要そうだったら追記します。1つだけ先に言っておくと、Windows系はOpenCVのインストールでハマる事が多いので最悪VMでLinux環境を用意したほうがよいかもしれません。画像を扱っている部分をpillowに差し替えるなどでもよいと思います。カットポイントの要素数が偶数。カットポイントの要素数が奇数。「path/to/image/dir」は画像があるディレクトリを指定してください。うまくいけば、しばらくした後、path/to/image/dir/cut_imagesに切り抜かれた画像が保存されます。実行ディレクトリにtrim-1.jpg~trim-8.jpgが生成されるで良いかと。これで一挙に『ゆゆ式』のコマ画像が手に入ったので、最近興味を持っている機械学習なんかの分析にも手を広げていければと思います。milkcocoaを使ってリアルタイムに3D空間で音のセッションができるようなものを作りました。Storeカードとモバイルファクトリー様のステッカーを頂きました。Storeカードとステッカーをいただきました。ありがとうございます。2014関係者各位にはこの場を借りて感謝申し上げます。3DCGと立体音響が数行で動くWeb3DライブラリChromeやFirefox、一部のIE等のモダンなブラウザで3Dコンテンツを動かせるWebGLのラッパーであるthree.jsをさらにラップすることで、jQueryでのDOM操作くらいが分かっていればブラウザで動作する3Dコンテンツを簡単に制作できるもの。いう説明で多分合ってると思います。簡単に制作できる代償もそれなりにあって、動作が遅い、Webで3Dをやることの本質が理解しにくくなる等々言われているようです。メディアラボ様からは会場を、モバイルファクトリー様からはハッカソンで自由に使用できる音源を提供して頂きました。ここに改めて感謝申し上げます。アイディア発表、チームビルディング参加できるのが決まったのが急だったので特にアイデアもなく、一緒に組んだお二方と考えることに。結果、せっかく3Dオーディオが簡単に使えることを活かすのと、Javascript1行を埋め込むだけで簡単にバックエンドが用意できるmilkcocoaを使って音楽のセッションのようなことができたら面白いのではという案に落ち着きました。作成アイデア出し1時間、昼休憩1時間、制作時間3時間半と時間が厳しいので以下のボーダーラインを設定し、まずはそこにたどり着くことを目標としました。固定した3点を置き、1つの点から音を出す処理を行うと、同時に接続してる他の人も同期してそこから音が出る。3Dオーディオなのでカメラの位置によって、その音が左から聞こえたり右斜め前から聞こえたりする。結局のところ、3Dオーディオの使い方を1から知るというレベルだったり、僕がmilkcocoaとの連携でつまらないミスを連発したりで、ボーダーはなんとか超えたというところでタイムオーバーでした。出来上がったもの概要にも貼りましたが、以下になります。Web3dSessionWeb3dSession右側の再生ボタンを押すとA、B、Cの3つのオブジェクトが現れ、それぞれbeat、scratch、thunderに対応しています。カメラ切り替えボタンやドラッグで視点を変えて音を鳴らすと、音の聞こえ方が左からだったり右斜め前からだったりと変化することがわかると思います。milkcocoaで同期しているため同時に接続している人が音を鳴らすと、自分のブラウザでもその音が聞こえてきます。左のエディタを見てもらえると分かりますが、記述するのはGOML、HTML、CSS、Javascriptと4種類ありますが、それぞれ50行も書いていません。これだけの記述で3Dオブジェクトを描いて、3Dオーディオを設定して、ブラウザ間のリアルタイム通信も行えるとは、jThreeとmilkcocoaの素晴らしさに誰しもが震えると思います。jThreeの音楽を鳴らす関数にホストの再生時間をつっこめば出来そうだが、1秒くらい遅延がおきそう。QiitaのようにFPSっぽく設定すれば出来るかと。いうかこのゲームに銃の発射音を3Dオーディオで設定して、どこから撃たれているのかわかるっていうのも面白そうだと思った。複数用意するのは大変。あと、再生タイミングの同期が音楽レベルにすると無理そう。最初に目指した音楽のセッションというレベルは厳しそうだが、みんなが集まって音を出してるだけでも楽しいと思うのでチャカポコチャカポコできる何かが作れればいいなと感じた。いう発想にいたったグループ、バンジージャンプをしている人が杵を持ち、地上にある臼めがけてモチをつくという説明していてよく分からないけどインパクトある画面を作ってメディアラボ賞に輝いたグループ。私のグループは音源を提供していただいたモバイルファクトリー様から賞を頂きました。ステッカーがあるだけでもかなり嬉しいですね。以下、今回のハッカソンやjThreeの勉強会に何度か出て思うところこの日の松田さんの話で「Webで3Dと言っても、素人が見てすごいと思えることをやろうとするとレンダリング能力やファイルの容量=ローディングの重さの問題で現実的でないことが多い」というのがあって、これはそのとおりだと思います。「その分、アイデアで勝負」というのも当然の流れかとは思いますが、まだどういうことが面白いのかという知見は集まっていないのが現状でしょう。「『楽しい』をキーワードにjThreeを勧める」というのは非常に納得できる部分で、本来であれば面倒なことが多いはずの3Dコンテンツ作成において、今回の参加者の方々は私も含めてみんな楽しそうに作業をされていました。今はまだ、技術を活かす道を模索する段階だとは思いますが、「楽しさ」でこちらに来てくれる人の可能性を考えれば、3Dコンテンツ全体の発展としては良い土壌となり得るのではないでしょうか。あとはぱっとしての見てくれがいいものがあるといいかなと思うので、例えばアニメ『翠星のガルガンティア』でWebGLを用いた3Dゲームが無料で公開されていましたが、こういったコラボ企画が作れたりすると箔がつくかなと。〜キミと届けるメッセージ〜質の良いモデルを使って簡単にWebで3Dコンテンツを作る、そういった道もあるのではないかと思いました。Piを触ったのでメモ的な何かTweet広告を非表示にするもっと読むコメントを書く2014-04-01RtRTはAPI廃止でダメになった→すまん、ありゃウソだったはてなブログをなんとなく開設してみました、私です。エイプリルフールなネタというよりは、時間が経って考えてみたり実装してみたりしたらRtRTはTwitterのAPI仕様で十分いけるやんと気付いたので、こんな記事でも書いてみようかと思いました。API1.0廃止まで運営してました。この時点では核になる3つのAPIの2つが廃止APIを叩ける回数が350回/1時間から15回/15分に変更という2点の変更があり、今までどおりの運用は不可能と判断しサービスを停止するに至りました。最近になって、よく仕様を見てみるとなんだかできそう→できた、ということがあったので報告までしておきたいと思います。RtRTは機能的に現在でも実装できる!というだけで、サービスは色々と面倒なので再開しません。プログラムの流れ自分がRTされたつぶやきの一覧を取得する(statuses/retweets_of_me)各つぶやきをRTした人を調べる(statuses/retweets/)RTした人のTLを見にいって、自分のRT直後のつぶやきを見つける(statuses/user_timeline)データとして詰めあわせてjson形式で吐き出すRTした人たちのユーザIDだけの取得でよければ、2はstatuses/retweeters/でも多分問題ありません。API制限を見てみたらさらに実装可能感が増すここでAPI制限を確認してみますと、なんと各API毎に制限値と残数と復活までの時間が設定されたようで、現在では1と2は15回/15分、3は180回/15分となっているようです。1はプログラム起動時に1回しか使う必要がなく、2はつぶやき毎に1消費しますが、15分に15個分を1度見られれば十分です。3はなぜか180回/15分も叩けるので以前の350回/1時間よりも効率が良くなっているという状態です。3のオプションであるcount=200とpage数に対応が取れるようになったため、つぶやき量が多い人に対してもかなり深くまでAPI回数を消費せずにリーチできるようになりました。いった点から、15分に一度の起動で100RT程度までの対応ならば問題なく行えるといえるでしょう。tweepyでコマンドラインからjson吐き出しまでを見てみます。CONSUMER_KEY='XXXXXXXXXX'、CONSUMER_SECRET='XXXXXXXXXX'ACCESS_KEY='XXXXXXXXXX'、ACCESS_SECRET='XXXXXXXXXX'には、それぞれ自分のTwitter開発者用のものを入力してください。f.closeget_rtrt()した中身をwrite_json()に入れてjson形式で出力します。"話がジェットコースターなので、よくよく考えるとなんかおかしいところもある気はするけど、作品全体でのパゥワが凄すぎる。(中略)]あまりRT言及っぽいのが取れなかったですが、上が私のつぶやきで下がその直後のつぶやきです。許可をもらってないので個人情報をマスクしておきましたが、実際にはちゃんと取れています。あとはこのjsonをjavascriptなんかで整形してやれば、きちんとコンテンツになります。そのためにサーバやらなんやらの用意をする気力が私にはないので、やる気のある方が出てくれればというところです。いうことで、RtRTがダメになったというのは事実と異なる見解でした、すみません。いうところで本題は締めたいと思います。実装についてもうちょっと詳しく1兎にも角にもまずはアプリ用のトークンが必要です。(上記で自分で入力する必要がある4つの文字列)こちらはPHPの記事ですが、トークンをゲットするまでは同じ道のりなので参考になると思います。http://webnaut.jp/develop/633.html2Pythonとtweepyをインストールする。説明するほどでもない気がするので、ぐぐっていただけると話が早いです。私はPython2.7を使用しましたが、3系でもそこまで問題ないような気がします。3上記のソースコードに自分のCONSUMER_KEY、CONSUMER_SECRET、ACCESS_KEY、ACCESS_SECRETを入力して任意の名前(ここでは例としてrtrt.py)で保存。コマンドプロンプトやらコンソールやらでPythonの対話モードシェルを起動。'rtrt')これで同じフォルダにrtrt.jsonが生成される。これをテキストエディタで開いて眺めたり、javascriptで整形して表示したりすると幸せになれる(※個人差があります)謝辞として、各APIの仕様と取ってくるデータを確認するのにtwitSandbox様には大変お世話になりました。http://twitsandbox.com/また、参考にさせていただいたサイト、ブログ様もたくさんありますが、ありすぎて一つ一つは覚えてません、すみません・・・。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。