著者アーカイブ takahashi

takahashi 著者:takahashi

ストーリーとグラフィックの”オープンソース化”を目指す異色のスマホゲーム”LayereD Stories 0″が面白い!

最近、ふとしたことで知ったゲームがあります。

ゲームのタイトルは「LayereD Stories 0」
舞台は2037年の日本。ARシステム「LayereD」が発展したことで、”イメージできることはすべて実現可能”となった世界です。
この世界では、ARをつかってどんなことも表現可能になった一方で、社会で一定数の人が”不快”を提示したコンテンツやユーザーのアカウントは一方的に削除されてしまいます。そんな中で登場人物たちがそれぞれの葛藤や信念を持ちながら、この仕組みと対峙していくようなストーリーです。

ソーシャルゲームでありながらそんな現実社会の”表現の自由”への考え方に一石を投じるようなストーリーの深さに、とても面白さを感じました。

他にもキャラクターデザインはさることながら、ゲームと本格的なCGアニメの両方をコンテンツとして公開していたりとストーリー抜きにしても力の入れ具合が半端ない印象のタイトルですが、個人的に一番注目したいのは”3Dモデルやストーリーのオープンソース化”が計画されているという点です。

バンナム、UGCを活用して新規IPを創出・育成する新プロジェクト「Project LayereD」始動! – Sotial Game Info

■創出したIPをオープンソース化! UGCを活用してIP育成
「Project LayereD」では、本IPの世界観、キャラクター設定、3Dモデルや2D画像を個人であれば誰でも自由に使える設定・素材として公開、無償提供します。お客様は簡単なライセンス表記のみで二次創作が可能で、個人利用のみならず商用利用も行っていただける予定です。IPの創出のみならず、IP育成においても積極的に二次創作を促し、お客様と一緒に「Project LayereD」を活性化していきたいと考えています。

いままでオープンソースの世界でも、創作界隈でも、”創作物のオープン化”という試みはあまり行われていない印象があります。
ましてや企業の制作物で”オープン化”される作品とは、きわめて希少ではないでしょうか。

プログラムで何か作ろうとしたとき、自分で1からすべてをフルスクラッチで書くのは、非常に大変な作業です。
しかし、オープンソースソフトウェアなどで、あらかじめベースとなるものがあれば、独自の部分だけに力を注げばよくなるので、よりいいものが作りやすくなります。

ゲームにしても物語にしても同じだと思います。1から作るというのは恐ろしい程の労力が必要です。
得意な人や、それを生業としている人は別としても、自力で一から構築していくのは簡単ではないはずです。

でも、作る際に何かベースがあれは、作りたいものをぐっと作りやすくなると思います。
この作品の世界のように、才能や技術にかかわらず、誰でも創作に参加できるような流れづくりに、こちらのゲームが一役買ってくれるのではないのかな、と感じました。

今後の展開に注目していきたいと思います。

レイヤードストーリーズ ゼロ

takahashi 著者:takahashi

HDD/SDDをLinuxで簡単に仮想化する方法

クラウドやサーバーの仮想化が一般的になった現在、物理サーバーから仮想サーバーへ移行したいという方も多いかと思います。
そんな時はLinuxを用いることで簡単に仮想化ができます。

仮想化したいストレージがあるマシンをUSBやLiveCDを使って外部からLinuxを起動します。

Gpartedなどを使って、コピー対象のデバイスファイル(/dev/sdXのような記号)を確認します。

UbuntuのLiveCDを起動した場合で、他に外部の記憶領域を一切接続していない場合、大抵内装ディスクは”/dev/sda”として認識されますが、システムや周辺機器によっては異なる可能性があるので慎重な確認が必要です。(誤ったデバイスファイルを選んでしまうと、最悪の場合データの消失につながる恐れがあります。)

対象のデバイスファイルがわかったら早速ディスクを仮想化してみます。
もし仮想化対象とは別のストレージがコピー元マシンにあり、そこへイメージを作成する場合は下記のようにします。

sudo dd if=/dev/デバイスファイル名 of=ファイル作成先のディレクトリパス bs=1M

