2014年7月30日水曜日

Unity オンラインFPS

 ええかげんBattleUnionのオンライン化進めたいのですが、箱投げのようなゆるーい感じのオンラインならまだしもガンガン敵出して弾撃って壊してとなると話変わってきそうですので、もう少しPhotonの経験値を稼ぎたいなと思いまして。
 というわけで、今週の1週間げーむじゃむはシンプルな感じのオンラインFPSを作ります。
 現時点ではとりあえず動きが同期して弾撃ってますという段階です。

WebPlayer版:
https://googledrive.com/host/0ByUpVh3J6kXjT09jUTdkQjlqLW8/Web.html


2014年7月29日火曜日

1週間げーむじゃむ2014/07 4週目

普通に風邪ひいたりしてましたが作りました。

提出作品:Extreme Diving
http://unityroom.com/games/play/223

実作業時間だいたい1時間。
短時間でガーっと作るのも面白いですね。普段とは違う脳味噌使ってる気がします。
ちょっと挙動がBuggyなのがアレですが。

2014年7月26日土曜日

Unity スマートフォンの各種センサー値をPCに渡す #3

Githubに動作サンプルを公開しました。
拙い感じではありますが、大体やりたい事が出来た感じがします。
今後も改良を重ねていきたいところです。自分で使いたくて作った訳ですからね。
ドッグフードおいしいです。

最新版のクライアントは前と同じくDropboxに配置しました。

2014年7月25日金曜日

Unity スマートフォンの各種センサー値をPCに渡す #2

 前回のブツの出来がちょっとあんまりな感じがしたので、もう少しいい感じに形を整えました。
 使えそうな値については相変わらず模索中です。
 

 左上のパブリックIP出すべき所に思いっきりローカルなIPが出て恥ずかしい感じですが気にしないでください。
 基本的なところは変わりませんが、ちょっと操作方法が変わっています。あと名前も分かりやすく変更しました。
 ClientModeを実行する際にIDを指定すると、操作に反応するオブジェクトが変わります。

 ファイルは前回と同じ場所に上げておきました。

2014年7月23日水曜日

1週間げーむじゃむ2014/07 3週目

そういえば先週も作ったので書き残しておきます。

提出作品:Hypervelocity
http://unityroom.com/games/play/209

速度に比例して色が変化する■を作って満足してからゲーム部分を作り始めましたが
結局面白い使い方が思い付いかなかったので飾りになりました。
自機の色が回転速度に応じて微妙に黄ばんだりしてるのはその名残です。

ゲーム部分は作ってる時にすごいスピード感を感じたい気持ちがあったのでスピード出てる感のあるゲームにしました。
左右移動時の回転要素は自機の左右移動時にエフェクト回転する演出つけるかー折角だから敵のルートオブジェクトも回転させるかーというノリで実装しました。
回転が加わったことでスピード感が増したり操作性を損なわずにゲーム性が上がった気がします。


Unity スマートフォンの各種センサー値をPCに渡す

 スマホのセンサーをPCに入力するという分野にはDroidGloveというアプリが既にあるのですが、自分でも同じようなのを作ってゲーム中でなんか棒を振り回したりしたいな等と思いました。
 という訳で、やりました。



 とりあえず値は取れますレベルの状態ではありますが作業記録がてら一応ブツを上げておきます。 
 https://googledrive.com/host/0ByUpVh3J6kXjbmROczV0Q3V2YXM

 Good ol' socketsを使用してAndroidからでもソケット通信出来るようにしてあります。
 ネットワーク越しでも接続できますが、ポートの解放が必要になると思います。

2014年7月17日木曜日

Unity WebPlayerから直接ツイートする方法

 WebPlayer上で直接ツイートをしようとするとcrossdomain.xmlが無い等というエラーで弾かれます。
 多分https://twitter.com/crossdomain.xmlの制約に引っかかってるのかと思いますが、とりあえずこの問題を回避する為にGAEを中継しようと思います。

 以下のサイトを参考にさせて頂きました。というよりはほぼそのまま使わせて頂いております。
