backstage

合唱音源の新着情報の舞台裏

Nintendo Switch / ゼルダの伝説 ブレス オブ ザ ワイルド ファーストインプレッション

2016年10月「First Look at Nintendo Switch」という動画にて、はじめてニンテンドースイッチは私達の前にその姿を見せました。

それから半年、ついにニンテンドースイッチが私の家にも届きました。 実力はいかがなものでしょうか。キャッチーなコンセプトムービーは本当に現実のものでしょうか。 いま買うべきだったのかどうか、第一印象としてレビューします。

ニンテンドースイッチ レビュー

f:id:s2terminal:20170305181115j:plain:w320

まず開封するととてもコンパクトで驚きます。 Joy-Conを外した本体部分のみだとたった297gです。New3DSLLが329gなのを考えると、非常に軽量です。

ディスプレイは6.2インチWiiUゲームパッドとサイズは同じですが解像度がSDからHDに強化されています。

WiiUではゲームパッドのみでゼノブレイドクロスといった細かい表示の作品を楽しむのは厳しかったのですが、 ニンテンドースイッチではとりあえず普通に遊ぶことができる水準まで到達したといえます。 なお画面に出力するとフルHD(1920×1080)まで向上します。

6.2インチというのはiPad miniよりも小型です。スペックを比べてみましょう。

spec WiiU スイッチ iPad mini 4th
液晶サイズ 6.2 6.2 7.9
画面解像度 854x480 1,280x720 2,048x1,536
重量 500g 398g 298g
バッテリー容量 不明 4,310mAh 約5,000mAh

※スペックは各公式サイトおよびWikipediaより掲載
WiiUゲームパッドニンテンドースイッチは携帯モード(Joy-Con装着状態)のスペック
WiiUゲームパッドは充電せずに使うシーンが少ないのでバッテリー容量は考慮から除外

f:id:s2terminal:20170304130608j:plain:w320

iPadなど最近のハイエンドスマートデバイスに比べると解像度は劣りますが一応HDということで、3DSWiiUほどに解像度不足を感じる事はありません。

これだけ小型でありながらグラフィックス性能はWiiUよりも上という事は公表されています。 ただし相当に高性能という訳ではなさそうで、PS4Xbox oneと比べると貧弱という開発者の意見もあります。 後述の「ゼルダの伝説 ブレス オブ ザ ワイルド」を遊んでいても、通常30fpsな上にエフェクトが多いシーンは処理落ちする時もあり、グラフィック性能の高さは感じられませんでした。 それでも3DSのように他のゲーム機やスマートデバイスと比べて明らかに見劣りするわけでもなく、HDゲーム機として標準的な性能だと思います。

4,310mAhのバッテリー、398gの本体で3時間以上HDゲームが動作する点から、ニンテンドースイッチは処理能力よりも低電力性や排熱性などの面が相当に強化されているものだと思われます。

そもそもPS3PS4メタルギアソリッド5の違いが分からなかった自分としては、PS4の性能はもうゲームにとって既に過剰だと思っています。 そこで高性能を活かしてVRなどの方面に舵を切るPS4と、省電力化によって携帯可能という付加価値を得たニンテンドースイッチと、どちらも十分に差別化されていて魅力ある戦略だと私は思います。

あくまで「持ち運べる据え置き型ゲーム機

f:id:s2terminal:20170305181612j:plain:w320

据え置き型ゲーム機WiiUの後継」でありながら「携帯できる」という相反する特徴を持つニンテンドースイッチですが、 果たして据え置き型ゲーム機なのか、携帯型ゲーム機なのか、どっちなのでしょうか。

先程はWiiUiPadとスペックを比べましたが、ここで3DSと比べてみましょう。

spec New3DS New3DSLL スイッチ
液晶サイズ 上3.88
下3.33
上4.88
下4.18
6.2
画面解像度 上400x240
下320x240
上400x240
下320x240
1,280x720
重量 253g 329g 398g
バッテリー容量 1,400mAh 1,750mAh 4,310mAh

※実際には3DSの画面解像度は800x240だが、水平方向のドットを右目・左目で出し分けるため実質半分となる。

ご覧の通りまったくスペックが異なります。 もちろん世代が違うのでスペックに差があるのもありますが、携帯ゲーム機として小型・軽量に設計されている3DSと、 据え置き型ゲーム機の血を引く大画面・高解像度なスイッチとで、方向性の違いが見えてきます。

また、スイッチは下記のように"イマドキの携帯ゲーム機"の特徴を持っていません

  • タッチパネル必須ゲームは作れない(搭載しているものの、TVモードだとタッチできない)
  • カメラ非搭載

ほか「家庭用携帯ゲーム機として史上初となる,アクティブクーリング機構搭載機」「携帯モードおよびテーブルモード時は,プロセッサの動作クロックが下がる」など、細かいハードウェア仕様は下記記事が詳しいです。

www.4gamer.net

