Google

2012年11月15日木曜日

Unity4正式版でました(まだ試してない)

正式版の発表がありました。



ダウンロードはこちらからできます。

  http://unity3d.com/unity/download/

日本のUnity公式も新しくなってました。



これから試します。

2012年11月14日水曜日

Unityでコインゲー開発:ジェスチャー処理

開発ノウハウで書き忘れていた内容を少々。
ユーザ操作でけっこうめんどくさい処理の一つがタッチ操作の検出。
スワイプとタップ、押しっぱなし等の操作をUnity標準機能で行う場合、よく使うのはこの方法ではないでしょうか。

  // Update()内で記述
  if (Input.GetMouseButtonDown(0)){
    // 指ダウン。
  }
  if (Input.GetMouseButtonUp(0)){
    // 指アップ。
  }

上記のコードにフラグ処理や位置判定、先日2DGUIのRayCast判定やY軸反転等の処理を施せば、簡単なマウス位置判定が可能です。
引数の0は複数の指に対応させるためのものであるため、1本のみの判定ならさほど難しい処理は必要ありません。

しかしこんな単純な処理は実際に使われることはあまりありません。
ピンチイン、アウト等の複数判定が要求に入り込むのがよくあるケースなのです。
自分で書いてみたりもしましたが、時間ばかり掛かって良い成果が出にくい、というのが現実だったため、実際に幾つかプラグインの助けを借りました。
今回の紹介はそのひとつ「FingerGestures」です。



この商品のAssetStoreはこちら
お値段は$55。円高なので\4,300位でしょうか。
WebPlayerのデモはこちらから見れます。
(普通のPCからだと複数タッチのデモは動作しません)
APIリストは公式のものがここにあります。

特徴としてはピンチ、スワイプ、回転等の操作判定をほぼ環境依存せずに検出できる点。
C#とJavaScriptの両方のコードを同梱している点などです。
(以前書きましたが、言語混在はヤバいのでどちらか片方で統一は必須です)

ダウン、アップ、マウスダウン維持の検出もラッパされて簡単に使えます。
ピンチやスワイプ検出もとても良い機能でしたが、プロジェクトにおいて最も役立ったのは指の移動検出機能でした。
前述のデモから、1 - Basic Mode Samples→ 2 - Finger Moveで試せます。

こんな感じで判定ができます。
実機だと指が早すぎる場合、途中の反転が取れなかったりしますが、人間がよく指で操作する上図のような判定には持って来いです。
このデモは本体にもついてくるので、このデモシーンを実機に落とすと複数タッチを試すことができます。

商品なので今回はサンプルなしですが、結構しっかりしたプラグインです。
自前タップ処理で時間を掛ける前に検討してみては如何でしょうか。

2012年11月7日水曜日

Amazonで電子書籍を購入してみた(否Kindle)

キンドルが発売開始されたり安売り合戦したりしてますが、どうにもこうにも今ひとつ実機を買う気がおきません。
しかし電子書籍自体は好きなので、アマゾンで買ってみる事にしました。
ちなみにファイルを譲渡するわけではなく、読む権利だけを渡す形式です。
クラウドに保存して取り出す仕組みはいいのですが、ガチガチすぎるのも嫌ですね。

今回の材料:
  アマゾンの垢・・・・・・・1個
  iPhone5・・・・・・・・・・・1個
  アマゾンアプリ・・・・・・1個
  お金・・・・・・・・・・・・・・少々
 
まずiPhone5からアマゾンアプリを立ち上げてみます。
今回購入するのは昔家内から教えて貰ってファンになったマキャベリの本。

Kindleストアで検索すると2件しかありませんでした。