または

sudo dd if=/dev/デバイスファイル名 bs=1M > 作成ファイルのパス(ex. /home/hoge/server_storage.img)

ディスクそのものに書き込むこともできます。(間違ったデバイスファイルを指定すると意図しないドライブやファイルのデータが消失します。)

sudo dd if=/dev/コピー元のデバイスファイル名 of=/dev/コピー先のデバイスファイル名 bs=1M

ネットワーク経由も可能です。
サーバー(コピー先)側

nc -l ポート番号 > disk.img

クライアント(コピー元側)

dd if=/dev/sdX bs=1M | nc サーバー側IP ポート番号

学生時代にOpenStackを使ってプライベートクラウドサーバーを構築した際、物理サーバーからOpenStackのインスタンスに変換する際にこの方法を使いました。

実際にOpenStack内のKVMで動作させましたが、物理サーバー同様に問題なく利用することができました。

できたイメージファイルはいろいろな仮想ディスク形式に変換可能ですので、VirtualBoxやVMWareでも利用可能のはずです。
仮想化ツールを持っていない、ディスクのバックアップを取りたい、という方は是非活用してみてください。

参考URL:
http://hogem.hatenablog.com/entry/20120204/1328355984

takahashi 著者:takahashi

WindowsへのMeltdown対策によるCPUベンチマークの変化をMSが公表。旧CPUでは著しい速度低下も。

先日、Microsoftが気になるデータを公表しました。

プロセッサの脆弱性、Microsoftの対策パッチでパフォーマンス大幅低下も – IT Media エンタープライズ

先日発覚したCPUの脆弱性 Meltdown/Spectre の脆弱性対策としてMicrosoftが公開したWindowsへの対策パッチを適用した際のベンチマークを比較したところ、IntelCPUの 第6世代にあたるSkylake以降は特に目立った速度低下はないものの、第4世代にあたる Haswell以前のIntelCPUは相当な減速が確認された、という内容です。
特にHaswellを含むそれよりも古いCPUを搭載したWindows Server機はかなりのスペックダウンが発生する可能性があるようです。

Skylakeが初めてIntelから発売されたのが2015年8月ごろになる(Wikipedia)ので、少なくともこれより前に発売されたIntelCPU、およびそのCPUを搭載したPCはすべてこのスペックダウンの影響を大きく受ける可能性があるということになります。

比較的新しいCPUでもスペックダウンの対象になってしまっているという点で、なかなかショッキングな内容です。
ちなみに、僕が現在所有しているマシンは一番新しいもので第5世代のbroadwellのマシンなので、全滅でした。

なお、LinuxOSにおいても影響が出ているようです。
CPU脆弱性Meltdownのパッチ適用でベンチマークスコアが25%低下した – Qiita

ここまで影響が大きいと、ゲーム用のマシンや企業向けサーバーなどののスペックダウンに各方面からの悲鳴も聞こえてきそうですね。
現にAWSでかなり影響が出ているという報告もあるようです。
チップ脆弱性の修正パッチが招いた、サーヴァーの性能低下という「二次災害」の深刻度 – WIRED

引き続き、Intelや各OSベンダーがさらなる対策を行ってくれることを祈ります。

takahashi 著者:takahashi

シンプルだけど新しい! 任天堂がSwitch向けに段ボール製のコントローラキットを発表

本日朝7時、任天堂が新たな製品の発表を行いました。

今度の新製品はなんと段ボールクラフトを使って、Nintendo Switchのコントローラーを拡張して新しい遊び方を出来るようにするというもの。
そして何より特徴的なのは、購入したユーザー自身が、どうやって動くのかを見ながら組み立てるという体験も一つの要素として入っているということです。

今までどの会社も「画面の中でいかにリアルな世界を構築するか・いかに面白い世界を構築するか」に力を入れてきた印象がありますが、今回は画面の外で、しかも誰でも気軽に使える段ボールを使ってゲームの楽しみ方を拡張するというアイデアで、とても斬新さを感じました。

工夫次第でどんどん遊び方が広がっていく、そんな雰囲気にワクワクするような発表でしたね。