任天堂の戦略としても「ゼルダスプラトゥーンを早期に用意」「ポケモンやモンハンは(現時点での)ラインナップに無し」といった点から 据え置き型ゲーム機として売る気であり、逆に3DSを携帯ゲーム機の座から落とすつもりは無さそうに思われます。

しかし、かつてニンテンドーDSを出したときも 「ゲームボーイアドバンスに代わるものではない」と言っておきながら完全にゲームボーイシリーズの後継となったため 中長期的に見て今後どうなるかはまだ分かりません。 今は「持ち運べる機能の付いた、据え置き型ゲーム機」ですが、数年後ポケモンの新作をニンテンドースイッチで出して大ヒット→DSシリーズ消滅という未来も、十分に考えられると思います。

使い勝手に差のある3つのモード

f:id:s2terminal:20170305182008j:plain:w320

ニンテンドースイッチの大きな特徴として「TVモード」「テーブルモード」「携帯モード」の3つのモードがあります。 これらはゲームプレイ中だろうが何だろうが、いつでもスムーズに切り替えることができます。

TVモード

ニンテンドースイッチ本体をドックに装着した状態です。

このモードのみ映像出力がフルHDに対応します。 普通に据え置き型ゲーム機であり、それ以上でもそれ以下でもありません。

WiiUプレイステーション等と比べて特筆すべき点は多くないのですが、強いて言えば携帯できるという特徴を持つ副次的効果として、コンパクトで置き場所に困らず、音もまったくしませんPS4WiiUもうるさいですし、スペースも結構取ります。 もしこれらを気にする場合はニンテンドースイッチに大きなアドバンテージがあると思います。

コントローラはJoy-Conをそのまま使ったり、Joy-Conグリップ(本体同梱)を使ったり、Nintendo Switch Proコントローラー(別売)を使ったり、いくつか選択肢があります。 Joy-Conグリップを使えば一般的なゲーム機と同様の操作感を得ることができます。 本体同梱なので、基本的にはコレで十分でしょう。

なお別売りの「Joy-Con充電グリップ」を買うと、グリップを使いながらJoy-Conを充電することができます。 Joy-Conを充電しながらゲームを遊ぶ方法は現状コレしかありません。 非常にややこしいですが、本体同梱の「Joy-Conグリップ」ではなく、別売りの「Joy-Con充電グリップ」です。

テーブルモード

本体をドックから外してテーブルなどに置き、Joy-Conも取り外した状態です。 これは意欲的なものの、正直に言って完成度の低いモードです。

まずテーブルモードにするためのスタンドが非常に剛性が低く、本体を支える事はできているものの不安が残ります。 スタンドの角度も調整不可能で、キツめの角度に固定されるため目線と置き場所を揃える必要があります。まるでMicrosoftの初代SurfaceProです。 幸いディスプレイの視野角は広いので、そもそも画面が見えないといった自体は起きません。

角度調整可能なタブレット用スタンドを使おうとしたのですが、ニンテンドースイッチは一般的なタブレットよりも相当に分厚いためうまくハマらず、安定しません。 (今回Ankerのコンパクトマルチアングルスタンドを使ってみました)

また、充電端子が本体底面にある構造上、このモードのみ充電しながら使うことができません。 コントローラの選択肢はTVモードと同様で、Joy-Con充電グリップを用意しなければコントローラも充電できません。

マリオカートスマブラ等といった、任天堂が得意とするカジュアルな対人ゲームが充実して来た時にこのモードの真価が問われると思います。 しかし6.2インチの画面を複数人で共有して遊ぶイメージもあまり沸きません

複数人が集まっている場所にニンテンドースイッチだけが存在していてディスプレイが無いのでTVモードにできない、という状況があれば消去法でこのモードを選ぶことになりそうです。 ゼルダをやるだけならば、テーブルモードにする意味は無いと思います。

携帯モード

ドックから外した本体にJoy-Conを取り付けた状態です。 このモードの存在はニンテンドースイッチ最大の差別化点だと思います。

手で持つのでスタンドが不要、底面の充電端子も利用可能など、テーブルモードの欠点として挙げた要素が仕様上解消されるため、 打って変わってなかなか良い感じです。自由な場所で普通に遊ぶことができます。 TVモードの時にドックから外せば瞬時にこのモードになるので、ちょっと用を足したい、寝る前に布団でもう少し続けたいといった ひとをダメにするような要求に応えてくれる素敵なモードです。

バッテリーの持ち時間は「ゼルダの伝説 ブレス オブ ザ ワイルド」で公称3時間30分程度。 ちょっと短めですが、実際、携帯モードで5時間も10時間もゼルダができてしまったら本当にひとをダメにしてしまう気がするのでこの程度で十分です。

なお、ファンが内蔵されているためか発熱は問題ないレベルです。音もしません。

