満員御礼/増員265名】第一回 渋谷Unity勉強会xコロプラUnity事例発表
http://atnd.org/events/24279#ShibuyaUnity
まとまってる
http://togetter.com/li/250240
■コロプラ発表
ニコ動チュートリアルで勉強。
40〜50万DL
月1でアプリを出す。
アライアンスチーム
・Kuma the Bear
月3本でリリースを目指しチームをビルド中
現在8人
数カ月で30人
◯メンバー募集
Unityを極めたいエンジニア
コンシューマゲームプログラマー
ゲームデザインしたいグラフィッカー
スマフォ大好きなプロデューサ
■スマートフォンとUnityのTips(コロプラ代表)
・Draw Callを減らそう
・スマフォではフォーラムでは30以下を目指そう
・動かないものはstaticに
・3D以外のことではDraw Callが増えてしまう。
→GUI Textureを増やすと(※必ずではないが)増える
EZGUIを使っている(UVSetされ、最適化されている)
UnityのGUIは重い、作りづらい
Draw CallはGPUに渡すパイプラインで重くなる。
・モデルデータを分割する
・日本語が使える。
・NexgenGUIとかべつのGUIツールがあるが、EzGUIより悪い
・3.5ではUVで晴れる解決されるかも?
◯メモリを節約すよう
・国産端末、メモリ少ない
AQUOS PHONEなど(prefabを起動にすべてのリソースを使うと射的ゲーム(The 射的)は起動に50秒かかってしまった)
・prefabの静的ひも付けに注意
・起動時にメモリ読み込みされてしまう。
→「このシーンにはこのPrefabを使います」ということを行う
→Instantiateせずにメモリに読み込まれてしまう(メモリにロード)
→起動がお遅くなる
・適時Resources.Loadで(任意のタイミングでロードする。あとはメモリに読み込まれる)
→コンテンツの内容と同時に
・シーンで分けて方が良い。
※AQUOS PHONEでテストするといい
◯サイズ削減
・Androidで13Mをゴールに
apk→解凍→実行ファイルを抜いてまたzip圧縮する だいたい同じサイズになる
・EditorLogで大きいものから確認を(意外と知られてない、韓国でヒットしたゲームを作成した人も知らなかった)
Window→Console→Open EditorLog
元あるものから変更してビルド
「どのファイルでどのくらい大きさを食ってるかが分かる」
◯演出で工夫
・射的dクマが振り向いてプライズを隠してResources.Load
・コインゲームではプッシャーが引いたとき(動作があまり重くなさそうなとき)にGCをした
■Q&A
Q.GUIツール、を使用した際の問題点
A.GUIが反応しない(ボタンが押せないバグ、3.4はできないが3.5ではなおってる)
モードを切り替えると起こる(出る端末やでない端末がある)
リジューム復帰時に起きる→EzGUI内部のフラグでなおした(コードを解析してなおした)
Q.GCの任意のタイミング
A.メモリ関係はいじれない(効くかどうかは分からない)
メモリ上から消すのは難しい
Q.モーションキャプチャの方法をどうやってキャプチャリング?
A.共同会社にお願いした
モデラーの人がいない
Kinectでモーションキャプチャーを整える
Q.iPhoneで作ったアプリでUnity自体のバグが直らないどうすればいい?
A.Unityの思想的には気にしては負け
モデラー、デザイナーでは難しい
■大前さん
GGJ2012ポストモーテム(事後検証)
48時間でゲームはどこまで行けるのか
5回目の挑戦と反省
postmortem・・・【名詞】【可算名詞】1検死(解剖).2(失敗の)事後検討,反省会
日本語版Webサイト公開もうすぐ。
・GGJ参加人数
去年3000人今年は6000人
去年は200人、今年は400人
・Jamは今回で5回目なので「勝ちパターン」でない作り方
→第失敗する
・PostEffect
http://unity3d.com/support/documentation/Components/script-AntialiasingAsPostEffect.html
・SplitScene
・コンセプト共有
WipeoutHD
Coursor 10(Flashのゲーム)
※ただしコレには穴があり・・・
・チームの能力把握
最初のタイミングで手を上げてもらったものについて、土曜の昼くらいまでに一旦全員の作業ができるようにした
無理は刺せない、できることをさせる(しかし本人がやりたいこと思えることをしてらう)
ステージデザインは並行作業させたい
・高橋さんのScene Margerをgithubで公開されている
https://github.com/keijiro/unity-splitscene
→加算ロードしてくれる
オーバーレイにおいてくれる
※オーバーレイを捨てて保存してくれる
・レベルデザイン
レベルベースはメインの人がプレイヤーを配置したり道にそってディテールをつけてくれる
辺りがあったら
大前さんのテキストエディタBBEdit
http://www.barebones.com/
・SceneMergerに変更を加えた
http://unity3d.com/support/documentation/ScriptReference/GameObject.FindGameObjectsWithTag.html
指定したタグのやつが1つでもあったSceneMergerを殺す
・CharacterController
3rd personのデフォはカメラ座標系で左右に曲がる処理なのでカメラ処理とキャラ移動を同時に作らないといけない
・エンジニアは「調査込み」で担当することが多い
・チームリーダーになると、48時間は営業日換算で1週間分いうことを聞いてくれるチームが無料で手に入る
CustomEditor の使い方 Unity
今更だが、プラグインを書きたいのでこれを見た。http://unity3d.com/support/documentation/ScriptReference/CustomEditor.CustomEditor.html
以前やったのに忘れてまたハマったが、これはC#ではなくUnityScriptで書かれている。
「MyPlayerEditor.js」ってファイルを作り、「SimpleExampleScript.js」を実際のオブジェクトへアタッチする。
するとアタッチされたオブジェクトのインスペクタ上にスライドバーがでる
・MyPlayerEditor.js
// いかなるSimpleExampleScriptもInspector上で検出するシンプルなカスタムエディタ // IntSliderとバーを表示する @CustomEditor(SimpleExampleScript) class CustomEditorExample extends Editor { function OnInspectorGUI() { // Get the place of the next available position in the script target.damage = EditorGUILayout.IntSlider("Damage:",target.damage,1,100); ProgressBar (target.damage / 100.0, "Damage"); target.armor = EditorGUILayout.IntSlider("Armor:",target.armor,1,100); ProgressBar (target.armor / 100.0, "Armor"); } // Custom GUILayout progress bar. function ProgressBar (value : float, label : String) { var size : Vector2 = GUI.skin.GetStyle("ProgressBarText").CalcSize(GUIContent(label)); var rect : Rect = GUILayoutUtility.GetRect (size.x, Mathf.Max(size.y)); rect = Rect(rect.x + 4, rect.y, rect.width -8, rect.height); EditorGUI.ProgressBar (rect, value, label); EditorGUILayout.Space(); } }
・SimpleExampleScript.js
// こっちはエディタ用スクリプトではない var armor : int = 75; var damage : int = 25;
PythonフレームワークJuno
Sinatraみたいに簡単。・github
https://github.com/breily/juno
⇛github使わなくてもeasy_installできる。
・日本語で解説されてます
http://d.hatena.ne.jp/mizchi/20100609/1276019834#c
・テンプレートエンジンJinja2の公式サイト
http://jinja.pocoo.org/docs/templates/
・公式(閉鎖??)
http://brianreily.com/project/juno/