Xcode5.1にアップデートしたところ、
Unityで'Build And Run' をしてもXcodeプロジェクトが立ち上がらなくなり下記のエラーが出た。

"UnityException: Launching iOS project via Xcode4 failed. Check editor log for details"

解決策は下記の手順。

1)下記のファイルをテキストエディタで開く
Unity.app/Contents/BuildTargetTools/iPhonePlayer/Unity4XC.xcplugin/Contents/Info.plist

2)下記の行を見つける
<key>DVTPlugInCompatibilityUUIDs</key>
<array>
<string>63FC1C47-140D-42B0-BB4D-A10B2D225574</string>
<string>37B30044-3B14-46BA-ABAA-F01000C27B63</string>
</array>

3)<array></array>内に下記を追記する
<string>A2E4D43F-41F4-4FB9-BB94-7177011C9AED</string>

4)保存して、Xcode再起動



参考ページ:

【Unity】UUIDの生成と保存

  • 投稿日:
  • by
  • カテゴリ:
Unityでは端末固有ID取得用に SystemInfo.deviceUniqueIdentifier がありますが
これはiOS7ではidentifierForVendor、iOS6などではMACアドレスのhashということでなんか微妙な感じ。
identifierForVendorは同じベンダーのアプリが1つでもインストールされていれば変化しないけど
そのベンダーのアプリ全部削除すると、再度インストールするときには変化する。
あと、iOS6.0のidentifierForVendorではバグがあるとか。

今回欲しいのは、不変の端末IDではなくインストールのたびに変わるユニークIDだったので
下記のように.NETの機能を使うと良いみたい。
System.Guid guid=System.Guid.NewGuid();
string 
_uuid=guid.ToString();
36バイトの文字列が生成されます。

初回起動時に生成した文字列をローカルに保存しておきたいわけですが
PlayerPrefsクラスを使います。
//セーブする時
PlayerPrefs.SetString("uuid",_uuid);
PlayerPrefs.Save();
//ロードする時
string _uuid=PlayerPrefs.GetString("uuid");

iOSの場合、PlayerPrefsは /Library/Preferences に保存されるそうなので
iTunesのバックアップ対象になるはず。

【Unity】iOS Proとアンチエイリアス

  • 投稿日:
  • by
  • カテゴリ:
iPhoneでAntialiasing (PostEffect)を使いたい時
Unity Pro版だけでは効かず、iOS Proアドオンを買ったら反映された。

あと、AndroidでAnti Aliasing が効かないのはUnity 4.3.2のバグかな。
まだAndroid Proアドオンを買ってないからかもしれない。
追記:Android Proアドオン買ったら有効になりました。

カメラにPostEffect Scriptを付ける以外に
メニュー(Edit→Project Settings→Quality)のAnti Aliasing設定もあるけど
スマホには効かないっぽい。

【Unity】ジャイロでスマホの傾き取得

  • 投稿日:
  • by
  • カテゴリ:
放置ブログにたまに投稿してみる。
最近はUnityでスマホアプリを作ったりしてます。

で、デバイスを「どっちに傾けたか」知りたい時どうするのかなと調べてみると
ジャイロセンサーの Input.gyro.attitude を使うとか
加速度センサー Input.acceleration で済ませるとかあるみたいですが
結論としては Input.gyro.rotationRateUnbiased を使うのが良さげでした。

Input.gyro.rotationRateUnbiasedは、XYZ各軸の回転速度がVector3型で返ってきます。
デバイスを奥に倒すとXがマイナス、手前に傾けるとXがプラス、
左に向けるとYがマイナス、右に向けるとYがプラス、
時計周りにするとZがマイナス、反時計回りだとZがプラス、という感じです。
速度なので動かすのをやめると値は0に近づきます。

Input.gyro.attitude はデバイスの姿勢をクォータニオンで返すので、たとえば
デバイスの傾きと床オブジェクトの傾きが連動する玉転がしゲームとかの用途向き。
寝転んだ状態での操作をやろうとするには難しい。

Input.acceleration はシェイクジェスチャーとかの用途向き。
常に重力加速がかかってるからそれを元に傾きを求められなくはないけど
余計な動きが加わると値が荒ぶりそう。
最寄りのカフェを地図上ですばやく見つけられるアプリをリリースしました。

・6100件以上のカフェ/喫茶店を収録。(次回の更新で7566件に増えます)
・犬同伴で利用できる「ドッグカフェ」も180件収録。
・fousquareに登録されたカフェを表示して、チェックインできます。

あったら便利そうだから作ろうかなーと思ったまま数年経ち、
最近になって似たようなアプリがいくつか出ててそれなりに需要ありそうなので
負けじとリリースしてみました。

たった85円です。ぜひ買ってください!お願いします。

Macを買ってくるところから始めて制作期間2週間くらい。
Titanium Studioを使って開発しました。

TwiPla - イベント告知・出欠管理サイト
この手のサイト、海外には結構ありますが、日本語のがあればいいなと思い作ってみました。
かなりシンプルな作りです。要望があれば改良していきます。
ATNDでいいじゃん、と言われそうですが、まぁ気軽に使ってもらえればと思っています。

普段Flashばかり使ってて、こういうサイト作るのは初めてなんだけど
なかなか面白いね。今回はCakePHPを使いました。