ニンテンドースイッチの充電端子はUSB Type-Cを採用しています。任天堂にしては珍しく独自規格ではありません。 そのためACアダプターをドックから抜いて本体に直接挿したり、別途USB Type-Cケーブルを用意すれば充電しながらプレイが可能です。 ただし「ゼルダの伝説 ブレス オブ ザ ワイルド」は消費電力が相当に大きいようで、PCのUSB経由で充電しながらでも徐々にバッテリーが減っていきました

携帯モードは他のモードと異なり、コントローラの選択肢が無く本体装着状態の一択となります。 携帯モードの操作感はWiiUゲームパッドに近く、100g以上軽いため、快適でとくに問題は感じません。

なお「本体に取り付けたJoy-Conは"良い感じ"で充電される」ため、コントローラの充電切れは気にしなくて良いようです。詳細は下記。

www.nintendo.co.jp

テーブルモードと異なり良くできた携帯モードですが、欠点としては画面とコントローラを共に手で持って操作する携帯型の宿命としてジャイロ操作を苦手としています3DSも同様の問題を抱えていましたが、こちらは3DSと違って視野角の問題は無いぶんまだマシにはなります。

ゼルダの伝説では弓矢などをジャイロ操作する場面があります(OFFにもできます)が、こういった多少の操作であればそこまで大きな問題には感じません。 この点は、ジャイロ操作に大きく依存する作品、要するにスプラトゥーンが出た時に大きな問題となると思います。 実際に体験会でそういったレポートも挙がっています。

www.itmedia.co.jp

スプラトゥーンは携帯モードを使わない前提な感じになるのか、それともなにか対策を打ってくるのか、 現時点で最大の期待作でもあるだけに発売までの半年が楽しみです。

貧弱なソフトラインナップ

ここまで挙げたように、ニンテンドースイッチは完璧ではないにしろ十分に魅力的なハードウェアです。 しかし最大の問題はハードではなくソフトウェアにあります。

下記記事を見ると結構色々あるように見えますが、コレ以外は一切発表されていないのです。

www.4gamer.net

ソフトの無いゲーム機というのは砂漠も同然、まどマギが無いNetflixのようなものです。 特に「WiiUの後継」を謳っていますがWiiUと一切の後方互換を持ちません。 半年以内に「マリオカート」と「スプラトゥーン」が控えているものの、新ハードの立ち上げとしてはあまりにも寂しいです。

ちなみにWiiUにはHuluやNetflixといったアプリもありましたが、ニンテンドースイッチにはそういった物も一切ありません。 SNSシェア用にブラウザが内蔵されているぐらいです。

そもそも「オンラインサービスは2017年秋正式開始、それまでは一部機能を無料開放しているのみ」という点から 現状のニンテンドースイッチはいわばアーリーアクセス版のような状態なのかもしれません。

ハードウェアは確かに魅力的なのですが、いま買うべきマシンかと言われれば答えはNoです。 ゼルダ1-2-switchに興味が無ければ、素直にスプラトゥーン2ゼノブレイド2まで待ちましょう。

リージョンフリー

そんな貧弱なソフトラインナップを埋める鍵になる…かどうかは分かりませんが、ひとつ希望があるとすればニンテンドースイッチはリージョンロックが掛かっておらず、日本国内の本体で海外のソフトが遊べる」という点です。 実際にゲームカードを輸入するだけでなく、海外のストアにアクセスできることも報告されています。

www.inside-games.jp

まだ少しハードルはあるようですが、実際に海外のストアも使えるならば少しはラインナップの足しになるかもしれません。 砂漠で水を売るようなものです。まどマギの無いNetflix火垂るの墓を配信してくれるようなものです。

なお海外のソフトが買えるからと言って、わざわざ英語版のゼルダを遊ぶくらいなら大したメリットはありません。 PS4では過激な表現を含むソフトが日本国内では規制されたり発売できなかったりしますが、任天堂の市場においてそういった事情は稀です。 海外のソフトを遊ぶメリットはどこにあるのでしょうか。

ニンテンドースイッチにおける日本と海外の違いのひとつはインディーズゲーム市場の発展具合です。 どういう理由か詳しくは知りませんが日本のインディーズゲーム市場は動きが見えない一方で、海外任天堂は数年前から「Nindies」と称してインディーズゲームに注力しているようで、今回ニンテンドースイッチ向けにも多くのラインナップが公表されています。

www.inside-games.jp

個人的には、DevidWiseやGrantKirkhopeが開発に参加している『Yooka-Laylee』が気になります。

www.playtonicgames.com

こういったインディーズタイトルのリリースに国による差異が生じる傾向が続く場合は、リージョンフリーである点がポイントになるかもしれません。

ゼルダの伝説 ブレス オブ ザ ワイルド レビュー

ニンテンドースイッチは「ソフトウェアラインナップが貧弱」という結論を出しましたが、 数少ない本体と同時発売のソフトのひとつにゼルダの伝説 ブレス オブ ザ ワイルドという作品があります。

www.nintendo.co.jp

まだ最初のダンジョンをクリアした程度なのですが、これがとんでもない作品でした。

行儀の悪くなった伝説

