2012年02月22日

[Unity] Unity3.5のAndroid新機能を試してみた

Unity3.5新機能(http://unity3d.com/unity/whats-new/unity-3.5)の Android Features に
記載されてあることを確認してみました。

Added "Show Loading Indicator" option, to show spinner when loading level synchronously.
シーンをロードするときに、ローディング表示をしてくれるとのこと。
PlayerSettingで設定することができます。

Added "Use 32-bit Display Buffer" and "Use 24-bit Depth Buffer" options.
同じくPlayerSettingでは、24bitか32bitで選択できるそうです。
この2つの違いは詳しく調べていません……。

201202022unity35_loading01.png

↓はローディング表示。位置が左上で固定されました。位置は調整できないみたいです。

201202022unity35_loading02.png

QualitySettings.antiAliasing now works, allowing you to set AA level at runtime or in Editor.
QualitySettingで、アンチエイリアスのレベルを選択できます。

201202022unity35_quolitysetting.png

Added the API “Screen.dpi” to help determine the need for high/low resolution graphics.
Screen.dpi が加わったことで、高/低 解像度を判別できるようになりました。

↓は Unityモニター の画面です。

HTC Desireの場合
201202022unity35_dpiDesire.png

Sony Tabletの場合
201202022unity35_dpiSonyTablet.png

SonyTabletの方がDesireに比べてdpiが高いかと思ったらそうでもなかったです。
色々な機種で試してみるといいかもしれません。

Added support for Gyroscope / Compass input.
Inputで、ジャイロスコープとコンパスがサポートされました。
こちらも、Unityモニター の画面です。

201202022unity35_gyrocompass.png

ジャイロスコープに対応した機種を持っていないので、ジャイロスコープで遊べません orz
コンパスはどの機種でもサポートされているようで、こちらは色々使えそうです。

Added Camera support
カメラがサポートされました。
これは、以前書いた記事「[Unity] Unity3.5新機能 WebCamTexture をAndroid端末で試してみた」で検証した通りです。

Added Microphone support.
マイクがサポートされました。

以下のリファレンスを参考に、簡単な録音&再生プログラムを作ってみました。
http://unity3d.com/support/documentation/ScriptReference/Application.RequestUserAuthorization.html?from=Microphone
http://unity3d.com/support/documentation/ScriptReference/Microphone.Start.html
-----------------------------------
function Start() {
// Microphoneのパーミッションを要求
yield Application.RequestUserAuthorization(UserAuthorization.Microphone);
// 録音して再生
if (Application.HasUserAuthorization(UserAuthorization.Microphone)) {
var deviceName : String = "";
for (var device in Microphone.devices) {
deviceName = device;
}
Debug.Log("Rec Start with " + deviceName);
// 繰り返しなし, 10秒, 44,100Hzで録音
audio.clip = Microphone.Start(deviceName, false, 10, 44100);
// 再生
audio.Play();
} else {
Debug.Log("no Microphone permission");
}
}
-----------------------------------
ここで忘れていけないのが、このプログラムを適用したオブジェクトに対して
Audio Sourceコンポーネントを適用することです↓
※設定値はデフォルトのままです。

201202022unity35_microphone.png

Added Texture Override for ETC/RGBA16, under Build Settings.
Build Settings のテクスチャ圧縮に「ETC/RGBA16」が加わりました。

そもそも、3.4のときはこうでした↓

201202022unity34_buildsetting.png

3.5ではこうなりました↓

201202022unity35_buildsetting.png

Android向けに OpenGL ES2.0 で出力できるのですが、下記の参考もとによると
どのAndroidでも使える共通フォーマットがETC1のようです。
3.5では、それを指定する/指定しないを選択できるようになりました。
実際にOpenGL ES2.0で試してみないと具体的な違いがわからないので、後で検証してみます。

【参考】Android OpenGL ES 2.0 の圧縮テクスチャ :
http://wlog.flatlib.jp/?itemid=1494

Added API targets for Honeycomb 3.2 (MR2) and Ice Cream Sandwich (4.0)
出力できるターゲットが増えました↓

201202022unity35_apitarget.png

最近ではAndroid5.0の噂も出ているし、この辺は随時対応されていくのでしょうね。

他にも、新パーティクル「Shuriken」があるし、色々と試してみたいことがあります。
それはまた後日ということで。
posted by be-style at 10:36| Comment(4) | Unity
この記事へのコメント
Unityモニターを使ってみました。
Android 4.0 のジャイロ対応端末ですが反応しませんでした。
どうも Input.gyro.enabled を自分で true にする必要があるようなのですが、
アプリ起動時に true にするか、もしくは、
on/offする操作を追加してもらえないでしょうか?
Posted by しげの at 2013年09月11日 11:26
気づくのが遅れて申し訳ありません!
アプリをご利用いただきありがとうございます。

ご要望の点、次回アプデに反映させていただきます。
今後もお気づきの点がございましたら、ご指摘いただけると幸いです。
Posted by be-style at 2013年09月14日 08:23
Depth Bufferというのは
人間には3次元に見えますが
物体を配置した時に手前に
見えるものしか表示しません。
物体の裏側にあるデータは削除される
なので結果2次元
その手前に見えるものを演算で
計算する時の精度です。
精度を落とすと近い物同士の
演算精度が落ちるので縞々に
見えたりギザギザに見えたり
することがあります。
意識しないとわからない程度
Posted by きぃたん at 2014年01月06日 11:44
Depth Buffer について詳しく教えていただきありがとうございます!
少しでも処理を減らしたいときの工夫として参考になりますm(_ _)m

縞々やギザギザをどこまで許容するかと相談しながら決めないとですね!
Posted by be-style at 2014年01月06日 13:54
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]