Unity の lookAt を おきかえる

UnityのlookAtは便利ですが、回転をさらに細かく制御しようと思うと難しいので置き換えます。


Rot.transform.LookAt (Vector3.zero);

こうするところを、


Vector3 relative = gameObject.transform.InverseTransformPoint(Vector3.zero);
float angle = Mathf.Atan2(relative.x, relative.z) * Mathf.Rad2Deg;
Rot.transform.localRotation = Quaternion.Euler(0,angle - 90.0f, 0);

こうしてあげると、Vector3.zeroをむきつつ90.0度Y軸回転をできます

Google API OAuth 2.0 の認証でハマった

<script type="text/javascript">

var client_id = "クライアントID";
var scopes = 'https://www.googleapis.com/auth/drive';

function checkAuth() {
	gapi.auth.authorize(
	{
	    'client_id':client_id,
	    'scope':scopes,
	    'immediate':true
	},
	function(authResult){
		console.log(arguments);
	}); 
}
</script>
<script type="text/javascript" src="https://apis.google.com/js/client.js?onload=checkAuth"></script>

こんな感じで認証部分を記述しても何度やってもこのエラーが。。

これ位のコードだとGoogle APIの設定を疑うくらいしかないのだが、Google のdeveloper consoleとかapiとかは膨大すぎてカオスで無駄に時間を取られた。

最終的には、API Managerの中の認証情報から、0Auth 2.0 クライアント IDのwebclientのところをクリック

制限事項のURLにローカルの8888ポートを指定していないということでした。。

 

これに気づくまで数時間も時間を無駄にしてしまいました。。

VRシューティングゲーム「GCLOPS」をOculus Store for GearVR のギャラリーアプリで公開しました

GCLOPS

先週の「RingNinja」に続いて、GearVR向けのVRシューティングゲーム「GCLOPS」がOculus Storeのギャラリーアプリで公開されました。Oculus Store

半年前にOculus Storeに申請を出して1度リジェクトされて、そのあとApprovedされたにもかかわらず、keys onlyというステータスでストアでの公開はできませんでした。ストア公開されない理由は特に教えてもらえないので謎のままなのです。その後もエネミーのデザインをマッチョにしたり、動画を入れたり、UIを変えたりと、地道なバージョンアップを続けて、ついに12月8日に公開されました!

そもそも2016年1月にあった「Unity VR EXPO Shibuya」に出展しようと、ちょうど1年前くらいに出たばかりのGearVR向けにとりあえず作っていた射撃ゲームを全面改装しました。その射撃ゲームをテストしている姿がはたから見ていると、XMENのサイクリップスに見えたんですよね。360度見渡しながら右手でGEARVRのパッドを触って打つところとか。

GearVRだと移動ができないので、シューティングゲームはどうしても単調になってしまうのですが、そのあたりはアップデートで変えていきたいと思ってます。

それとVRだと広告モデルがまだないので、基本的に有料アプリかアプリ内課金が主流なのですが、このあたりは難しいところですね。やってみないと面白さのわからないVRこそ無料アプリで出して、広告かアプリ内課金をするというのがあっていると思うのですが、アプリ内課金の場合、追加課金をさせるだけのバリューが必要になってくるので、長時間遊べないVRでは悩み所だなと思いました。とりあえず有料アプリとして190円で出してます。

GearVR持ってる人は是非ダウンロードしてみてください。

ローポリー・アクションゲーム「RingNinja」リリースしました


 

半年くらいコツコツと作ってきたローポリーのゲーム「RingNinja」をようやくリリースできました。

敵を固定するリング

もともと敵を固定してそれを利用しながらクリアしていくゲームを作りたいなと漠然と考えてました。ジョジョのスティール・ボール・ランに出てくるブラックモアのスタンド「キャッチ・ザ・レインボー」で雨を固定して、ブラックモアが登っていくあたりとか、昔ファミコンでよくやったロードランナーというゲームで、床に穴を開けてそこに敵をはめて敵の上を追加するあたりとか、いろいろなもののイメージが混ざって、最終的にリングという道具を投げて敵を固定するというゲームのシステムになりました。

リングが3つの役割を兼ねることでシンプルなルールに

ゲームを開発はじめた当初は、リングはあくまで武器で、リングとは別に得点とか時間とかライフのようなものがあったのですが、こんなにいろんなパラメータ必要ないなと感じて、そのあたりごっそり減らして変わりリングに集約することにしました。

  • 武器
  • ライフ
  • ステージクリア条件

この3つをリング1つで兼ねることにしました。特にライフに関しては、ソニックのリングがヒントになってます。リングつながりでソニックを思い出して、敵に当たるとリングがバラまかれることでダメージを負わずにいるという点ですね。

脳は不思議

で作ってる時も思ったのですが、基本的に脳が昔のゲームとかシステムを記憶しているので、機能やルールを考える時に勝手に自分の経験から似たものを瞬時にとりだしてくるんだなと思いました。敵を固定するところからロードランナーって普通どうやっても思い出さなそうなんですけどね。。しかも裏技か何かで空中で敵を固定するような画面が30年ぶりくらいに頭に思い出されたというw 脳って不思議です。

そんなこんなでようやくリリースができました。ぜひ遊んでみてください。

 

ringninja

ringninja

ringninja

 

giboでunity用の.gitignoreを作る

普段MacとWinを行き来するので、Unityで新しいものを作るときにはgitを介して同期をしています。プロトタイプだろうと何だろうとgitなのですが、ちょっとだけ面倒くさかったのが.gitignoreを作るとき。コピペしてるだけなんだけどそれすら面倒くさいなというのがあったのでgiboを使ってサクッと追加するようにしました。

気付いたら.gitignoreはgiboで自動生成する時代になっていた

こちらを参考にgiboをbrewからmacに入れます。あとは、


gibo unity >> .gitignore

これだけ!むちゃくちゃ簡単