ゼルダの伝説シリーズは過去ファミコンから3DSまでほぼ全ての作品に触れてきましたが、そのほとんどは「行儀の良いゲーム」という印象でした。

  • ひとつずつアイテムを集めていく
  • 閉鎖的なフィールドを徐々に開拓していく
  • 順番にダンジョンを攻略していく
  • 少しずつ明らかになるストーリーを楽しむ

フックショットとかバクダンを手に入れる度に行ける世界が広がって、新しいダンジョンに挑んで、キーアイテムを揃えて最終的にガノンを倒すというゲームです。 シーケンシャルに進んでいくひとつひとつの体験が良質なので、どうなっても安定して楽しめる、そんな行儀の良い優等生な作品という印象でした。

そんな上記の特徴を全部粉々に破壊した作品が、今作「ゼルダの伝説 ブレス オブ ザ ワイルド」です。

  • 主要アイテムは序盤ですべて揃う
  • 最初からどこまででも自由にフィールドを進める
  • ダンジョンに攻略順番は無い
  • メインとなるストーリーはあるが、無視していきなりガノンの本拠地に乗り込むこともできる

順番に依頼を解決し、魔物を倒し、ダンジョンに乗り込んで最初にブーメランを手に入れて、といった行儀の良さはどこへやら。 攻略には順番も何もなく、ゲームを開始したら剣や盾を貰うチュートリアルすら無く、木の枝を拾ったらいってらっしゃい、終わり。 序盤からアイテムが色々手に入って、開始1時間ぐらいで空を滑空する装備を手にした段階で、世界中のほぼすべての場所に行くことができます。

ワイルドですね。

特に本作は世界がめちゃくちゃ広く、東西南北どこまでも果てしなく広がっています。 「ゼルダの伝説 時のオカリナ」で最初のダンジョンをクリアし初めてハイラル平原に出た時の感動は今でも覚えていますが、今回はその比じゃないくらい滅茶苦茶な広さのハイラル王国が、ゲーム開始後すぐに出迎えてきます。 例えるならばゼルダの伝説 風のタクト」を全部ヤケクソで陸にしたような感じです。

そんな広大な世界を、どこからでも手を付けることができます。 これだけでも十分に楽しいのですが、こう文字にしてみるとただシリーズの要素を否定しただけであり「それのどこが"ゼルダの伝説"なんだ」と思えてしまいます。 実際、プレイするまでは自分もそう思っていました。

プレイしてみて初めて、この作品がいかによくできているのか分かりました。

昔のRPGらしい自由度と高難易度

f:id:s2terminal:20170305181423j:plain:w320

今作は敵がものすごく強いです。

1発叩かれるだけで10以上のライフを持って行かれる敵などが存在します。 今までだと、全部コンプリートして最大限強化しても最大ライフ16~20という中で、4以上のダメージを与えてくる敵は滅多にいなかったと思います。 それが、今回は行き先をちょっと逸れるとマジで一瞬でゲームオーバーになるなんて事がザラにあります。ワイルドってこういう事なのかと思うほど、相当に高難易度です。

その代わり、主人公リンクの強化がクローズアップされています。 装備や料理により攻撃力・防御力を補強していくことで、強敵とも徐々に渡り合うことが出来ます。 今まではせいぜい数種類の武器・防具を終盤に強化する程度でしたが、今回はさまざまな種類の装備品が序盤から手に入り、いろいろ使い分けることになります。

当然、強力なモンスターの巣食う場所ほど優秀な装備品が手に入るため、順番に進めていくことで徐々に主人公を強化していくことができます。 どこへでも行くことができるのですが、場違いに強い敵がいる場所などは「ああ、ここは今来るべき場所じゃないな」と判断できます。

これは「時のオカリナ」とか「トワイライトプリンセス」といった今までのゼルダの伝説シリーズからすると異質なデザインなのですが、 逆にファミコン版の初代「ゼルダの伝説」に似通った設計となっています。

初代「ゼルダの伝説」も最初からフィールドは開放されていて、結構どこまででも進むことができました。 ダンジョンには1~8までの攻略順番が設定されているものの、割と無視して進めたりしました。 調子に乗って北東の方の山奥に乗り込んで、青いライネルに刺されて一撃でやられたりしたのも、今作ブレス オブ ザ ワイルドに似ています。 こういった雰囲気はゼルダの伝説に限らず、ファイナルファンタジーなどファミコン時代当時のRPGは結構こんな感じだったと思います。

最新ゲーム機で発売された最新作でありながら、中身はファミコンの時代のゼルダのような懐かしさがあります。

公式のプロモーションにも、初代「ゼルダの伝説」と関連づけた記述があります。

topics.nintendo.co.jp

また、GDCでのインタビューでも初代「ゼルダの伝説」のような2Dグラフィックでプロトタイピングしたという発言があり、スタッフが初代を意識していたのは間違いないようです。

www.4gamer.net

枷となるサバイバル要素

f:id:s2terminal:20170305181222j:plain:w320

