万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    満員御礼/増員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/