Nintendo Labo は4/20発売予定とのことで、興味のある方は是非チェックしてみてはいかがでしょうか?

Nintendo Labo – 任天堂

takahashi 著者:takahashi

Windowsが起動しなくなった時にPCからデータを取り出す方法

以前
Windowsがおかしくなった時に試したいコマンド “sfc /scannow”
という記事を書きましたが、今回はその後の話、つまりWindowsが復旧できなくなってしまった場合の対策を紹介したいと思います。
実際はsfc以外にも回復する方法があるのですが、それらもろもろを試してもダメだった場合、初期化が必要になってきます。

幸いなことに、Windows8以降のOSではなるべくファイルを残した状態でOSを再インストールするオプションがあるので、通常はこれでほとんど治ります。

Windowsのリフレッシュ(一部初期化)とリセット(完全な初期化)は下記を参照ください。
第8回 Windows 8によるPCの「リフレッシュ」と「リセット」 – @IT
Windows10 「PCのリフレッシュ」「PCの初期化 (リカバリー)」をする方法! – Mecha log

そもそもリカバリすらできない、あるいはリカバリする前に念のためデータをバックアップしておきたい、といった場合は、HDDを取り出して正常に起動するPCに繋げるか、外部からOSを直接起動することができれば可能になります。

実は世の中にはCDやDVDから直接起動することができるOSが複数種類存在します。

もしDVDを作成する機能のあるPCを使っている場合は、Ubuntuがおすすめです。

Ubuntu Japanese Team – Ubuntu

Ubuntu 14.04 インストールDVDの作成 – 根気だけでパソコンを征服しようとする隊長の備忘録

そもそもディスクドライブがない!という方はUSBメモリへインストールすることもできます。

さまざまなOSのインストール“USBメモリ”を手軽に作成できる「UNetbootin」- 窓の社

一度OSが起動すればあとはWindowsと操作は同じです。
PCに内蔵されているHDDを開き、必要なファイルを別のUSBメモリやHDDへコピペすることができます。

詳しい操作方法はこの辺りを見ていただければわかりやすいかと思います。

Ubuntu ウブントゥでデータ救出

GUIのわかりやすい画面でファイル操作ができると、かなり安心感がありますね。
困った際は是非試してみてはいかがでしょうか?

takahashi 著者:takahashi

Siriの強力なライバル!? Googleアシスタントがかなりスゴイ!

以前、”Googleアシスタント”という(Siriのような)音声アシスタントが提供開始となったというニュースが発表されました。
対話型音声AI「Googleアシスタント」が日本語対応、Android 6.0以降で利用可能に – engadget 日本版

今までも、検索アプリから音声で検索をしたり、アプリを起動したり、音楽を聞いたり…といったこともできたのですが、Siriのような”対話型”ではなく、ただ声で各機能を呼び出すにとどまっていました。
一方Googleアシスタントでは、まさにSiriのように、対話形式で検索や機能呼び出し、リマインダーの設定なども行うことができ、かなりの機能が「声だけで操作」できるようになりました。

自分の端末でも利用できるようになったので、早速起動してみました。


Googleアシスタント初期画面



端末内の情報のかなりの部分にアクセスできるのがわかります。











Googleアシスタントができること。
初期から、かなりいろんなことができるようです。

試しに自分の名前を覚えさせてみましたw

本当に名前を覚えてもらえたのか聞いてみますw

ちゃんと覚えてくれました…!

どの音声アシスタントも声で機能の操作ができる以外にも、自然な会話ができるようにも工夫されているものが多いです。
Googleアシスタントも


自然に反応してくれます。
絵文字もつかって感情を表現していたりと、とても親しみやすさも感じますねw

ちなみに、iOSのSiriでは
「Hey, Siri」
と呼びかけると自動で立ち上がってくれますが、Googleアシスタントの場合は従来通り
「OK, Google」
と呼びかけると自動で立ち上がってくれます。(設定で有効化しておく必要あり)