ファミコンの作品と大きく異なるのがサバイバル要素の追加です。 ライフ回復のためには肉や果実を調理して回復アイテムを作る必要があります。 薬も自分で調合することができ、強敵と闘う時は属性防御やステータス上昇の薬があると大幅に有利になります。

そして、武器も使っていると壊れます。 難易度の高いダンジョンを安定して攻略するには、強力な武器を継続的に調達できるだけの強さが必要になります。 このため、序盤からハイラル城に乗り込んで超強い武器を手に入れたからといって、その後に無双できたりはしません。 武器による強化も一時的なものなのです。

このサバイバル要素によって色々なものが安定しないため、常に緊張感を持ってプレイすることになります。 ダンジョンに乗り込むには相当の準備をしなければならず、結果として自然とストーリーを進めることが攻略の近道になるよう設計されています。 一方で最初からどこにでも行けるため、メインストーリーを無視して延々サブクエストをこなしたり好き勝手に主人公を強化して回るという選択肢もあります。

ファミコンの時代と違ってサバイバル要素という枷があり、それに対抗してできる事の幅も圧倒的に増えています。 結果、攻略がとても自由で奥深くなっているのが、ブレス オブ ザ ワイルドの特徴です。

ゼルダの伝説シリーズの特徴的な要素を散々否定しておきながら、ゼルダの伝説として完璧に成り立っている、この完成度はさすがです。

まとめ

ゼルダの伝説 ブレス オブ ザ ワイルド」は、ファミコンの「ゼルダの伝説」の正統進化だと思います。 もともと海外人気が特に高いシリーズであり、海外で好まれるオープンワールド(厳密には、公式の正式名称はOpenAir)を採用したのもあってか、海外のレビューはMetacriticスコア98点という凄まじい事態になっています。

www.gamespark.jp

自分で触ったことのない作品について言及するのは不本意なのですが、同時に発売された『1-2-Switch』と比べるとその圧倒的な高評価が浮き彫りになります。

www.gamespark.jp

今作は間違いなく素晴らしい作品ですが、ニンテンドースイッチWiiUの同時発売になっています。 つまり ゼルダだけならばスイッチを買わなくてもできる ということです。

今回のゼルダのためだけにスイッチを買うぐらいの価値はありますが、任天堂の戦略がまだ不明瞭なこともあり ニンテンドースイッチ自体が持っている実力はまだ未知数です。

今夏のスプラトゥーン発売、今秋のネットワークサービス正式稼働までは、市場にニンテンドースイッチ本体を十分に供給し切るためのウォームアップみたいな物だと思います。 どういう展開をしてくるのか今後に期待です。

参考情報

Netflixには確かに魔法少女まどか☆マギカが配信されていたのですがここ1ヶ月くらいの間で再生できなくなっており、ニンテンドースイッチと同様の深刻なコンテンツ不足状態に陥っています。 特に劇場版を配信していたのは私の知る限りNetflixのみだったので頼りにしていたのですが残念です。

【Azure×Rails】アップした画像に自動タグ付けするWebアプリを作ってみた

ゴリラの画像ならば「animal」、ラーメンの画像ならば「food」iPadならば「computer」といった具合で、画像に自動でタグ付けをしてみました。

f:id:s2terminal:20170219141516p:plain:w200

マイクロソフトCognitive Servicesのうちのひとつ、Computer VisionRuby on Railsから利用することで、簡単に実現できました。

azure.microsoft.com

今回書いたソースコードGitHubに上げました。

github.com

要件

  • 画像をアップロードする
  • アップロードした画像のタグ情報を取得する
  • タグ情報をDB保存する

画像のアップロード機能

まずRailsプロジェクトを作成します。

$ rails _5.0.1_ new azure_computer_vision_on_rails
$ cd azure_computer_vision_on_rails
$ bundle install --path vendor/bundle

画像情報用のVisionテーブルと、タグ情報用のVisionTagテーブルを作成します。

$ rails generate model Vision url:string
$ rails generate model VisionTag vision_id:integer name:string confidence:float
$ rake db:migrate

Visionコントローラを定義し、「public/uploads」以下にアップロードした画像を保存していきます。

class VisionController < ApplicationController
  def index
    upload_file = params[:image]
    if upload_file != nil
      # 画像のアップロード
      @vision = Vision.create()
      filedir = "./public/uploads/visions/#{@vision.id}"
      FileUtils.mkdir_p(filedir) unless FileTest.exist?(filedir)
      filepath = "uploads/visions/#{@vision.id}/#{upload_file.original_filename}"
      File.open("./public/#{filepath}", 'wb') do |f|
        f.write(upload_file.read)
      end
      @vision.url = "#{request.url}/#{filepath}"

      @vision.save
      redirect_to :action => "show", :id => @vision.id
    end
  end

  def show
    @vision = Vision.find(params[:id])
  end
end

Viewはこんな感じです。

<%= form_tag('/', method: :post, multipart: true) do %>
  <div>
    <input type="file" name="image">
  </div>
  <input type=submit>
