万年素人からHackerへの道

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

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

    Unity 3 Game Development Hotshot

    ネットにあるのと大差ないらしい?


    エンジニアのためのUnity勉強会 #aimingstudy 01 勉強会

    http://atnd.org/events/18939
    赤坂玲音さん
    ハイトマッピングを先にする
    Uniyuにおけるオブジェクトとは
    GameObject
    シーンの中にありとあらゆつものが全てObject(地形、キューブ、サウンド、照明)。
    空のGameObjectとは?
    カメラ、ライトをどのように統合するか?

    ◯CrateEmpty(入れ物、コンテナ)
    座標を持っているだけ
    コンポーネント(パーティクル、メッシュ、オーディオソース)
    テンプレートみたいなのはCreateOtherからできる
    カメラが光源の代わりにもなる。ライトコンポーネント
    シーンはビルド時に固定された常法。
    ユーザーが実行時に処理をするのはスクリプト
    スクリプトもアセットの一種。
    Projectは実装のフォルダはプロジェクトフォルダSamplesの「Asset」の中

    Assets→Create Assets

    中間言語は出来れば言語が何でもいい。
    .NET(mono)

    Boo、JavaScriptC#がサポートされている。
    最利用するものはC#がお勧め(構想的にかけるので)
    ほぼ同じ中間言語
    MonoBehaiviorを継承する。
    エディター(Edit→Preferenceから変更できる)
    以前は単純なのが出てたが、monoデベロップ
    Visual Studio を使わなければmono Develop(赤坂玲音さんはVisual Studio 2010)
    Startメソッド、Updateメソッド
    スクリプトコンポーネントの一種として振る舞う。
    メッシュ、Box Collider。
    オイラー角 = Euler
    Unityプロジェクトの中、逆アセンブルで見られる。
    アセンブル(命令、パラメータ)
    .NETプログラマであれば、逆アセンブラでUnityのコードのアセンブルはいい。
    Runtime classes 主なクラスの一覧。
    MonoBehgaiviorを継承→オブジェクトのコンポーネントとなれるクラス、オーバーライドしていく。
    Startメソッドが呼ばれる。
    エディタで出来るのはほぼ、スクリプトでできる。
    スクリプト
     人間だとパターン化されるので、アルゴリズムで出来るメリットがある

    ・エディタの拡張
    エディタ用の
    スライダにしてあげることが出来る。
    ステージ用のデザイナさんが変な値を入れるのを防止できる。
    不正な値があれば弾ける
    Unity Engine CustomEditorを継承する
    http://unity3d.com/support/documentation/ScriptReference/CustomEditor.html

    CustomInspectorTarget
    ゲーム開発を便利にする
    特定のゲームとかオブジェクトに依存しない。
    再利用性の高いものを作って、再利用する。
    簡素なのはデザイナーでもできるが。Developerでも。

    ・質問
    Q.スクリプトのエディター、Visual Studioのいいことは?
    A.コードのチェック。エディターに書いている辞典で優秀。
    A.インテリセンス。入力の支援。
    ドキュメントをわざわざ調べなくてもサクサク出来る

    ・高橋さん
    フリーランス
    去年から触った

    CubeSeege
    ロゼッタさん(渋谷)の受託

    Abstractパズルゲーム
    ※Abstractゲーム(囲碁や、将棋などの先読みの深いゲーム)

    かつて、POSIT(ぽじっと)というボードゲームがあった。諸事情で名前が変わった。
    POSITのひとが、iPhoneでできないか?とプロデューサになった。

    当時叶えられなかったのが実現した
    開発テーマ
    →「Unityを使ってみる」ことも1つのテーマ
    Unityが去年であるらしいぞ?→試してみたい
    95%はUnity,残り5%は
    ほぼJavaScriptで書いた。
    AIはC#で書いた。内部ルーチン。抽象度。
    モバイル向けは書いていいのか?
    ネイティブで書かなきゃ遅いでしょ?
    AIはネイティブが早い確信はあった。
    線引き ゲームのコアとなる部分はポータビリティとなるのは
    コアとなる部分はUnityで。
    詰めキューブ。(詰め将棋みたいなの→お題を出して解いていく)
    エディター。ブラウザでSafariが動いている。プラグイン上で動いている。HTMLとJavaScript。Webアプリみたいに。
    汎用性を高くすると、開発するときのメリットもある。
    5%→ネイティブコード iOSなので、ObjecttiveーC

    ・ネイティブ
    警告ダイアログ
    ブラウザ表示
    リーダーボード、アチーブメント
    Facebook拡張
    iADの組み込み

    ・利点
    凝りたいところにこる余裕
    ライティングさせる、もわーと浮く
    めんどくさいところも実装しきった
    With-in、With-outしなきゃ
    iOS版は、Dynamic-shadowはできない
    →プロジェクションをやるとごちゃごちゃになりやすい
    コストが安く出来る

    ・ジオメリクス
    MiKADO WORKS
    コンシューマ頃のプランナーの個人活動用のブランド。
    個人で作ってみたい。オファー→安く作りたい。

    iPhone3G以上で動く、無料
    多面体に数字を押す。つなげていく。時間を競う。
    Androidはタッチ情報を遅れる。

    隙間に入るのが多い。
    雑誌の執筆。
    軽くコンサル。

    難題→あきらめたくないので、少ない時間で実装。
    完成までに80時間
    iTunesのアチーブメントの設定

    2週間くらい?

    1日2時間くらい?1.5ヶ月くらい。

    素材作成が殆ど。
    GameCenterの設定。

    GameCenterノプラグイン
    StoreKitのプラグイン
    Adを入れるプラグイン
    AdMobを対応していない。
    AdStrike、AdMaker→オミットした

    数字が爆発するエフェクト→カメラの動かしで見た目が変わる
    ズームが入った。
    UIが入ったときに。
    カメラチームがいたら。
    納得行くところまで凝れる余裕。

    まとめ(CEDECでも話した)
    ゲームエンジン導入のコツ
    ゲームエンジン≠ 技術アセット
    Unityもこういうラベルをつけて売ってるんだ!
    →一面的な見方
    実際は・・・ゲームエンジン = 技術(メソッド
    技術があるからすごい 使い方が変わったからすごい。

    ・喩え話
    普通:車で移動
    ゲームエンジン:飛行機で移動

    →やってるメソッド自体がそもそも違う

    良さそうじゃんって乗り、メソッドがそのまま(飛行機で道路を走るような)

    アンリアルエンジンでもいわれていた
    →ターンアラウンドタイムがプロトタイプを良くする

    起案←→実装


    チームをうまくやっていく
    ルールを作らないといけない
    プロトタイプの段階

    Unity
    →既にプログラマには向いてないかも?
    →プログラム触ったことないみたい

    パフォーマンスチェック→プロ版でしかみられない

    フィルゲートが原因はわからない。
    →シャドーガンの高速化のPDFがある。

    UnityとC#

    年末発売



    Screener

    これは凄いや、ブラウザから実行できてブラウザ出表示されたものに限らず動画の録画可能。
    http://www.screenr.com/

    C#でハマったこと

    Vector3 vec = this.transform.position + (new Vector3(-1.2F, 0.0F, 0.8F));
    

    new Vector3はカッコいる

    Object obj = Instantiate (punchBox, vec, Quaternion.identity);
    

    Instantiateの返りはObject。GameObjectではない。

    エンジニアのためのUnity勉強会 #aimingstudy 01 勉強会

    http://atnd.org/events/18939