強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Unity製の3D誘導パズルゲーム「Framework」


進行方向を変えるパネルを設置し、キャラクターを誘導するパズルゲーム。パズルステージとそのステージの間に有る移動シーンの2種類のゲームが楽しめます。移動シーンは壁を避けるだけなのですがキャラクターの移動に慣性が発生していてそれを考慮した操作が必要です。

入力 動作
W/A/S/Dキー or カーソルキー 移動
スペースキー 設置するパネルの切り替え
マウスクリック パネルの設置
Rキー リセット

Play Framework, a free online game on Kongregate
http://www.kongregate.com/games/quickfingerz/framework

iOSの言語設定情報が取得出来る様になってたみたい

Unityには現在アプリが実行されている環境の言語設定の情報を取得する Application.systemLanguage というAPIが有ります。しかし、このAPIは以前はiOSで正しく動作していませんでした。

その為、このブログでも以前言語設定の情報を取得するプラグインを作成して対応する方法を紹介しました。

しかし、こちらの不具合はバージョン3.5で修正されていたみたいで現在は正しい情報が取得出来る様になっていました。
※リリースノートのiOSの項目に「SystemLanguage handling overhaul」と記載有り。

UNITY: What's New in Unity 3.5
http://unity3d.com/unity/whats-new/unity-3.5

(2012/09/24 追記)
これで標準機能だけでOKになってめでたしめでたし、と思ってたのですがちょっとだけ罠が有るみたいです。

iOS で Application.systemLanguage を使う時の注意点 - 強火で進め
http://d.hatena.ne.jp/nakamura001/20120922/1348294675

(追記ここまで)

関連情報

Unity Script Reference – Application.systemLanguage
http://unity3d.com/support/documentation/ScriptReference/Application-systemLanguage

Operaのカメラサポート(getUserMedia)を試してみた


Mobile版の12では既に対応していたカメラへのアクセスがデスクトップ版でもバージョン12から使用可能になったみたいです。

Opera Developer News - Hello Opera 12!
http://my.opera.com/ODIN/blog/hello-opera-12

以前にモバイル版でのカメラテストの為に作成したこちらのサンプルを実行してみた所、問題無く動作しました。なお、こちらの機能はWebGLと違ってデフォルトで有効になっているみたいです。

関連情報

Opera Mobile、バージョン12でWebGLとカメラに対応 - 強火で進め
http://d.hatena.ne.jp/nakamura001/20120229/1330525671

発明から製品化までの仕組みをとても上手く作り上げている会社「Quirky」

この仕組み、思想、良いですねぇ。

この動画はこちらの記事で知りました。

家庭内ノマド(?)を実践! どんな場所でも机になる、ソーシャル開発のQuirky「Scribe」 « GQ JAPAN
http://gqjapan.jp/2012/06/12/scribe/

Unify Community Wikiに書かれている自作プログラムによる2Dキャラクタ表示


Unify Community Wikiに書かれているこちらのサンプルを「一部変更&日本語コメントを入れたもの」をこちらにアップしました。

元のサンプルから変更した所

2Dを表示する板ポリがUnity IDE内で生成されたPlaneで有るため、これは無駄にポリゴン数くなっています。これだと無駄にコストがかかるので自前でCheetah3Dを使って三角ポリゴン2つで作った四角形のモデルを準備しました。

後、プログラムは以下の部分を変更

float offsetY = (1.0f - size.y) - (vIndex + rowNumber) * size.y;

   ↓

float offsetY = (vIndex + rowNumber) * size.y;

難しい部分を解説

取り敢えず、一通りコメントを入れていますがコメントだけだと分かり辛い部分をちょっと解説しときます。

このプログラムのプロパティで有る rowNumber や colNumber はテクスチャの使用位置のオフセットをキャラクタ単位で設定しています。例えば rowNumber に1をセットすると下方向に1キャラクタ分移動した位置から開始する事になり、表示されるキャラクタが黄色から青色に変わります(UV座標系では左下が原点で上方向と右方向がプラスの向き)。