http://www4370ue.sakura.ne.jp/crimson/2013/02/python-oauth2%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6twitter%E3%81%AB%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B/

 要はWebPlayerからPostされた内容をGAEが受け取ってTwitterに中継すればいいのでPost時に上記サイトで紹介されている処理を動かせばOKです。
 こんな感じですね。



 幾つか導入が必要なライブラリがあります。
 Githubで公開されているライブラリをダウンロードして、プロジェクトに追加しましょう。適切なフォルダをドラッグ&ドロップすればOKです。
 他の部分はhttp://soyliquid.blogspot.jp/2014/06/gaeweb_28.htmlと同じ要領でOKです。

 もしwebapp2でエラーが出た場合はapp.yamlに

libraries:
- name: webapp2
  version: latest

 の記述を追加してみてください。

2014年7月14日月曜日

1週間げーむじゃむ2014/07 2週目

一夏のアバンなんちゃら。

提出作品:Virtual Summer Program
http://unityroom.com/games/play/202

どうも環境によってはクラッシュするようなので
原因調べて対処しておきたいところです。

Unity エディタ拡張 Hierarchyに各GameObjectのTagとLayerを表示する

 UnityはEditorの拡張が容易にできるそうです。という訳で、実際にやってみました。
 以下のような内容のスクリプトをAsset/Editorディレクトリに作成します。

*** HierarchyInfoAddon.cs

using UnityEngine;
using System.Collections;
using UnityEditor;

[InitializeOnLoad]
public class HierarchyInfoAddon {

static HierarchyInfoAddon() {
EditorApplication.hierarchyWindowItemOnGUI += GUIRefresh;
}

static void GUIRefresh(int instanceID, Rect selectionRect) {
GameObject o = (GameObject)EditorUtility.InstanceIDToObject(instanceID);
if(o == null) return;
Rect r = selectionRect;
r.x += r.width - 50;
GUI.Label(r, Cut(o.tag) + "/" + Cut(LayerMask.LayerToName(o.layer))); 
}

private static string Cut(string s) {
if(s.Length >= 3) {
return s.Substring(0, 3);
} else {
return s.Substring(0, s.Length);
}
}
}

***
 
 その結果がコチラです。

 TagやLayerの指定をうっかり間違えてそのまま気付かずに悶絶することが度々あったので
 こうやって一覧で見えるようにしておけば安心です。

Unityでビルドサイズを手動で削減する方法

 がんがんAssetを突っ込みまくっていざビルドしてみたら
 異様にファイルサイズが巨大化して悶絶したことはありませんでしょうか。
 先程悶絶しました。
 なのでその時の対処法を書き残しておきます。

1.ファイルサイズの内訳を調べる
 一回ビルドした後にログを表示します。
 ログはConsoleタブの右上のメニューから表示できます。
この赤枠で囲んだ項目をクリックすればOKです。
 
 Editor.Logが表示されますので、末尾から"player size"で検索しましょう。
 こんな感じでビルド時のファイルサイズの内訳が見えます。

2.不要なファイルを削除する
 http://docs-jp.unity3d.com/Documentation/Manual/ReducingFilesize.html
 本来Unityは不要なファイルを省いてビルドしてくれるそうですが
 何故かダメな時もあるので、そんな場合は手動で除去しましょう。
 UnityEditor上から不要なAssetを選択して削除すればOKです。

2014年7月7日月曜日

1週間げーむじゃむ2014/06 5週目・2014/07 1週目

先週の成果物です。

提出作品:Star World Crisis
http://unityroom.com/game/000094

横STGのゲーム性についての今の自分なりの回答。
スピード感とサウンドと破壊の手応え。

大体
「エフェクトそのままだと挙動が嘘過ぎで浮くなあ。空気抵抗受けないと」
「撃墜時に慣性無視して垂直落下するのは嘘っぽい……」
「着水したら水柱あげないと嘘っぽい……」
「着水したら水に引っ張られて減速しないと嘘っぽい……」
という挙動の嘘っぽさを解消することに工数の大半を費やした気がします。

2014年7月2日水曜日

1週間げーむじゃむ2014/06 4週目

ブログの方に書いてなかったので一応書いておくなど。

提出作品:THE 箱投げOnline

物理演算使った協力型アスレチックをつくろう
→足場用の箱持たせよう
→持ち上げた箱がいい感じの挙動するようにしよう
→箱投げてる方が楽しくなってきた

だいたいこんな経緯でできました。