<% end %>

あとは下記のことをすると、画像アップローダーとしてはひとまず完成です。

  • config/routes.rbにルーティング情報を定義
  • VisionテーブルとVisionTagsテーブルにActiveRecordリレーションを定義
  • .gitignoreにアップロードバスを追記

Computer Vision APIを利用

Microsoft Cognitive ServiceのWebページに行って、「Get started for free」から「Computer Vision - Preview」を利用開始します。

www.microsoft.com

月間5,000および分間20トランザクション範囲内ならば無料で利用できます。 今回登録に必要な手順は特にありませんでしたが、MicrosoftAzureのアカウントを持っていない場合はもしかしたらここで作成が必要かもしれません。

f:id:s2terminal:20170219134135p:plain

「Key」を表示してsecrets.ymlに記載しておきます。

development:
 azure_computer_vision_api_key: XXXXXXXXXXXXXXXXXXXXXXXXXXX

Cognitive Services APIs ReferenceRubyのサンプルコードがあります。 これを参考にして、APIを叩きタグ情報を保存するコードを記述します。

      # リクエストの生成
      uri = URI('https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze')
      uri.query = URI.encode_www_form({
        'visualFeatures' => 'Tags',
        'language' => 'en'
      })

      http = Net::HTTP::Post.new(uri.request_uri)
      http['Content-Type'] = 'application/json'
      http['Ocp-Apim-Subscription-Key'] = Rails.application.secrets.azure_computer_vision_api_key
      http.body = { url: @vision.url }.to_json
      response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |client|
        client.request(http)
      end

      # レスポンスの加工
      json = JSON.parse(response.body)
      raise json["message"] if response.code != "200"
      json["tags"].each{|tag|
        vision_tag = @vision.vision_tags.build(name: tag["name"], confidence:tag["confidence"])
        vision_tag.save
      }

あとは、この情報を表示するViewを定義すれば完成です。

<% if @vision %>
  <img alt="<%= @vision.url %>" src="<%= @vision.url %>" class="vision_image">
  <ul>
    <% @vision.vision_tags.each do |tag| %>
      <li><%= "#{tag.name} (#{tag.confidence})" %></li>
    <% end %>
  </ul>
<% end %>

詳細はGitHubのコミットログにあります。

デプロイ

このRailsアプリケーションは、アップロードした画像(/uploads/以下)がマイクロソフトからアクセスできるような環境に配置する必要があります。localhostとかでは動作しません。

個人用途のため全IPからアクセス許可するのは嫌だったので、マイクロソフトからのアクセスに絞ります。 noindexを付けて一瞬だけ3000番ポートを全体公開し、$ rails sでアプリケーションを起動し$ netstat -ant | grep 3000$ whoisAPI使用時にアクセスが来るマイクロソフトIPアドレスを調べました。

結果、「13.104.0.0/14,13.64.0.0/11,13.96.0.0/13」に対してアクセスを許可すれば利用できるようでした。 なんか広すぎるのでもう少し絞りたいのですが、今回は特に機密な要件ではないのでこれくらいで進めます。

今回IDCFクラウド仮想マシンを使っていたので、ソースIPのファイアウォールでアクセスを許可すればOKです。

f:id:s2terminal:20170219134258p:plain

完成

試しにゴリラの画像を使ってみると

f:id:s2terminal:20170219134852p:plain:w200

「mammal(哺乳類)」「animal(動物)」「primate(霊長類)」「ape(猿)」といったタグ情報が得られました。 ズバリ「Gorilla」とは出てこなかったものの、かなりの精度で解析されていることがわかります。

また、信頼度は低いものの「close(接近している)」「staring(見つめている)」といった微妙な表現も得られました。

知らなかったのですが<input type="file">スマホから直接カメラを起動して写真をアップロードできるようなので、こんな単純なソースコードでも割とそのまま使い物になって結構面白いです。

f:id:s2terminal:20170219140706p:plain:w200

まとめ

Azure Computer Vision APIを使うことで、画像にタグ付けを簡単に実現できました。

耕友会コンサート2017に行ってきた

f:id:s2terminal:20170212093640j:plain

2月11日 第八回耕友会コンサート「明日に向けて」に行ってきました。

第一部

  • Gaia Philharmonic Choir
    • 千原英喜 作曲「おらしょ」
  • Avis Libera&Ensemble Gione
    • 松下耕 作曲『Tota pulchra es』
    • 松下耕 作曲「愛し続けていることを」より『気づいた』
  • The Ladies' Vocal Artists Antheia
  • レディースシンガーズSophia
    • Orlandus Lassus作曲『IN PACE』
    • 松下耕 作曲『光が』
    • Francis Poulenc(プーランク)作曲『Ave verum corpus』
    • 松下耕 作曲『あわ雪』『そらまめ』
  • 休憩(15分)
  • インターカレッジ男声合唱団Voces Veritas
    • Kodály Zoltán(コダーイ)作曲『Fölszállott a Páva』
    • Eric Whitacre(ウィテカー)作曲『Lux Aurumque』
    • 松本望 作曲「天使のいる構図」より『V. Finale』
  • みなみ野キッズシンガーズ
    • 長崎県わらべうた『たばこ一本落とした』
    • 東北地方わらべうた『ほたるこい』
    • Charles Francois Gounod(グノー)編曲『Ave Maria
    • 松下耕 作曲『わたしたちは花となり』
  • Brilliant Harmony
  • 合同演奏

