360度映像(VR)アプリ「かどぱん」、リリースしました

春頃から課外活動でこそこそ作っていたVRアプリがリリースされました。

街かどで、しょくぱん少女に出会いたい。 <2.8次元VRアプリ>
「かどぱん」 2.8次元VRアプリ

「アニメにありがちな美少女との青春ドキドキハイライトシーンを擬似体験できる学園ものVRショートドラマ」

ということで、秋葉原のメイドカフェ「ぴなふぉあ」のメイドさんのみなツさんと曲がり角でぶつかれるアプリです。

kadopan_icon

Android版
https://play.google.com/store/apps/details?id=ws.totoro.android.kadopan

iOS版
https://itunes.apple.com/jp/app/id1146196718?mt=8

ヘッドホン(イヤホン)の利用は強めに推奨。
あとはハコスコなどがあればよりよいですが素手でも楽しめます。

今回、映像には私はノータッチでアプリ開発を担当。
開発はUnityで。
iOS版のコンパイル時にARC問題で悩む、という今時でないハマりポイントはありましたがそれ以外はだいたいクロスOS開発ができました。

技術的にもう少しいじってみて(2眼対応とかGearVR対応とか)、その後コンテンツ追加版(こちらは有料の予定)を出そうと思っています。
実はコンテンツはもう出来ているので開発いそがねば。

Read More

みるボックス(MilBox)をさわってみる

ハコスコで何がイマイチってゴーグルの中に下から指をつっこんでタップする操作感。

そしてハコスコDXでは指をつっこむ穴すらない.

dx_01

頭に固定しているからシェイクを使えるわけもなく。
と言うところでいろいろ考えていたところに渡りに船で発売されたのがMilbox.

Milbox | VR Platform for Creators

IMG_0293

右側にシンプルな端子が出ているハコスコ派生ゴーグル。
これでスクロール、スワイプ、タップができるようになる(らしい)。

早速Amazonで購入。
2700円。段ボールハコスコの中ではダントツでお高い。

Milboxたる端子はフィルムに印刷されたシンプルな回路。
IMG_0294
この回路の左上がゴーグルの中でスマホの画面に接触して指の静電気を伝える。

有料のパックマンゲームと、無料のいくつかのサンプルアプリが公開されている。

無料のを入れて試してみるも全然反応しない。
スワイプするとかろうじて途中タップと認識されるくらい。
段ボールにフィルムを貼って曲げろ、と書いてあるがフィルムに全然粘着力がなくて箱に貼れない。曲げるとすぐに浮いてしまう。
不良品かも知れないと思って製造元に問い合わせるも「そういうもんだよ」というツレない答え。

えー、まじですか。

Unity用のSDKが配布されているので気を取り直して触ってみる。

Milbox Touch | みるボックスタッチ

「MilboxTouch SDK for Unity およびデモ」と書かれているのだがデモが見当たらない。「Get Started」がチュートリアルになっていなくてよくわからないのでSDKのソースを見ながら動かしてみた。

ごく簡単なテストプログラム(for Unity5)。
これを触っていると、画面に対して
横方向に長いスワイプ → スクロール
横方向に短いスワイプ → スワイプ
タップ → タップ
と認識されているようだ(フィルム見たまんまだけれど)。

SDKはちゃんと出来てる。
でもやっぱりみるボックスと組み合わせると動かない。
動作対応機種筆頭のiPhone6で試しているのに!

フィルムだけ引っ張り出して試してみる。
Webページをスクロールする、というシンプルなところでいろいろ実験。

かなり頑張ってみるも、スワイプは全く安定せず時々まぐれで出来る以外は動かない。
まぐれというのはスワイプのしかたと言うよりは美味く端子が画面に触れたとき、と言う印象。
押しつければよいというものでもなく。
やはり使い物にならず。
これはハードウエアの完成度の低さか根源的な問題か。
完成度敵にはKickstarterのマイナープロダクトかそれより低いくらい。

Milboxでやりたいことたくさんあるんだけどなぁ。
2700円も投資したのでなんとか動かしたい。
精度を高めたフリーアップデート強く望む。

Read More

Xcode7 betaでの”can’t open file”

iOS9対応のためにXcode7のベータ版で作業する日々。

cocoapodを使っているプロジェクトでビルドすると以下のエラーが。

error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: can’t open file: /Users/(snip snip)/Build/Products/Debug-iphonesimulator/Familiar.app/FrameworksAlamofire.framework/Alamofire (No such file or directory)

