万年素人からHackerへの道

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

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

    AssetStore 50%OFF

    2012/6/23(土)まで
    http://unity3d.com/unity/asset-store/

    Unity serverメモ

    ❏NetworkView
    NetworkViewがアタッチ(Component->Miscellaneous->NetworkView)されていたらtransform情報(position, rotation, scale)を観測する
    →自動に送ってくれる
    ※サーバからクライアントへ送信。クライアントは送信してない。受信しかできない。

    ❏State synchronization” オプション
    ・ “Reliable compressed”をセット
     サーバでオブジェクトが15秒秒ストップしてたら、なにもデータ送らない。したら、同期データを送る。

    ・“Unreliable”をセット
     信頼できないが同期にかかわらずデータ送る。

    ・“Off”をセット
     同期をストップする。同期のデータを送らない。

    RPCにはnetworkviewは必須!だが、“state synchronization” と “observed” のオプションは使用しない。

    ❏OnSerializeNetworkViewメソッド
    MonoBehaviorのメソッドである。
    networkviewをアタッチされているものでのチェックで

    ❏OnFailedToConnect、OnDisconnectedFromServer、OnPlayerDisconnected
    MonoBehaviorのメソッドである

    ❏RPC

    networkView.RPC("SetPosition", RPCMode.Others, transform.position);.
    

    バッファ追加のRPCはユーザ生成に向いてる。

    ・種類

    RPCMode.Server
    RPCMode.Others
    RPCMode.OthersBuffered
    RPCMode.All
    RPCMode.AllBuffered
    

    cocos2d-xのBox2Dメモ

    b2MouseJoint
    マウスのジョイント
    Jointで繋げられる


    Aiming Study 4 Unity勉強会

    URL:http://www.zusaar.com/event/275053
    「オンラインゲームでAssetBundleを使う事例紹介」
    株式会社Aiming リードエンジニア 細田幸治 @ppcende
    細田MMORPGのサーバ書いたりしてる
    AssetBundle 運用事例

    ■特徴
    ・概要
    外部素材フォーマット
    GameObject、Material、Prefabも入る
    サーバなどに置いてアプリで読み込んで使う
    AssetBundleの作成はProだけ

    アップデート時のコンテンツ追加に便利
    注意点がある
    ポイントを抑える

    ・メリット
    1.アプリケーションサイズを小さく出来る
    2.Apple審査をしなくてもコンテンツを追加できる
    3.キャッシュが効く
    4.アプリ本体とAssetBundleとかでワークフロー(プロジェクトが分けられる)
    キャラの使い回しとか

    ・デメリット
    デメリットが多い
    1.他の素材方式よりもメモリを消費する
    AssetBundleクラス自体がアセットを内包した状態でメモリに載る
    MaterialなどをLoadするとメモリに載る

    2.非同期読み込みになるので”待ち”の実装が必須
    Resources.Load・・・待ち時間なし
    待時間のために複雑になるよ

    3.津新状況によっては読み込み内
    電車などで通信できないとできない

    4.プラットフォーム間で互換がない
    Androidスタンドアローン〜〜で別ファイルフォーマット
    ビルド時にプラットフォームを指定して書きだす必要がある
    Editorではどのフォーマットでも読み込める
    ※Editorならどのフォーマットも読み込める

    5.バージョンを指定しても更新されない時がある
    ブラウザyサーバのキャッシュに載るため、更新したくても上手く反映されない場合がある

    6.スクリプトはAssetBudleに入れられない 大きな問題
    キャラのAIとかできない。unreferenceになる
    スクリプトでAddComponentで行う
    iPhoneではコードの動的生成はNG

    7.Unityがバージョンアップすると読み込めなくなる(3.5.1から下位互換された)

    ■Lord of Knights
    ・何のために使ったか?
    追加コンテンツ(カードイラストなど)
    アドバンスポップアップ素材
    アプリサイズ削減(BGM,背景画像、カード枠、容量が大きい素材たち)

    AppleStoreの3G回線でのダウンロードサイズ制限が30MB

    ・どう実装するか?
     メモリ管理
     最初は1つのAssetBundleに複数素材を入れていたが、ばらばらに分けて読み込み時のメモリを削減
     メモリが少ないデバイス(iPhone touchなど)の場合は使用メモリが120MB以上になったらシーン切替時に
    AsssetBundleを一旦Unloadするようにした
    ※メモリが256MBなので。

    ”待ち”の扱い
    動的に使う素材はインジケーターでアピール
    素材に使う素材はフェードアウト中に先読み

    キャッシュ
    昔はUnityniキャッシュはない?
    Aimingでは独自キャッシュ時の仕組みを実装していた
    (LoadFromCacheOrDownload)
    http://unity3d.com/support/documentation/ScriptReference/WWW.LoadFromCacheOrDownload

    バージョン、プラっとf−無、言語の切り分け

    運用ワークフロー

    質疑応答
    Q.ネットワークゲームのサーバは?

    A.PHP

    Q.
    A.iPhoneはリフレクションが使えない
    Androidアプリでは後でサーバからソースを読み込んでコンパイルできる、

    Q.複数の言語 UIの素材とかは?
    A.まだこれから→ビルドの時に読み込んで出す

    「ShadowGunのサンプルから学ぶモバイル最適化」
    株式会社Aiming リードエンジニア 牧野克俊

    Virtual Gloss Per Vertex Additive
    床とかに使ってる。よく使ってる。

    フラグメントシェーダ

    lowp, mediump,highp
    →ハードウェアによってどの制度が使われるか違ってくる

    Sphare Ambient Occlusion
    →影

    「Unityのエディター拡張で効率よくゲームつくろう!
    実例紹介&ワークフローへの組み込み指針」
    石川将光氏 @lucifuges

    Editor拡張
    ・インスペクタ

    ・独自ウィンドウの作成
    ScriptableWizard
    EditorWindowを継承もOK

    ・アセットインポーターの拡張

    ・各種ビューの拡張

    validateionのボタンとかは?
    Excelの読み込みとか

    Q.FBXとかでReadOnly属性を外すのはできるの?
    A.Animationをコピーする。
    AnimationPosProcessar

    Q.曲線を書く命令は充実?
    A.充実している。線は外部DLLを使っている

    Q.開いていないシーンをなめること。
    A.みられないかも??yamlで保存するとテキストでパースすればいいのでは?

    http://unity3d.com/support/documentation/ScriptReference/EditorGUILayout.html