かたかなマスター アイウエオ 1.0

かたかなマスター アイウエオ 1.0 をリリースしました。

「ひらがなマスター あいうえお」の姉妹製品です。

 

3G回線からパケットを逃がしたい携帯キャリア

ドコモが昨年末にトラブルを起こした事で顕在化した3G回線を始めとする携帯の回線の飽和状態はどこのキャリアでも否めない問題だと思います。

私が携帯(iPhone)で使っているauの回線もやはり同じです。携帯電話各社はそれぞれにWi-Fiスポットを設けて極力通話以外のパケット通信を他へ逃がしたいようです。

あまりTVを真面目に見ていない私は「巨人の星」の星飛雄馬を起用したCMも「へ〜」という程度で流してみていました。ふと気付くと我が家のインターネット接続や固定電話で使用しているJCOMとの併用で毎月基本料金が1480円も割引になると!

勇んで近くのau shopに申し込みに行って来ました。月額基本料金が割安になるだけではなく、自宅固定電話とau携帯の通話が無料になってしまうという事を聞き、またお得感。

iPhone 4Sのリリースとともにナンバーポータビリティーでキャリアも変えた時には、au光の回線ならば通話料が無料になると聞いていたのですが、いつのまにか(?)JCOMもauの傘下に入っていたのか、同様に無料になっていました。

2月頃でしょうかauから案内書が来て、今なら無線LANルータがタダでレンタル出来ると…

auのHPでも紹介している「HOT SPOT Cube 無料レンタルキャンペーン」です。

その時はあまり興味を引きませんでした。既に家では無線LANルータは導入していましたから。

しかし前述のJCOMと併用時の割引キャンペーンのためにau shopを訪れた際に紹介された「auスマートバリュー(ルータ割引)」のキャンペーンです。au傘下のUQ Wi-Maxが提供するWi-Fi Walker Data08Wが利用の無い月は基本料金0円で使えるというサービス。元々外出の機会が少ない私ですが、「いざ!」という時には使いたいと思うときもあります。おまけにパケットの制限も無く最大で4410円です。

良い話だけではありません。もちろんauの主回線やJCOMの回線を含めた2年縛りはあります。その部分ではちょっと考えてしまいました。

しかしこのData08Wの別売ドックを買うと、通常時は802.11nまで使える家庭用Wi-Fiルータとしても使える事が分かりました。もちろん家庭内で使っている場合には家に引き込んでいるLAN回線(私の場合にはJCOMのInternet回線)を使用するのでWiMaxの接続料金はかかりません。

 

別にauの宣伝をしている訳ではありません。

しかし携帯各社、程度の差はあれどこも回線は逼迫しているようです。

出来れば3G回線(一部ではLTEや4G)から別の回線(Wi-Fi等)にパケットを逃がしたい事情があるようです。

 

auと幾つかの固定電話の回線と併用した場合の月額基本料金割引の話は出ているのですが、残念な事にUQ Wi-Maxの端末が割引になっているという話は全面には出て来ていません(auのHPでも何故か奥まった所にしかありません)。
そろそろiPhone 5の噂も出ている昨今。あまりキャリアに縛られたくない私ですが、なんとなく割安感で申し込んでしまいました。

ちなみに 「HOT SPOT Cube 無料レンタルキャンペーン」も申し込んでしまいました。