Alamofireがswift2に対応してないのが原因かと思いgithubのブランチを設定し直して再度 pod installしてbuild.

Podfile

source ‘https://github.com/CocoaPods/Specs.git’
platform :ios, ‘8.0’
use_frameworks!

pod ‘Alamofire’, :git => ‘https://github.com/Alamofire/Alamofire.git’, :branch => ‘swift-2.0’

しかしエラーは消えず。

beta5になっても、現在最新のbeta6になっても直らないので諦めていたが、今日、理由が分かってエラーをとくことができた
原因は、プロジェクトのpathにスペースが入っていたこと。
親フォルダが”iOS Project”となっていたのでshellがライブラリを見つけられずにコケていた。
プロジェクトを移動したら直ったのでなんでだろうと思って調べた。

いまどきこんなバグ。。
早く直してくれい、Apple.

Read More

epubcheckのラクな動かし方 for MacOSX

epubcheckのラクな動かし方 for Windows 7 : 見て歩く者 by 鷹野凌
epubcheckのラクな動かし方 for …


こちらの記事を読んで、Mac版を書いてみます。(といってもほとんど反則技だけれど。)

手元のリーダーで動いても、仕様からずれていると他のリーダーでエラーしてしまう可能性がある。
たまたま動いても安心してはいけないのだ。??

パッケージングしたEPUBが仕様通りに作れているかを確認するためにIDPFが公開しているのがEPUB Valiator.

EPUB Validator (beta)


ここにEPUBファイル(コンテナ)をアップロードすると、該当箇所と共にERRORやWARNINGを出してくれる。
この指示に従って直していくと、綺麗な(Validな)EPUBファイルを作ることができる。
さらには、テストの前にValidatorかけておくとテスト/デバッグの手間を大分減らしてくれる。?

ただし、上のエントリに書かれているとおりこのサービスでチェックできるのは10MBまでのEPUBファイル。
それ以下の容量のファイルでも普段使いにはこのサービスは遅いし手間がかかる。

というわけで、上のサービスの中のプログラムが配布されている。

epubcheck

?Javaのプログラムで、チェッカーをローカルで動かすことができる。
これをWindowsで動かせるように設定しているのが上の記事。

Mac OSXの場合はどうするかというと、OSXにはjavaが入っているので(Javaの知識があれば)同様の手順で動く。
が、ちょっと面倒。

App StoreにGUIが付いた物が売っている。

ePub Checker App
カテゴリ: ユーティリティ
価格: ¥170

?

チェッカー自体の中身はまるまる一緒。
epubファイルをドラッグ&ドロップで投げ込むとERRORやWARNINGを表示してくれる。

EPub Checker

有料(170円)アプリだけれど、設定している手間を考えたら悪くない投資。?

EPUB ValidatorにしろepubcheckにしろePub Checkerにしろ、アルゴリズムは全部同じ。
なかなか優秀で細かいところを見逃さずに指摘してくれる。
とはいえ細かいバグはちょこちょこあっていらないWARNINGを出しまくったりするので、信じ切ってあまり神経質に修正しなくて良いです。
ほどほど、で。?

Read More

バージョンの競合でAdobe 製品のインストールが出来ない

Flash Builderのバージョンアップ(4.5 → 4.7)をしようとしたら、エラーが出てインストールできなくなってしまった。

インストーラを起動すると、

Adobe Flash Builderと競合するバージョンまたはプレリリースバージョンが、このコンピューター上にあります。競合するバージョンがある場合は、インストールする前に現在のメディアから削除する必要があります。

とのこと。
しまった、Adobeはアプリをゴミ箱に捨ててはいけないんだった。
アプリの中にuninstallerが入っていたのだった。
と気付いたときにはゴミ箱をからにしてしまっていたので、後の祭り。
おそらく何らかの設定ファイルか何かが残っていてそいつを検知しているのだろう。
問い合わせようにも年末年始でサポートやっていないし、と言うところで昨年末に途方に暮れていた。

今日、やっぱりFlashBuilderが使えないと不便なのでなんとかインストールする方法がないかと考えていた。
ふと思い立ってuninstallerが落ちていないか探していたら、見つかった。

Adobe – Adobe Creative Suite Cleaner Tool
このCleanerで前のバージョン(4.5)を完全にアンインストールできればサラから4.7をインストールできそうだ

ダウンロードして起動すると、消したはずのFlash Builderがリストアップされている。

