Android端末での動作確認

 Android用アプリ開発に気が乗らない理由の1つとして、所持している試験用端末が少ない(IS04とKindle Fire HDのみ..)、というのがあった。3Dのアプリの場合、OSバージョン,CPU,メモリ容量,解像度だけでなくGPUの違いも気になるところで、シミュレータなどでは確認が出来ない。(Adreno, PowerVR, GeForce, Mali, etc)

ところが最近「Remote TestKit」という便利なサービスがあるのを知った。
これはAndroid端末のリモートレンタルサービスで、非常に安価で使うのも簡単。
価格は1時間945円。30分単位で1機種借りることができる。
10機種を30分ずつ合計5時間借りるとしたら、4725円。

使い方は、まずクライアントソフトをWindowsかMaxにインストールして、端末一覧から使いたい端末を選んで"レンタル"を選択。するとその端末の実機画面が表示されるので、OSのメニューから自分のアプリapkを選んでインストールする。これだけ。エミュレータの感覚で操作できる。
端末の"設定"が使えない、カメラに何も表示されない、センサー類が使えない、表示がなめらかで無い、などアプリによっては致命的な問題はあるけど、今の自分にとって夢のようなありがたいサービスだ。

Googleリーダーからの引越し

 久々の更新。

Googleリーダー終了のタイムリミットが迫って来たので、泣く泣く引越しすることにした。いくつか候補があるうちで一番評価の高そうなFeedlyにしてみた。
設定を変えればかなりGoogleリーダーに近い表示に出来る。慣れれば使いやすそう。
自前のサーバで動かすTinyTinyRSSというのも試してみたい。

Unityで2Dボーンアニメーション

 Unityで2Dのボーンアニメーション(スキンメッシュアニメーション)を試してみた。

標準の"Animation"でも一応アニメーションは可能だが、多関節を動かすのはかなり気合が必要なので、以下のようなツールを使う方が現実的みたい。
  ・SmoothMoves:$75
  ・EasyMotion2D:$55
  ・OPTPiX SpriteStudio:99,750円

SpriteStudioは独立したWindowsアプリで、日本語化されているし実績もあり使い勝手が良さそう。cocos2dなどにも使える。ただ、アトラス化の機能が無い(既存のアトラス画像を読み込んで手作業でパーツ分けする必要がある)ことと、とても高価なことがネックだ。
それに比べてSmoothMovesとEasyMotion2DはどちらもUnityのAssetStoreで購入できて、比較的安価。このうち評価が良かったSmoothMovesを使うことにした。

大まかな手順は、
  1.パーツ画像をまとめたアトラス画像を作成
  2.アニメーションを作成
  3.シーンへ配置
という流れ。

まずはアトラス作成。
メニュー"SmoothMoves"→"Create Asset"→"Texture Atlas Data"で、Projectウインドウ内にアトラスデータを作成する。そのデータを選択してInspectorに表示されている"Open Atlas Editor"をクリックすると、エディタが起動する。そこに事前にUnityに取り込んで置いたpngなどのパーツ画像をまとめてドロップ。それぞれのパーツの関節の位置を指定する。

"Rebuild Atlas"をクリックするとアトラスのテクスチャとマテリアルが作成される。画像が汚くなる場合は、テクスチャのFormatを"Compressed"から変更すると良い。


次にアニメーション作成。
メニュー"SmoothMoves"→"Create Asset"→"Bone Animation Data"で、Projectウインドウ内にアニメーションデータを作成する。そのデータを選択してInspectorに表示されている"Open Animation Editor"をクリックすると、エディタが起動する。同時に開かれるWelcomeウインドウはすぐ閉じていい。

最初は何をやるのか全く分からないけど、慣れると簡単。
まず左下のボーンヒエラルキーでボーンの空データを作成する。次に右下のAnimation Clipsで新規クリップを作成する。ここで初めてタイムラインが表示され、0フレーム目に空のキーフレームが作成される。
このキーフレームをクリックすると上にボーンの情報が表示される。まだテクスチャと紐付けされていない。左上で、Typeを"Transform Only"から"Image"に変更して、Atlasに先ほど作成したアトラスを指定すると、すぐ右側にテクスチャリストが表示されるので選択する。そして右側で大きさ、位置、回転、前後関係(Depth)などを調整する。この作業をボーン数分行う。