普段、ちょっとした調べ物やルート案内など、キーボードを打つのがめんどくさいときや、車に乗っているときなど、スマホに直接触れないときに非常に助かりそうですね。

TVとも連動。日本に上陸する「Google Home」ができるようになること、すべて – GIZMODO

takahashi 著者:takahashi

NginxでBASIC認証をプロキシするときの注意点

今回。hamamatsu-gnss.orgのサーバー切り替えを行ったのですが、移行先サーバでサービスの再起動後何故かBASIC認証が通らなくなる問題が発生。
80番ポートはWebページとポートを共有しているので、webサーバーとntripサーバーの前にNginxを置いて、ドメインで通信を振り分けています。
旧サーバーでは問題なく動いていたのですが、まったく同じ設定をコピーした新サーバーでは、RTKLIBからntripへ401ステータスで接続できなくなってしまいました。

ちなみに直で新サーバー側のntripへ接続すると、認証も問題なく通り、ログにも異常は見られなかったので、原因がNginxなのは間違いなさそうです。

認証の要らないsourcetableはNginx経由でも問題なく表示できたため、恐らくBASIC認証の際に必要なヘッダ情報が渡せていないのだろうと推測しました。
そこでいろいろ調べてみると、参考になりそうなサイトを発見。

Nginx を認証プロキシとして使う – Docker-docs-ja

正常にプロキシするには

      proxy_pass                          http://example.com;
      proxy_set_header  Host              \$http_host;   
      proxy_set_header  X-Real-IP         \$remote_addr; 
      proxy_set_header  X-Forwarded-For   \$proxy_add_x_forwarded_for;
      proxy_set_header  X-Forwarded-Proto \$scheme;

の記述が必要だったのですが、新サーバーの設定ファイルと見比べたところ

proxy_set_header  X-Forwarded-Proto \$scheme;

の記述が抜けていることがわかりました。
この一行を追記し、Nginxをリロード、もう一度試してみると…

無事接続できました!

Nginxはプロキシする際、バックエンドへ渡すヘッダー情報を自由に指定・編集することができるので、抜けがあると今回のようなことが起きます。
Nginxでシステムを構築した際は、こういう部分も気を付けてチェックしたいですね。