Adobe Creative Suite Cleaner Tool 2

ここでFlash Builderを選択して「選択したファイルをクリーンアップ」ボタンをクリックすると中途半端に削除してしまったFlash Builder4をキレイに消してくれる。

これが終わったら気を取り直して最初から4.7のインストーラを起動してみると、無事に起動した。

Adobe Flash Builder 2

これで後は購入した4.7のシリアルキーを入力すれば問題なし。
あぁ、つまらないところではまったものだ。

※アンインストーラのご利用は自己責任で。

Read More

ブラウザからスマートフォンのバッテリの残量がわかるAPIがWebKitに実装されたらしい

世間では常識でbmが知らなかっただけ、という可能性大だけど・・

W3Cの Device APIにバッテリの消費量を取得する Battery Status API があるらしい

Battery Status API
This specification defines an API that provides information about the battery status of the hosting …

ドキュメントのステータスは Working Draft。
勧告までにはまだいろいろ替わりそうだが軽く予習。

概要

タイトルでは「スマートフォン」と書いたが、introductionには

The Battery Status API specification defines a means for web developers to programmatically determine the battery status of the hosting device.

とあるのでPCにも実装されるかも。

サンプルとしては、JavaScriptで定期的にメールを見に行くのはバカなのでBatteryManagerとうインタフェース(API)をつかってバッテリーの残量が少ない場合はメールを読みに行く間隔を広げましょう、というスクリプトが掲載されている。

var battery = navigator.battery;
battery.addEventListener('dischargingtimechange', function () {
if (battery.dischargingTime < 60 * 30 || battery.level < 0.1) {
mail.setTimer(mail.INTERVAL_BATTERY_LOW);
console.log('30 minutes remaining or level below 10%, checking the server less frequently.');
} else if (battery.dischargingTime < 60 * 10 || battery.level < 0.05) {
mail.setTimer(null);
console.log('10 minutes remaining or level below 5%, stop checking the server.');
}
}, false);
battery.addEventListener('chargingchange', function () {
if (battery.charging) {
mail.setTimer(mail.INTERVAL_DEFAULT);
console.log('Battery is charging, checking the server normally.');
}
}, false);

このあたりが心臓部。
イベントドリブンで残り寿命30分以内若しくは10%の場合は10分おきに、残り寿命10分以内若しくは5%の場合はメールの取得を中止する、と。

Classは2つ

NavigatorBatteryBatteryManager .

基本的にはNavigatorのインスタンスからBatteryManagerのインスタンスを取得して、その値を読んだりイベントを登録したりするだけ。

BatteryManagerの取得

var battery = navigator.battery;

BatteryManagerのプロパティの取得

例)バッテリレベルの取得

console.log(battery.level);

プロパティは以下の通り

readonly attribute boolean   charging;	//充電中か否か
readonly attribute double    chargingTime; //バッテリがフル充電されるまでの時間(単位:秒)バッテリがないデバイスやフル充電時は"0"
readonly attribute double    level; //バッテリの残り割合 0.0(空っぽ)〜1.0(フル)
readonly attribute double    dischargingTime; //バッテリの残り寿命(単位:秒) 充電中は+無限大

BatteryManagerへのイベントハンドラ登録

例)

 battery.addEventListener('dischargingtimechange', function () { bra bra bra});

イベントは以下の通り

attribute Function? onchargingchange;	
attribute Function? onchargingtimechange;
attribute Function? onlevelchange;
attribute Function? ondischargingtimechange;

ドキュメントにイベントの説明なし。ハンドラ名から押して測るべし。

実際のサンプルコードは元ドキュメント参照

はやくMobileSafariに実装されないかしら。

Reference:
Surfin’ Safari – Blog Archive ? Last week in WebKit: Battery Status API and form updates

Read More

MacOSX homebrew update error

MacOSXで久しぶりにhomebrewをアップデートしようとして
$brew update
したら以下のエラー。

Error: Failed while executing git pull origin refs/heads/master:refs/remotes/origin/master

git pullが出来ない、と。
試行錯誤して以下の対応で直った

shin$ cd /usr/local/
shin$ git add .
shin$ git stash
Saved working directory and index state WIP on master: a0b940a Check Cellar can be made before installing stuff
HEAD is now at a0b940a Check Cellar can be made before installing stuff
shin$ git reset --hard
HEAD is now at a0b940a Check Cellar can be made before installing stuff
shin$ brew update
Updated Homebrew from a0b940ac to e562953f.