前半は全体的に女声合唱が多かったです。(混声1、男声1、あとは女声と同声)

第一部第一曲目からしてガイアの「おらしょ」という、まあ大変な曲順だったのですが、続く団も負けず劣らずの名演を繰り広げていました。 結成から数ヶ月とかの団体もあったり、4歳のお子様もいる児童合唱団もあったのですが、どの団体もそれを思わせない演奏は流石でした。

演奏曲目の字面だけ並べると強烈なインパクトを放っている『牛丼屋夜間アルバイト』Brilliant Harmony第26回コンサートで初演された曲です。私も初演を聴いたのですが、まさに名演再びという感じ。 当時はちょうどすき家のワンオペ問題がタイムリーに問題に上がっていたこともあり大変な話題を呼びましたがそれとは関係なく、また別の視点から社会の闇にスポットを当てた大作です。

ちなみに超余談ですが、初演当時問題に上がっていたすき家はその後業務改善により業績回復したとのことです。良かったですね。 昼飯は勝どき駅前の松屋でしたが。

toyokeizai.net

第二部

  • インターカレッジ女声合唱団Voces Fidelis
    • Kodály Zoltán(コダーイ)作曲『Esti dal』『Ëgyetëm,bëgyetëm』『Angyalok és pásztorok』
    • 松下耕 作曲 4つのモテットより『Haec dies』
  • Chamber Choir VOX GAUDIOSA
    • Meredith Monk(メレディス・モンク)『Panda ChantⅡ』『Other Worlds Revealed』『Travellers4 /Churchyard Entertainment』
  • Voces Dulcis&Lucis
  • 休憩(15分)
  • 東京レディースコンソート”さやか”
    • Raymond Murray Schafer(レイモンド・マリー・シェーファー)作曲『Ariana’s Lament』『Lu-li-lo-la』
  • Collegium Cantorum YOKOHAMA
    • 高田三郎 作曲「内なる遠さ」 より『飛翔-白鷺』『燃えるもの-蜘蛛』『己れを光に-深海魚』
  • TAIWAN台湾耕友会
  • 合同演奏
    • 松下耕 作曲『Cantate Domino in B♭』

これだけ様々な団体がありながら団によって演奏に様々な味があるので、次はどんな歌声だろうかとわくわくしながら聴いていました。 耕友会は同じ松下耕を音楽監督に置きながら、一貫している音づくりと、団によって変えている部分と、あるように思います。

一貫していると言えば、「言葉を大切にしている」とコンサート中にも何度か案内されていましたが、それを強く実感したのが台湾耕友会の演奏。 『今、ここに』という言葉が非常に重要な曲を選んでおきながら、日本人が聴いても全く違和感のない(むしろ日本人でありながら日本語に聞こえない演奏を何度も聴いたことがあります)演奏に仕上がっていました。 この実力はさすが。

その対極に位置するのがガウディのモンクだったと思います。 歌詞だとか、旋律とか、そういったものから一段抽象的な世界に昇華した「声」の演奏を楽しむことができました。 言葉を突き詰めた先にあるのが歌詞の無い合唱というのが、また面白いですね。 (もしかしたら何かものすごい深い意味のある言葉なのかもしれませんが)

第一部、第二部ともに、クロージングの合同演奏は150人超の大人数による演奏で、凄まじいパワーがありました。 少ない団体でも10人はいた覚えがありますが、やや少人数から超大人数まで様々な演奏を、すべてハイクオリティで聴くことができて幸せでした。

その他

耕友会はチラシやパンフレットも相当こだわっていて毎回楽しみにしているのですが、今回は特にWebサイトが素敵でした。

「明日に向けて」 | 第八回耕友会コンサート

私は仕事柄Webサイトの出来はめちゃくちゃ気になるのですが

などと、結構イマドキの技術を持ったプロが作っている事が垣間見えます。

バックエンドの技術を見ても、エックスサーバー上にWordPress(CMS使うまでもない気はしますが)を載せていたり、「kc8.koyukai.info」という恐らくこの演奏会専用であろうサブドメインを切っていたりと、ちゃんと作られていることがわかります。 SSL取っていれば完璧でしたが。

シンプルですが、チラシと同じくらいこだわって作ってある事が伺える素敵なWebサイトです。

アンケートについて

f:id:s2terminal:20170212163651j:plain:w120