結構いい値段しますね。
しかしページ数も多いのでこんなもんでしょう。
なんと、アマゾンアプリから購入できないとな!!
早く改善して欲しいところです。
仕方なくほしいものリストに一旦登録。
Safariをわざわざ立ち上げます。(´・ω・`)
そしてSafariから改めてアマゾンにログイン。
ほしい物リストから探します。
即購入扱いになるようです。
機種判定もできてます。
他の機種も可能なのかとおもいきや、これしかありませんでした。
1クリックでポチります。
あっけなく完了。
ここからアプリ連携でキンドルアプリも機動できます。 
たちあげてみるとダウンロードが開始されました。
このアプリからログインしてないとダメですが。
これは配置をアイコン型に変更したところ。
本の表紙で一覧が見れます。
完了。
無いものはクラウドからダウンしてくる形式です。
先ほどのリスト表示にしたところ。
内容は転載など一切ダメと書いてあったので出せません。
文字だけですし出す必要もないんですけどね。
ということでiPhone5で普通に読めました。
キンドルほど大きくはありませんが、今まで定期購読アプリ等で読めていた人なら問題も無いかと思います。
これで実機を購入すればそっちでも読めるはずです。(1人5台まで認識)
購入形式がちょっとアレですが、そんなに悪くはありません。

2012年11月5日月曜日

Unity:iPad mini判定

今回はiPad mini関連の話。
少し前にUnityコミュで挙がった記事をご紹介。

  Unity’s ready for the iPad4 and new iPad Mini!

iPad miniが出て大分iOS陣営も種類が増えてきたので、その判定方法の内容です。
Unityで開発する場合にdpiの変化によって表現の質が大きく変わるので、クオリティ重視型のアプリなら必要になるのではないでしょうか。

そのやり方ですが、この記事ではUnity用の判定プラグインを提供しています。
(直リンなんでできればコミュから落とした方がいいかも)

  iOSInfoPlugin_for_Unity_3_5_6

zipを解凍するとunitypackageファイルが出てきます。
後はダブルクリックなり、インポートなりでイントール完了です。
(メニューからの場合は、[Assets]→[Import Package]→[Custom Package]でファイル選択)

ちなみに3.5.6専用でロアーコンパチではありませんのでご注意を。
また、Unityプラグインはシステム全体に影響するわけではないので、必要に応じてプロジェクト単位でイントールしなければなりません。

このプラグイン、以下のような情報取得変数が準備されているので実装も簡単です。

 iOSInfo.isIPadMini
 iOSInfo.isIPad4Gen
 iOSInfo.dpi
 iOSInfo.GetDeviceModel()


実際にはこんなコードで判定できます。(コミュからのまんまパクリですが)

if (iPhone.generation == iPhoneGeneration.iPad2Gen || iOSInfo.isIPad4Gen)
{
// Enable some awesome feature
}
まあ、人の褌で相撲をとっても仕方ないので紹介はこのへんで。
中身はシンプルでしたが、その他の細かい実装は各自リンク先でお確かめ下さい。

2012年11月4日日曜日

Unityでコインゲー開発:過去バージョンの問題

今回開発時にやっかりだった点の一つ、バージョン管理について。
とはいってもAssetServerのことじゃありません、Unity自身のバージョンです。

まずUnityのプロジェクトファイルは当たり前ですがアッパーコンパチです。
新しいバージョンが出たら古いものが再構築され使えるようになりますが、古いUnity環境にそれを持っていくとどうなるか。
実際に遭遇したケースはこれのどれかでした。

  • なんとか読める
  • 警告が出て読み込みに失敗する
  • いきなりローダーが止まって何も起こらない

こうなるのはこの手のIDEでは当たり前なので、現場ではこんなことをしています。

  • 人柱専用のUnity環境を1台準備しておく
  • 最新が出たらそのPCで徹底検証
  • 移行OKが出たら、切りが良い日時を決める
  • 全員で一斉にアップデート
  • 人柱PCからプロジェクトをAssetServerにコミット

こうすることで、バージョン相違に起因する問題を最小限にできていた訳です。
しかし!お客さんに納品する際、必ずしもそこが最新を使うとは限らないケースもしばしば。
そんな時はクリーンアンインストールしないといけません。

が、その古いバージョンのインストーラが無ければそんなことすらできません。
というわけで古いUnityが必要になったりすることもあると思うのですが、いざ探すと明示的にアドレスがなかったりします。

実は公式サイトにはまだファイルは結構残っているようですので、必要に応じてダウンロードするということが可能です。
種を明かせば簡単で、いつもの最新版ダウンロード先の名称を変えるだけw

Windows版のダウンロードはこちら。

  http://download.unity3d.com/download_unity/UnitySetup-x.x.x.exe

注意!上記のURLは正しくありません。
バージョンに共通したフォーマットになっています。
例えば3.5.2が欲しければ末尾のファイル名の部分をUnitySetup-3.5.2.exeに変更したアドレスでアクセスして下さい。

Mac版はここです。

  http://download.unity3d.com/download_unity/unity-x.x.x.dmg

これもそのままでは使えないURLなので、例えば3.5.2なら最後のファイル名をunity-3.5.2.dmgという文字列に変更して下さい。

アドレスが正しくないとこんな画面になります。

注意事項:
この方法はいつまで通用するか解りません。
どこまで古いバージョンが残っているかは保証できません。
また、古いバージョンをダウンロード、使用したことによる一切責任も取れません。

1/31 補足:
http://unity3d.com/unity/download/archive
ここに過去のバージョン、ビルトインシェーダ一式があります。
こちらの方がわかりやすいかと。