Archives

April 2010 の記事

2010/04/29
X06HT HTC Desire

発売日 27日に買ってきました。Android 端末。

HTC X06HT

予約を入れたのが 4/1 で、当日の受け渡しで混雑するからって店の方から時間帯
指定がありました。午前中に割り当ててもらったので余裕だと思っていたら
サーバーにかなり負荷がかかっていたらしく店頭の端末でエラーの連続。
人気があったのかどうかわかりませんが周りの席でも同じようにサーバーの
エラーが出てたようです。

パッケージは iPhone 3GS と同じくらい小さな箱。
中の端末もほとんど同じくらいの大きさでわずかに薄くなっています。
大きさも重さもほぼ一緒なのに、持った感じの印象はかなり違います。
しっとりとしたつや消しのボディは過去に使ってきた HTC 端末の作りと同じもの。
つるつるの iPhone 3GS や iPod touch よりソフトな触り心地です。


上部の電源ボタンにサイドの音量キーなど、スマートフォンとしてはスタンダードな
配列です。唯一違うのは本体下部のボタン群。
特にセンターについてるオプティカル式のコントローラは特徴的です。
NetWalker のポインティングデバイスと同じようなものですが、マニュアルでは
「オプティカルジョイスティック」という名称になってました。
カーソルキーのような使い方と、ボタンとして押し込みができます。
反応も良く使いやすそうなのですが、タッチ画面だけで十分なのでまだあまり
出番がありません。

静電容量式タッチパネルは反応がよく、動作も軽快で非常に高速です。
抵抗膜式だった WindowsMobile の端末と比べると操作ミスのストレスを全く感じ
ないし、本気の Android の良さが実感できました。

最初はやはり、これまで使ってきた iPhone との細かな違いが気になります。
操作や機能に粗が見え隠れするし、買ってすぐ馴染める使いやすさや操作してる
人に対する気の遣い方は iPhone の方が上です。
自分が iPhone 3GS に慣れすぎていたせいもあるかもしれません。

ところが X06HT の場合、あまりに高速で気持ちよく動くのでそのような粗や欠点が
どうでも良くなります。パワーがあるならこれはこれで良いんだと思わせる説得力が
ありました。

使い出して二日目の現在、これをメイン機にしつつあります。
MMS がまだ無いことと、iPhone と容易に SIM 交換できないので当分 2台持ち
ですがカスタマイズ出来るところも多く、目新しいこともあって楽しめそうです。
画面解像度も高いし、画面の回転を禁止できるのも良い点です。

気になったのは本体の容量。
アプリケーションをいろいろダウンロードしていると容量がすぐに無くなります。
データ自体は micro SD カード上に作られるらしく圧迫することが無いのですが、
SD にたっぷり空きがあるのに容量を気にしなければならないのは残念なところです。

当日に早速あったアップデート、更新が始まってそのままにしていたら
起動時の Softbank ロゴで固まってました。放置しても全然進まなかったので
諦めて電池を抜いたら無事起動。再更新がかかって大丈夫でした。


先日リリースされた ESPGALUDA2 にはまってます。
元はアーケードの 2D シューティングゲームらしいですが、単なる移植でなく
iPhone 3GS 向けに作り込んであってかなり面白いです。

CAVE エスプガルーダ II

3GS 世代 (Cortex-A8+PVR SGX 535) 専用となっており、2D ながら大量のオブジェクトが
動く様を見ることができます。動きもなめらか。特に気に入ったのが次の 3 つです。


(1) 弾避けに専念できる

モードも豊富で難易度と操作の自動化を個別に選ぶことが可能。
一番簡単な操作方法を選べば、ほとんど一本指に近い操作ができます。(覚醒ボタンはあります)

弾幕シューティングは基本的に避けるゲームなので、攻撃などそれ以外の要素を
オートに任せて一番面白いところに集中できます。非常に入りやすいです。


(2) 移動が思い通りになる

自機の移動速度が結構速く、指の操作についてくるので気持ちよくプレイできます。

 ・自機の移動が遅くて回避が間に合わない
 ・移動速度が早すぎて隙間を抜けられない

といったジョイスティック操作でありがちな悩みが、タッチ操作によってうまく
解消されています。

自機の移動はタッチ操作でオフセットつき。絶対位置では無く、マウスと同じように
移動量が反映されます。画面が指で隠れて見えなくなることが無いわけです。


全体的に難易度を下げて、気持ちよく遊べる方向にアレンジされています。
移植ながら iPhone での操作にほとんど不満がないのが良いですね。
むしろタッチ操作の方が面白いんじゃないかとすら錯覚します。

きちんと操作をあわせて作り込んでしまえば、このジャンルは向いているのかも
しれません。


(3) OpenFeint

OpenFeint 対応で、オンラインのランキングや Xbox360,PS3 のような実績(トロフィー)
もあります。試してませんが Facebook や Twitter 連動などもできるようです。
モバイルながら常にネットにつながるのでコンソールと同じような充実ぶりです。