ここからアニメーション付け作業。今回は、0フレーム:棒立ち、10フレーム:バンザイ、20フレーム:棒立ち、というシンプルなアニメーションを作る。
0フレームは既に出来ているので、10フレーム目の縦一列を選択して、右クリックで表示される"Duplicate First Keyframes"を実行。すると0フレームがコピーされるので、各ボーンの位置や回転などを操作して動きを付ける。20フレームにも0フレームをコピーする。

Animation Clipsの"Once"を"Loop"に変更して、画面上の三角の再生ボタンで動きを確認する。問題なければ画面を閉じて終了。

最後にシーンへの配置。
サンプルアプリを見ると凄く複雑な構成で悩むけど、実はすごく簡単。
メニュー"SmoothMoves"→"Create GameObject"→"Bone Animation"でHierarchyウインドウ内にアニメーションを配置する。InspectorのAnimation Dataに先ほど作成したアニメーションをドロップする。そして"Open Control Panel"を押して一回SmoothMovesのコントロールパネルを開いてすぐ閉じる。なんかこれをやっておかないと駄目みたい。

この状態ではまだ空のGameObjectだけど、最初の実行時に自動的に何かの処理が走って配下に色々なオブジェクトやコンポーネントが作成される。これで完了。アニメーションが大きすぎる場合は、スケールを変えるかカメラの位置やサイズを調整する。

ちなみにこのGameObjectは標準のAnimationコンポーネントを持っているので、以下のようなコードで任意のタイミングで再生したりアニメーションを変更できる。
    gameObject.animation.Play("Walk");

動作するWebサンプルはこちら

問題点。
全て同じマテリアルなのに何故かDrawCallがキャラクタ数分になっている。どうやらスキンメッシュはDynamicバッチが効かないらしい。1つのアニメーションで複数のアトラスを使用する場合はさらに増大することになるので、注意が必要だ。


春のクワガワ

 去年の夏に家の玄関先で見つけたクワガタが無事に冬を越した。
ここまで来たらなんとか寿命まで育てたい。


キラキラシールカメラが掲載されました

 iOSアプリのレビューサイト日刊Appliv/Appliv様にキラキラシールカメラのレビューを掲載して頂きました。ありがとうございます!

Android版のご要望を何件か頂いていて、いつか対応出来ればいいなぁというゆるい目標を立てています。

Googleリーダーが7月に終了!

 今でも一番使ってるWebサービスなのに。。
Googleアカウントと紐付いてどの環境でも見れることが一番の利点だったから、ブラウザ機能やPlugin、他のWebサービスに移行するのはかなり抵抗がある。利用者減少が理由ということだけど、リーダーはもう古いんだろうか。

イベント検索サービス "eventX" を公開

 ATNDなどのイベントを検索できるWebサービス "eventX" を公開しました。
元々Scala (+Play framework)の勉強用に作り始めたもので、ある程度人に見せられる状態になってきたので公開することにしました。

以下の様な特色があります。
・ATNDβ、eventATND、Zusaar、connpass、PARTAKE、Doorkeeperの6つのイベントサービスから検索出来る。
・キーワード、月、曜日、地域での絞り込みが出来る。
・キーワードは半角スペース区切りでOR検索。
・気になるイベントに最大50件までチェックマークを付けることが出来る。
・アクセス数が少ないので今のところは高速

ぜひご利用ください。

キラキラシールカメラ ver1.1 をリリース

 修正点は以下の2つです。
- シールをリストに保存できない場合がある不具合を修正 
- 画像切り抜きの操作性を改善 
 ・拡大/縮小:ピンチイン/ピンチアウト 
 ・スクロール:2本指スワイプ

今回の改善で切り抜き操作はかなりマシになったと思います。
またリストに保存できない不具合の原因は、本体の設定で日付表示を12Hにしている場合にNSDate型のフォーマットがおかしくなってsqliteへのinsertに失敗する、というものでした。
どうもiOS6からのNSDateFormatterの挙動の変更によるもののようで、原因究明にかなり時間がかかってしまいました。


クリオネ ver1.2 をリリース

 クリオネをiPhone5の解像度に対応させました。
ただ320x480用のテクスチャを無理やり縦に伸ばしているので、画質はイマイチです。また余裕があるときに改善します。


Play framework 2.0のWebアプリ動作環境

 play warコマンドでwarファイルが作れなくなってるっぽい。
war作成Pluginがあるということは、公式では付属のHTTPサーバを推奨してるんだろうか。

このサイトによるとパフォーマンスは一番良いようだし、無理にtomcatとか使う必要もないか。

calendar
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
selected entries
categories
archives
recent comment
others
mobile
qrcode