Read More

LoopVideo for iPad update 1.2.1 (support for iOS5)

LoopVideoをアップデートしました。

新しいバージョンは1.2.1。
主なアップデート内容は
・iOS5対応
・一度に大量の動画をアップロードした後に起動した場合、起動の途中で終了してしまう不具合の改善
です
今までの1.2ではiOS5でビデオが表示されない問題がありました。
原因はビデオの再生速度コントロール周りで、iOS5のバグに起因するものです。
そのため、LoopVideo1.2.1では、応急処置として
・iOS4.3.5以前では再生速度コントロール機能有り
・iOS5(9A334)では再生速度コントロール機能無し
になります。
iOS5のアップデートでバグが直り次第、再生速度コントロール機能を復活させたいと思ってます。

(さらに…)

Read More

MacFUSE on Lion

OSXのバージョンアップで毎回悩みの種なのがFUSE。
MacFuseが最近はあまり開発されておらず放置状態なので、特に64bit環境ではうまく動かない。
Lion発売直後にアップデートした際、MacFUSEが動かなかったのでにOSXFuseをいれたらマウントしてファイルの読み込みはできるが書き込みができず。
FUSEの有り無しでだいぶ効率かわるので手放せず。
気がついたらあたらしいポートプロジェクトが出ていて、64bit LIONで動いたのでメモ。
Official Wuala Blog.: Wuala for OS X Lion
インストールしてみると、MacFUSE 2.1.15という扱いだった。
助かった。

Read More

MAMP with homebrew 2

前のエントリ bmblog: MAMP with homebrew に引き続いてPHPのインストール。
PHPはあらかじめFormulaが用意されていない。
が、野良のFormulaがあるのでそれを元にインストールしてみる
インストール

$ brew install https://raw.github.com/adamv/homebrew-alt/master/duplicates/php.rb --with-mysql --with-pgsql --with-apache --with-intl

足りないconfig optionはここで追加する。
gettextなど依存しているパッケージをいくつか入れるので、多少時間がかかる。
CLIの実行のためのPATHの追記
普通にコマンドラインからphpを実行するとOSXにプリインストールされているphpを呼んでしまう

$ which php
/usr/sbin/php

そのため、PATHを書き換える
~/.bash_profileに以下を追記

export PATH=/usr/local/bin/php:$PATH
$ which php
/usr/local/bin/php
$php -version
PHP 5.3.8 (cli) (built: Sep  5 2011 15:43:55)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

httpd.confへの追記
apacheからPHPを呼ぶようにhttpd.confを修正
/usr/local/Cellar/httpd/2.2.20/conf/httpd.conf に以下を追記

LoadModule php5_module    /usr/local/Cellar/php/5.3.8/libexec/apache2/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

apacheに設定ファイルを読み込ませる

$ /usr/local/Cellar/httpd/2.2.20/bin/apachectl graceful
httpd: Syntax error on line 285 of /usr/local/Cellar/httpd/2.2.20/conf/httpd.conf: Cannot load /usr/local/Cellar/php/5.3.8/libexec/apache2/libphp5.so into server: dlopen(/usr/local/Cellar/php/5.3.8/libexec/apache2/libphp5.so, 10): Symbol not found: _ap_loaded_modules\n  Referenced from: /usr/local/Cellar/php/5.3.8/libexec/apache2/libphp5.so\n  Expected in: /usr/local/Cellar/httpd/2.2.20/bin/httpd\n in /usr/local/Cellar/php/5.3.8/libexec/apache2/libphp5.so

エラーが出て、PHPがアクティブにならず。
その後いろいろ試すもこのエラーが消えず。
apacheを同じソースから手でコンパイルして見たらうまくいったので、原因はphpでなくapacheにある様子。homebrewがコンパイル時に何か悪さをしているようだ。
apacheを手でコンパイル
homebrewがダウンロードしたソースは
~/Library/Caches/Homebrew
にキャッシュされている

$ cd ~/Library/Caches/Homebrew
$ tar xvzf httpd-2.2.20.tar.gz
$ ./configure -enable-shared=max --enable-rewrite --prefix=/usr/local/Cellar/httpd/2.2.20
$ make
$ make install

でコンパイル。
httpd.confを上述のように書き換えたら無事に起動し、phpも実行された。
homebrewさんお手製のhttpdの何が悪いのかは、後日調査。

Read More