おかげで我が家の無線LAN環境はちょっと変な形になっていますが… (^^;

 

au版 iPhone4S、MMS対応を使ってみる

 

auのiPhoneがようやMMSに対応したようですので、さっそく使ってみました。

iMessageはiOS5の中でも注目していた機能でした。これでやっと全機能が揃った感じがあり、嬉しい限りです。4月中旬とアナウンスされていましたので、そろそろかな?とは思っていましたが、週末にリリースされるとは思ってもいませんでした。

 

まずはキャリア設定のアップデート。「もしかしてiOSをフルダウンロードするの?」と思いましたが設定ファイルをダウンロードするだけでほぼ一瞬で終わってしまいました。あまりにも早かったので、本当にアップデート出来ているのか疑ってしまうほどでした。

 

次に恒例の#5000へのSMSを送ってやると、返信にメール設定用のURLが送られてくるというヤツです。

図1

この中で「MMS(メッセージアプリ)でEZwebメールを利用」をクリックしてやるとサーバ側の設定は完了です。あとは「設定」アプリでiPhone側での設定をするだけ。

ここでも行うのはMMSに使用するメールアドレスを設定するだけです。

図2

これでezweb.ne.jpのアドレスにメールが来ると自動的にMMSが「メッセージ」に届きます。

至って簡単。しかしコレだけでは今まで受/送信していた「メール」アプリでのezweb.ne.jpメール受信が出来なくなってしまうようです。当然ですが。

「メッセージ」アプリは手軽で簡単にMMSの交換が出来る一方、ある程度レイアウトされたメールや、添付ファイルのあるメールには不向き(あくまで手軽なメッセージングを目指しているようなので至極当然)なようで、私としては「メール」アプリも共存して使いたいと思っています。

そこでまた図2のメール設定の画面に戻り、「その他設定」で「メールアカウント手動設定」を行います。今までは「メール」アプリでのリアルタイム受信をしていましたが、リアルタイムの方は「メッセージ」アプリに任せ、必要に応じて「メール」アプリでメールを読んだり返信したり…というスタイルが出来るようになります。

週末のリリースでしたので、あまり受信するメールも多くないのですが、「メール」と「メッセージ」の両方に大量のメールが来だしたりすると、また設定を変えたくなるのかもしれません.

新規にメッセージを作成する時、「メッセージ」アプリは宛先のアドレスをiMessageのサーバに登録されているか問い合わせに行くようですね。もし登録されていればiMessageとして、登録されていなければMMSとして送信するようです。あまりにもシームレスに使えるので「え?いま何に対して打ってるの?」と戸惑ってしまう程です。

Significant-Change Location Service

位置情報をトラッキングする必要のあるアプリを考えていて、CLLocationManagerについて調査しています。

Appleのドキュメントにも書かれている様に通常のstartUpdatingLocationによる維持情報の取得はバッテリーの消費がかなり激しいようで、長時間の使用には向いていません。

またアプリがバックグラウンドに入り、メモリー使用量などの関係で強制終了させられた場合にはユーザが常に意識していなければならない問題があります。

 

その点、Significant-Change Location Serviceを利用すると、バッテリーの消費が抑えられる事と、アプリがいつの間にか終了させられていても位置情報の更新があるとiOSが自動的にアプリを起動してくれるという利点があります。

 

ただ、位置情報を更新してくれるタイミングや精度には当然劣化があります。

またテストの段階で、位置情報の更新があった場合に、確実にアプリを再起動してくれるのか?そのテストをどうするか悩ましい所です。

 

一番面倒なのは、机上でテストが出来ない事。

実際に実機を持って外を歩き回らないと検証が出来ず、またその際にMacを一緒に持ち歩くわけにも行かず、xcodeでモニターしながらというわけに行かないのため通常のアプリに比べて開発効率が落ちてしまいます。

 

さんすうの素 ー けいさんカード

さんすうの素 ー けいさんカード

 

Road to OpenGL ES (6)

Cheetah3D再び

次はBlenderの話を書こうと思っていたのですが、再びCheetah3Dに戻って来ました。Cheetah3Dに面白い機能を見つけたからです。

Blenderと同様にCheetah3Dも様々なフォーマットでデータをExportする事が出来るのですが、その中の”.h”へのExportが気になったからです。

試しにExportを実行して見ると、下記のようなヘッダファイルが出力されます。3Dモデルにもよるのですが、かなり巨大なヘッダファイルです。

嬉しいのが、その使い方まで書いてあります。

まずは構成ですがまず、NAME_vertex,NAME_indexの2つの2次元配列。

そしてNAME_vertexcountとNAME_polygoncountがそれぞれの配列の個数。

NAMEの部分はそれぞれメッシュのの名前が自動的に割り当てられます。

 

 

おまけにどのようにしてこの配列を使って描画すれば良いかまで書いてあります。

 

// You can draw the mesh the following way:
//      glEnableClientState(GL_INDEX_ARRAY);
//      glEnableClientState(GL_NORMAL_ARRAY);
//      glEnableClientState(GL_VERTEX_ARRAY);
//      glEnableClientState(GL_TEXTURE_COORD_ARRAY);
//      glInterleavedArrays(GL_T2F_N3F_V3F,0,NAME_vertex);
//      glDrawElements(GL_TRIANGLES,NAME_polygoncount*3,GL_UNSIGNED_INT,NAME_index);

 

しかしこれが引っかけ(?)で、このままではiOS上で実行出来ません。
ビルドで弾かれてしまいます。実装されていないAPIがあるからです。
多分、MacOS X のOpenGLなら大丈夫なんでしょうね。
Cheetah3DのサポートHPにもあるように、
http://cheetah3d.de/forum/showthread.php?t=4617
上記APIの代わりに下記のAPIを呼んであげれば無事に描画する事が出来ます。
glVertexPointer(3, GL_FLOAT, sizeof(vertexStruct), &NAME_vertex[0][5]);
glTexCoordPointer(2, GL_FLOAT, sizeof(vertexStruct), &NAME_vertex[0][0]);
glNormalPointer(GL_FLOAT, sizeof(vertexStruct), &NAME_vertex[0][2]);
glDrawElements(GL_TRIANGLES,NAME_polygoncount*3,GL _UNSIGNED_SHORT,NAME_index);

 

 

Road to OpenGL ES (5)

Cheetah3D

Unityにはまだ未練があります。なぜならこの時点でまだ他にソリューションが見つかっていないからです。

その意味で、3Dレンダリングソフトを試してみて相性が良ければ…という気持ちがありました。前回ご紹介したUnityと連携出来る3Dレンダリングソフトですが、やはりAutodesk関連のソフトは高価すぎます。ですので迷い無くCheetah3DとBlenderに絞りました。

まずはCheetah3D。

AppStoreからも購入可能です。

僕は簡単なんでAppStoreから購入してしまいました。購入してしまうと値段が出ないのでカードの請求書を見るしかありませんが、だいたい8千円台だったと思います。

autodeskのソフトから比べると天と地です。(余談ですが、autodeskの日本法人の社長はまだApple Japan出身の志賀さんなのでしょうか?)

日本語化されていますので、メニュー等も全て日本語です。一部を除いてオンラインヘルプも日本語になっています。

Macのソフトらしく、マウス操作で基本的なメッシュからそれを変形しながら様々なオブジェクトを作って行く事も簡単に出来ます。アニメーションやパーティクルにも対応していて成果物をムービーに落とす事も出来るようです。

本格的なプロにとっては物足りないのかもしれませんが、僕にとっては機能豊富なソフトです。

もともとレンダリングソフト上でアニメーションをするつもりがありませんでしたので(これはUnityでも後でご紹介するフレームワークでも極めて重要なのですが)、これで十分でした。

 

しかし…

マイナーなのです。

ググっても、今やりたい事を助けてくれるようなサイトが極めて少ないのでした。

レンダリングソフト初心者の僕にとっては、この部分がかなりハードルが高いものになって来ました。

 

移り気な僕は、8千円の出費は痛いもののフリーソフトのBlenderへと簡単に行く事になりました。

 

時系列で言えばCheetah3DとBlenderは、かなり平行してevaluateしていました。その中で引っかかったのが、両方とも「.fbx」というファイル形式でエクスポート出来ると言う事です。

それはまた別の項でご紹介します。

 

 

追記。

そしてまたCheetah3Dに戻ってくるのですが…

 

ひらがなマスター「あいうえお」 1.4.1

 ひらがなマスター「あいうえお」 1.4.1をリリースしました。

 

新しいリリースでは

  • 「ひらがな ぱずる」で「もういちど?」が機能しない場合がある問題を修正しました。
  • 「ひらがな ぱずる」でスピーカーのボタンをタップし易くしました。

 

 

Road to OpenGL ES (4)

単にiOS上でゲームを作るならUnityは一番早い方法だと思います。

日本語の書籍もある程度出ていますし、ネット上でもブログ等で紹介されています。

何よりも画面上で様々な設定が出来て、簡単なゲームならチョコッと(?)プログラムを描くだけでもそれらしく見えます。

ゲームのキャラクターや場面の画像も比較的容易で、UnityのHPでも紹介されている様に

などの3Dレンダリングソフトと連携する事が出来ます。

高価なものもありますが、対象をiOSと絞った場合にはCheetar3DBlendeardeもサポートしていますので、その部分では非常に安価におさめる事が出来るのではないでしょうか。

ただ、Unityでは独自の開発環境で開発し、それをxcodeのプロジェクトに書き出すという形式を取っています。

そのため生成されるコードをイジル事は殆ど出来ません。

もちろんプロダクトを作って売る事が目的ですが、根っからの開発者としてはちょっと物足りません。

とりあえずUnityの採用はPendingにしたものの、もう一つ解決しなければいけない課題。3Dレンダリングです。

 

先ほどご紹介したBlenderとCheetah3Dを試しましたので、次回はそこら編をご紹介したいと思います。

 

 

 

 

 

 

 

Road to OpenGL ES (3)

前回ご紹介したcocos2dには、その拡張としてcocos3dというのがあります。

名前の通り、cocos2dを拡張した3D用のフレームワークのようです。現在のバージョンは0.6.4。まだβの状態ですね。ソースが公開されているとはいえ、ははり製品にβバージョンのフレームワークを使う気には今のところなりません。

今後、マイナーバージョンとなった時には考えたいと思います。

Unityを試す

今まで断片的にOpenGL ESのネイティブAPIやCocosを試す中で思ったのが、3Dモデリングをする際の「座標」です。どれも当然ですが座標を指定して描画する必要があります。2DまでのそれもiPhoneなどの480×320程度の座標系でしたら頑張って何とかなるんですが、3DとなってZ軸まで入ってくると簡単には行きません。通常はそこに3軸(x, y, z軸)の回転が入って来て、僕の頭の中では簡単には処理しきれません。

いわゆる3Dモデリングツールと連携出来る事が求められます。

いわばお絵描きソフトの中で3Dの物体を描いて、それをそのまま読み込んでフレームワークの中で使う。

それが出来れば願ったり叶ったりです。

そういった希望を込めて検索して行くとUnityというソフトに巡り会いました。

このソフトは凄いです。

マニュアルによるとMaya、Cinema 3D、3D Studio Max、Cheetah 3D 、Modo、Lightwave、Blenderなどで作成した3Dモデルをプロジェクトの中にインポートして簡単なスクリプトでゲームアプリを作成してしまうのです。その中にはiOSアプリも含まれます。試してはいませんが、上手に作ればMac, Windows, iOS, Androidのアプリを1つのソースで作ってしまう事も可能かもしれません。

物理モデルもあるので、cocos2dのような衝突判断も自前で行う必要がありません。

たぶん、ゲームに特化すれば一番早い道かも知れません。

 

ただ、僕に取って気に入らなかったのは、ロジックをいじる部分がJavaScriptで、それをiOS用にビルドしてやると、xcode用のプロジェクトが出来上がり、殆どがブラックボックスの中でxcodoから再びビルドするという部分です。

たぶん、自前でiOSのコードを追加してやろうとすると、かなり大変な事になると思いました。

それとライセンス料

iOS用のアプリを作成しようとすると最低でも400ドルかかります。しかしその中ではスプラッシュ画面はUnityのロゴのまま。影を付けたりする事も出来なさそうなのです。(バージョン対応表をご参照ください

その上のバージョンだとUnity ProとiOS Proで3,000ドル。円高になったとはいえ最初の投資としては高いかな…という感想です。

ましてやUnityで作れるのは基本的にゲームです。

私としてはOpenGL ESをゲームに特化させるつもりはありません。もちろんグラフィックスを使う上でゲームは一番の市場でしょうが、もう少し利用範囲を考えたいと思っています。

 

そしてまた次に続きます。

ん…