mixiアプリのカテゴリ掲載申請で却下されるパターン

  • 投稿日:
  • by
  • カテゴリ:

Union Platform を使って対戦ゲームを作りました。
下記いずれかで遊べます。
Facebook(ランキングあり)
Kongregate版
モゲラ版

mixiのカテゴリに掲載されてから公開しようかと思ってたけど
なかなか通らないんですよ。一度ならず二度までも!です。
そして却下されると10日も待たないと再申請できないという..

具体的な却下理由は説明はしてくれなくて個別の質問も受け付けてないので
参考までに私の却下理由を載せておくよ。


・デベロッパー登録情報が正確に入力されておりません。

→デベロッパー登録したのが数カ月前なので、何のことかすっかり忘れていたけど
登録した時の情報がいい加減すぎたようです。
でも登録内容を確認できるページが見当たらず、どこで更新するのか..
mixi Developer Centerにある「デベロッパー登録画面 」リンクをクリックして登録しなおせば更新されるようです。


・また、掲載されている広告に関しましてもmixiアプリ広告掲載ガイドラインに抵触しておりましたので、こちらも併せましてご確認下さい。

→「リンク先は別ウインドウにて展開してください」を見逃してました。
広告掲載位置の指定が厳しいので良く読んだと思ったのだけど
実際広告クリックしてみるまで気づかなかった..
そして Google AdSense は_selfリンク固定なのです!
PC版のmixiアプリでは Google AdSense 使えないってことだね。


・青少年保護の観点から、mixiに登録されているユーザー様のみ利用できる仕様に変更していただく必要がございます。
他サイト様(mixi登録ユーザー様以外の利用者がいる場合)との連動アプリで
チャット機能等コミュニケーションがとれる仕様ですと、年齢認証が不確実の
可能性が残るため上記の対応が掲載に必要となりますので、ご協力ください。

→これは意外だった、この詳細はガイドラインに載ってないと思う。
「青少年保護のために...18歳未満の利用を制限する場合があります。」という規定はあり、
今回のアプリはチャット機能があるので18禁指定になるだろうとは思ってた。
mixi以外とコミュニケーションできないなんて閉鎖的だなぁ。
mixiの年齢確認自体が適当なので、mixi内だけのコミュニケーションならOKって青少年保護になってなくない?

そんなわけで、審査に通らないことには載せてもらえないので
また10日後にチャレンジするよ!

Union Platform インストール方法

  • 投稿日:
  • by
  • カテゴリ:
Flashでリアルタイム通信するための Union Server をUnixにインストールする方法について。

僕はレンタルサーバ( DreamHost の Virtual Private Server )を借りてそこにインストールしました。
追記:さくらVPSのほうが良かったので乗り換えました。

Unixコマンドのことは良く分かってないですが、とりあえず下記の手順でいけます。

▼インストール
sshでログインして下記コマンドを入力。
wget http://www.unionplatform.com/releases/union/union_1.0.0_alpha6.tar.gz
tar xzvf union_1.0.0_alpha6.tar.gz union
rm union_1.0.0_alpha6.tar.gz
cd union
chmod 775 *
やってることは、ダウンロードして、unionディレクトリに解凍して、不要になった圧縮ファイル削除して、unionディレクトリに移動して、パーミッションを変更です。

▼設定
union.xmlを開いて、管理パスワードを変更。
念のため<charset>UTF-8</charset>を追記。

▼起動
java -Dfile.encoding=UTF-8 -cp lib/union.jar:lib/stax-api-1.0.1.jar:lib/wstx-asl-3.2.6.jar net.user1.union.core.UnionMain start &
日本語を送受信する場合は、上記のように文字コードを指定する必要があります。

▼停止
「ps -x」でプロセス一覧を表示して
「kill プロセス番号」で停止させる。
管理ツール(UnionAdmin_1.0.0.84_Alpha6.swf)からログインして止めることもできます。

▼死活監視
サーバを起動し続けていると10日ぐらいで落ちることがあったので、
止まった時は自動で再起動するようにshellスクリプトを書きました。
#!/bin/sh
while true
do
    isAlive=`ps x | grep union | grep -v grep | wc -l`
    if [ $[isAlive] = 0 ]; then 
		java -Dfile.encoding=UTF-8 -cp lib/union.jar:lib/stax-api-1.0.1.jar:lib/wstx-asl-3.2.6.jar net.user1.union.core.UnionMain start &
    fi
    sleep 20
done
上記をobserve.shというファイル名で保存。 下記のコマンドでバックグラウンドモードで常駐します。
sh observe.sh &

Flashでリアルタイム通信するためのソリューションは色々あるけど、
Unionはかなり簡単にインストールできるし、機能も十分なのでおすすめ。
Let's enjoy Union Platform !

とても参考になるサイト:
fla.la » Union Platform
Reactor API 日本語リファレンス

超むりげー@ASAGAYA LOFT A

  • 投稿日:
  • by
  • カテゴリ:
テーマに基づいて48時間以内にゲームを移植する企画「むりげー」。
これまではただの飲み会でしたが、
2月7日に無茶なイベントを開催するそうです。

超むりげー

2月5日にテーマが発表されるので
Flashでゲーム作って参加すると面白いよ。