会場では普通に紙のアンケートが配られていたのですが書き忘れてしまいました。 なので、こうしてブログに感想を書いてTwitter広告でも打って、SNSと金の力で解決を試みます。

さてうまくいくでしょうか。ちゃんと関係者様各位に届きますでしょうか。

なお集計担当者様のもとまでたどり着くことが出来たときのために書いておきますが、当方この演奏会は耕友会公式のfacebookページにて知りました。 チケットの価格設定については東京までの旅費に比べると誤差みたいなものなので何とも思いません。むしろ関西とかで開催してくれると嬉しいです。

その後

そのまま1泊して、パナムジカフェア開催中のヤマハ銀座店に遊びに行きました。 おわり。

【ポケモン サン・ムーン】パーティのQRコードを公開してみた

先日、QRレンタルチーム機能がオープンしました。 せっかくなので、自分のパーティも公開してみました。価値はとくに無いですが。

f:id:s2terminal:20170205103311p:plain

特性/持ち物 性格/努力値
スターミー
しぜんかいふく
@こだわりメガネ
おくびょう
CS252 H4
ハイドロポンプ
サイコキネシス
れいとうビーム
10万ボルト
バシャーモ
かそく
@クサZ
ひかえめ
B228 C252 S28
だいもんじ
きあいだま
ソーラービーム
にほんばれ
モジャンボ
ようりょくそ
@いのちのたま
やんちゃ
H140 A252 S116
リーフストーム
じしん
はたきおとす
せいちょう
ベトベトン
くいしんぼう
@バンジの実
いじっぱり
AS252 H4
ダストシュート
はたきおとす
ストーンエッジ
かわらわり
ムクホーク
いかく
@ラムの実
ようき
AS252 H4
ブレイブバード
インファイト
でんこうせっか
とんぼがえり
ジジーロン
ぎゃくじょう
@オボンの実
ひかえめ
HC252 S4
ハイパーボイス
だいもんじ
へびにらみ
ひかりのかべ

ちなみにこのパーティのレーティングバトルの勝率は30%です。 レートの道は厳しいです。

解説

バシャーモがパーティの軸です。特殊型です。

もともと第5世代でたまたま手に入れた加速アチャモ(※当時は孵化厳選不可能だったので貴重)が性格ひかえめで、なんとか活用できないかと考えたのがこの特殊型でした。

f:id:s2terminal:20170205121043j:plain

初手に出して流し際に日本晴れを決めて、草のジュエルをもたせたソーラービームで、受けに来たヤドランとかを吹き飛ばす型でした。 ブルンゲルとかは1発で落とせませんが、晴れ下ならばC無振りハイドロポンプを耐えたりしたので2発目を叩き込めました。のろわれボディが発動しなければ。

日本晴れを決めなければ物理型の劣化であるため第5世代当時はネタでしたが、第7世代ではクサZが使えるので晴れ下でなくとも一発だけソーラービームを報いることができ、いくらか実戦で使えるのではないかと思います。 Bに振って鉢巻マリルリアクアジェット確定耐え調整にしていますので、対面から勝てます。

他のポケモンは、ベトベトンはかげうちが欲しいのと、ジジーロンは使い方が分かりません。

【Azure】ブラウザ上から直接SQL実行してみた

先日、Azure SQL Databaseに『クエリ エディター』という機能がパブリック・プレビューで公開されました。

Public preview: Interactive query experience for SQL databases

A new lightweight T-SQL editor within the Azure portal is available for all Azure SQL databases

AzureポータルのWeb画面上からAzure SQL Databaseに対して直接SQLが打てるようです。

さっそくやってみましょう。 「SQL Database」を選んで「クエリエディター」に入り、ID/Passを入れればSQLを実行できます。おわり。

f:id:s2terminal:20170129134149p:plain

先日の記事で使ったクエリを投げてみます。

SELECT 
  DATEPART(YEAR, tweet_datetime) AS year,
  COUNT(*) AS 'ツイート総数',
  SUM(retweets) AS 'リツイート総数',
  SUM(favorites) AS 'いいね総数',
  SUM(impressions) AS 'インプレッション総数'
FROM tweets
WHERE tweet_datetime >= '2014-01-01'
GROUP BY DATEPART(YEAR, tweet_datetime)
ORDER BY DATEPART(YEAR, tweet_datetime) DESC;
YEAR ツイート総数 リツイート総数 いいね総数 インプレッション総数
2017 18 76 176 45,467
2016 223 1,235 2,073 749,193
2015 308 1,700 2,624 863,824
2014 340 2,165 3,147 307,440

入力中の日本語が表示されないなど若干の不自由がありましたが、日本語を含むクエリの実行自体は普通にできました。 レスポンスも良好です。

SQL DatabaseはVisualStudioさえあれば便利なのですが他に良いGUIクライアントがなかなか見つからず…。 特にChromebookや容量が少なくVisualStudioを入れていないWinノートから繋ぐ場合は不便でした。

このクエリエディターあれば、SQL Serverのクライアントが無い環境からでも直接SQLが実行できます。