いやーしかし、今回は症状がちょっと奇妙だったのでちょっとだけ焦りました…(笑

takahashi 著者:takahashi

Windowsがおかしくなった時に試したいコマンド “sfc /scannow”

Windowsの動作がおかしい、起動しなくなった時最近のWindowsでは自動で修復する機能が強化されているため、ほとんどの場合は自分で何もしなくても起動するようになります。
ただ、まれに自動修復できない形でOSが破損して起動しなくなってしまったり、起動はするけどなんかWindowsの動作がおかしい…なんて事態が発生する可能性があります。

そんな時に、確実に治る保証はないですが、初期化の前に試しておきたい方法があります。

コマンドプロンプト上で利用できる sfcコマンドです。
このコマンドは、Windowsのシステムファイルの整合性をチェックし、もしファイルの不足や破損があった場合は自動的に修復してくれるコマンドです。

既に起動中のWindowsに対して実行する場合は、まずコマンドプロンプトを管理者権限で起動します。


Windows10の新しいビルドだとコマンドプロンプトからPowerShellに変わっている場合がありますが、PowerShellでも同じ手順で動作可能のはずです。

すぐに修復する場合は

sfc /scannow

とします
ファイルのチェックが始まるので、完了するまで待ちます。

Windowsが起動しなくなり、外部(例えば修復ディスクなど)から実行する場合は、

sfc /scannow /offbootdir=修復対象のドライブ(ex. c:\) /offwindir=修復対象のWindowsディレクトリ(ex. c:\windows)
Windows リソース保護は、破損したファイルを検出し、正常に修復しました。 詳細は CBS.Log (%WinDir%\Logs\CBS\CBS.log) にあります。

Windows リソース保護は、破損したファイルを検出しましたが、その一部を修正できませんでした。 詳細は CBS.Log (%WinDir%\Logs\CBS\CBS.log) にあります。

と表示されれば、破損したファイルが修復され、Windowsの不具合が治っているかもしれません。再起動させて不具合の状態を確認します。

もし

Windows リソース保護は、整合性違反を検出しませんでした。

と出た場合ばsfc コマンドでは問題が検出されなかったということになるので、他に原因がある可能性があります。ほかの原因をあたってみてください。

Windowsがおかしくなった、起動しなくなった…となった場合でも、初期化以外に治す方法がある場合があります。
再セットアップや初期化はあくまでも最終手段と考えて、その前にいろいろ試してみると楽にトラブルシューティングができるかもしれません。

参考サイト
Windowsが起動しない時に「sfc /scannow」を実行する方法 – ぼくんちのTV 別館
コマンドプロンプトからWindowsを復旧する4つの方法 (Vista/7/8/8.1/10) – ぼくんちのTV 別館

takahashi 著者:takahashi

PHPでお手軽にセッションハイジャック対策をする方法

皆さんはセッションというのをご存知でしょうか。
各クライアント(ブラウザ)に対して、サーバーからセッションIDという一意の識別番号を発行してクライアントに保存することで、個々のクライアントを識別できるようにする仕組みです。

Webサービス上では、ログイン状態の管理や、ユーザー情報の一時保存などによく使われます。

このセッションIDですが、実態はブラウザ側にCookieとして保持されているため、もし何らかの方法で不正に抜き取られてしまうと、場合によってはアカウント乗っ取りなどをされてしまう可能性があります。
このような攻撃を一般的に”セッションハイジャック”と呼びます。

対策としてセッションIDを定期的に変更することで、こういった不正ログインを簡単に防ぐことができます。

具体的には、
“session_regenerate_id()”
関数を実行することで、セッションを維持したままセッションIDを更新することが可能です。

session_regenerate_id() – PHP.net Documentation

例えばこの関数をログインチェック時や、特定、あるいはすべてのページにアクセスされたときに実行されるようにしておけば、万が一セッションIDを盗み出されても、不正ログインされる確率が低くなります。

また、

“session_regenerate_id(true)”

とすると、セッションを切ったうえでセッションIDを再発行できるので、ログイン状態はリセット(ログアウト)されてしまいますが、よりセキュアな状態にすることも可能です。

年々、Webサービスへの攻撃手法が高度化してきていている一方で、アプリの設計などにより基本的な脆弱性が発生してしまうこともまだまだあるようです。
高度な攻撃への対策は高度な知識とテクニックが必要になることもありますが、基本的な対策は知っていればだれでも対策できることも多いので、是非押さえておきたいですね。

takahashi 著者:takahashi

Adobe LightroomなどのAdobe製品にAI “Sensei”が搭載。自動でより自然な補正が可能に。

ちょっと前の話になるのですが、先月の12月12日にAdobe Lightroom CCのWindows版、Mac版、Android版、iOS版、Adobe Lightroom Classic CCとAdobe Camera Raw(ACR)に対してアップデートがリリースされました。
今回のアップデートでプロのカメラマンによる写真を学習したAdobeのAI「Adobe Sensei」が各アプリの自動補正機能に搭載され、自動補正がより自然な仕上がりになるようになったようです。

アドビ「Sensei」で写真を高品質に–「Lightroom」の自動補正機能が強化 – CNet Japan

僕も実際に使ってみたのですが、旧バージョンでは自動補正すると必要以上に明るくなってしまったりと、やや不自然な補正になってしまうことがよくありました。
そのため、実際に使う際は、一度自動補正した後で、自分で明るさを暗めにしたり、コントラストを上げたりという操作をしていました。
しかし、今回のアップデートを適用すると、自動補正しても白飛びすることは少なくなり、確かにより自然な補正になっているように思えます。
気持ち暗めになってしまうこともあるので、完全に調整がいらないわけではないですが、自動補正だけである程度満足のいくレベルになっているので、大量の写真を現像しないといけないときは非常にありがたいですね。

Lightroom CCユーザーでまだアップデートを適用されていない方は、是非試してみてはいかがでしょうか!

Adobe Lightroom – Adobe