ちなみに iPhoneOS 4.0 では OS / SDK 自体に最初からこの手のソーシャルゲーム
プラットフォーム機能が組み込まれるとのこと。
モバイルゲーム機の最先端を進んでいます。
きちんと作ればゲームも iPhone だけで十分じゃないかと エスプガルーダ2 を見て
本気で思いました。

もう一つ iPhoneOS 4.0 では iPad 同様に Bluetooth Keyboard がつながるようになります。
Keyboard が使えるならジョイパッドのようなコントローラだって作れるはず。
ゲームプラットフォームとしての弱点が無くなりつつあります。


Direct3D で頂点とシェーダーの対応付けを行うのが InputLayout です。
必要なのは頂点フォーマットの定義と、各要素が対応する頂点シェーダー入力のシンボル名。
これらのバインド情報は ID3D11Device::CreateInputLayout() で作られた
ID3D11InputLayout が保持しています。
描画時に ID3D11DeviceContext::IASetInputLayout() で指定します。


OpenGL/OpenGL ES の場合は glVertexAttribPointer() を使って同様の対応付けを
行います。シェーダーのシンボルに対応した Location 値や各要素の型とサイズを、入力
要素毎に 1つ 1つ指定していきます。

そのままだと不便なので、頂点のバインド情報をまとめて管理できるように InputLayout 相当の
仕組みを作っていました。(過去のエントリ)


GeForce では問題ありませんが最近の RADEON HD 5870 のドライバで
OpenGL 3.2/3.3/4.0 あたりを使おうとするときちんと動作しないことがあります。
原因を調べていたら、OpenGL 3.x にはすでに VertexArrayObject という仕組みが用意
されていることに気がつきました。こちらを使えば RADEON でも正しく動作しました。

VertexArrayObject は、頂点バッファに対する一連の glVertexAttribPointer() を
まとめてオブジェクトとして扱うことができます。
Direct3D の InputLayout そのものです。

GLuint input_layout= 0;
glGenVertexArrays( 1, &input_layout );
glBindVertexArray( input_layout );
glBindBuffer( GL_ARRAY_BUFFER, vertex_buffer );
glVertexAttribPointer( ~ );
~


関連エントリ
OpenGLES 2.0 頂点フォーマットの管理


新型 VAIO Z (VPCZ11) は GeForce GT330M 搭載。
シェーダーユニット数 48、Direct3D 10.1 の ShaderModel4.1 対応で、ゲームにも
開発用にも期待できるスペックです。

SONY VAIO Z

しかしながら付属の GeForce ドライバは 188.80 と結構前のバージョンでした。
対応している OpenGL も 3.1 で GLSL 1.3 まで。

NVIDIA GeForce GT 330M
GL_VERSION: 3.1 NVIDIA 188.80
GL_RENDERER: GeForce GT 330M/PCI/SSE2
GL_VENDOR: NVIDIA Corporation
GL_SHADING_LANGUAGE_VERSION: 1.30 NVIDIA via Cg compiler

NVIDIA のサイトでドライバを検索すると GT330M の最新版は 197.16。
これだと OpenGL 3.2 (GLSL 1.5) や OpenCL にも対応できます。

ノート用 GPU で良くあるように、公式サイトのドライバはそのままだとインストール
できませんでした。以前 TouchSmart IQ800 で何度かやったように inf を書き換えてドライバを
インストールしてみました。一応動くもののいくつか不具合が生じます。


●良い点

とりあえず最新版ドライバが動いたこと。
OpenGL 3.2 + GLSL 1.5 のプログラムも動作しました。


●だめだった点

・画面の明るさ調整ができません。backlightwin もだめ。
・再起動するとドライバが認識できなくなります。

どうやら SPEED mode 固定でも起動時は Intel GMA HD で立ち上がるらしく、GeForce
ドライバが専用のものでないため Intel のドライバの方が正しく認識されません。
Aero が無効になるなど中途半端な状態になります。

一応電源を切るまでは使えますが常用は厳しいのでもとに戻しました。
動的な GPU 切り替えを実現するなど、特殊な構造なので仕方ないのかもしれません。

ちなみに STAMINA mode (Intel 側 GPU) だと下記の通り。

Intel GMA HD
GL_VERSION: 2.1.0 - Build 8.15.10.2021
GL_RENDERER: Intel(R) Graphics Media Accelerator HD
GL_VENDOR: Intel
GL_SHADING_LANGUAGE_VERSION: 1.20  - Intel Build 8.15.10.2021

最新のドライバを使いたい場合、できるだけ普通のハードを選んだ方が良さそうです。


関連エントリ
HP TouchSmart IQ800 に GeForce 9600M GS ドライバを入れる
Windows ノート PC の backlight の明るさ変更方法