読者です 読者をやめる 読者になる 読者になる

好き勝手に・げーあにん?

ファミコンと同い年の社会人ヌルオタの日記

Unite Japan 2014 の1日目に行ってきたメモ

Unity

去年に続いて今年も行ってきた。

講演の箇条書きメモやら個人的な感想やらのメモ。あまり他人が読むことを考えていない。

ファミ通.comとかにリポート載ってるので、そっち見たほうがいいよ?


開幕前

まず入場した直後にユニティちゃんのコスプレが。クオリティたけえ。かわいい。
会場の諸注意アナウンスもユニティちゃん。かわいい。

基調講演

なんかトラブってたらしく20分遅れで開始。

基調講演恒例(?)Unity自慢、Unity Japanの最近の活動、VRについてな感じの流れ。
物理ベースシェーディングがなんだかすごそうだったけど、モバイルでも使えるんだろうか。ムービー中ではiPadっぽい端末で動かしているようにも見えたけど。いや、最近のiPadって性能高いのでアレだが。

あと、UnityJapanのターンがそこまでの流れとはだいぶ異質で、この国っていいなって思いました(小並)。

以下、箇条書きメモ。

  • ここまでのUnity自慢
    • 主にAssetsStore自慢
  • 最近のUnity自慢
    • EVERPLAY(プレイ動画をアップする仕組み。UnityのAssetもあるよ)
  • これからのUnity自慢(Unity5新機能)
    • 物理ベースシェーディングのデモ
    • リアルタイムグローバルイルミネーション
    • OpenRL Editorの機能。数秒後にレイトレーシングの結果を確認したり出来る。
    • イメージベースライティング
    • Audio新機能(詳しくは他の公演で)

Unity Japanの活動

VR(ヴァーチャルリアリティ)

既存のゲームをVRにしようとするのでは無く、VRを最初から考えた新しいものを考えることが必要。

マシンの性能がどんどん上がっていて実用が近づいている。
高いパフォーマンスが必要。60fpsでも最低限。

Unity でコンソールタイトルを移植する 〜ドラゴンクエストVIII 移植から学 ぶ、大規模開発テクニック〜

個人的には今年のUniteJapanのメインイベント。
内容びっしりで、もっと時間をとって掘り下げた内容を聞いてみたい講演だった。

プログラマー

  • リソースを移植元からそのまま使うものと使わないものに仕分け
    • 使うもの
      • デザインデータ
        • マップ / キャラ
      • AIデータ
    • 使わないもの(作りなおしたもの)
      • UI(スマホ版で縦画面になったためほぼ作り直し)
      • PS2のハード依存の処理など

デザイナー編

データが多すぎるので、1つのUnityプロジェクトファイルでは重くなりすぎる。複数プロジェクトに分けていた。

  • データの自動軽量化。
    • メッシュの結合
    • DrawCall削減のため
  • テクスチャ結合
  • マルチUVの結合
  • マテリアルのリネーム結合
  • UniformScaleアニメーション変換
    • UnityだとXYZに違うスケールが入ると重い処理が入る。
    • Transformを使わず、頂点シェーダーで処理
  • フラットアニメーションカーブ削除
    • メモリ削減
  • 不要なノード削除
    • メモリ削減
  • テクスチャに関するブレンドやアニメーションをすべてシェーダーで行った
    • シェーダー数4600個(!!)。バッチファイルで生成
    • シェーダーをランタイムでコンパイルするとカクつくため、よく利用するシェーダーをまとめて先読み

ゲームデザイン

UI思想/UIデザインの刷新。気軽にスマホで遊ぶために縦持ちにした。

  • フキダシアクション
  • オート会話機能
    • 会話したい相手に近づいて、移動をやめると会話が始まる。移動を始めると会話が終わる
  • 戦闘UI
  • オート移動

Unityテクニカルノー

  • ビルド時間の問題
    • UnityからXcodeへの出力に10分
    • Xcodeのビルドに10分
    • Xcodeから実機への転送で10分
  • 効率的な差分ビルド環境の作成
    • 使えない場面も多い
  • 一番効果があったのは良いMacを買ってもらうこと。
    • データコピーに時間がかかるので、HDDからSSDになるだけでかなり効果がある
  • 当たり判定
    • UnityのColliderをそのまま使うと当たり抜けが多く発生した
    • RaycastはUnityで飛ばし、その後の計算処理はPS2と同様のアルゴリズムで処理した

Unityで移植するのが正しい選択なのか

  • 過去資産とUnityの相性
  • C#へのポーティング
    • メモリ管理、パフォーマンス
  • プラットフォーム依存の処理
    • ハードウェア依存処理
    • 中断セーブ可能な作りか
  • 動作スペックの定義
  • デバイスの定義
  • OSの定義
  • スペックの定義
  • 使用ストレージ料
  • パフォーマンス

ワークフロー

  • Unity→Git,SVN,Jenkins→デバイス
  • CI、テストの活用
  • SCCS活用
  • エディタ拡張活用

ロード&レスポンス

  • 限られたリソース環境
  • 常駐非常駐の仕分け
  • キャッシュの活用
  • 体感速度の向上
  • ユーザーの習性,行動の予測

Unity 5.0 アセットパイプライン/アセットバンドル

Unity5で、AssetBundleを作るのが簡単になるぞという話。今までがめんどくさすぎただけのような気もしないでもないけど(苦笑)。

Unity4までのAssetBundle作成

Unity4まで、AssetBundleを作るには簡単なAssetBundleを作るのにも、依存に気をつけながらScriptを書かなければいけなかった。

Unity5でのワークフロー

  • 依存関係はモデルなどから自動でピックアップする
  • ビルド時間の改良
    • 追加や修正の箇所だけビルドできるようにする(リビルドの頻度が少なくなるようにする)
  • 出力の際に生成されるManifest fileを確認すれば、AssetBundleに何が入っているのかわかるようになる
  • わずかにScriptを書く必要がある

デモ
(UnityEditor上の操作で各Assetに対して、どのAssetBundleに属するかを設定。EditorScriptで出力するファイル名を指定してした関数を呼ぶだけ。というようなデモをやった)

将来的には、Scriptを書かずに、AssetBundle Windowのようなもので作れるようにしたいとのこと。

マルチシーンエディット

  • Runtime Scene manager
    • UnityEditorで複数のSceneを同時に開けるようになる
    • Scriptでは、SceneManager.LoadScene(), UnloadScene() で複数ファイルを実行
      • 今までのLoadLevelと違って、Unloadでシーン単位で消せる。

今までは、ライトマップがあるSceneをLoadLevelするとエラーになっていたが、SceneManagerでは複数Sceneに対してライトマップを作成できるようになるので実質解決される? みたいなことをいってきた気がする。

メモリ的にはLoadLevelとさほど変わらない。

誰でも出来る! MayaLT を使った Unity アセット制作ワーク

リアリティキャプチャを使って作ったモデルをUnityアセットにするワークフロー。
「誰でも出来る」というのは「リアリティキャプチャを使うから、モデリングが出来なくても出来る」という事か。

あまりUnityの話しは出てこなくてキャプチャするコツやらモデルのメッシュの修正をどうするかの話しがメインだった。略。

マルチプレーヤーゲーム開発の民主化、その第一段階

サードパーティのライブラリに頼りがちだったUnityでのオンラインゲーム制作をUnityで対応するよという話。

Unity5.0ではまだ入らない。Unity5系のうちに入るらしい。

UDPベースのマルチプレーヤーFoundationが入るよという話。
低レベルの部分を扱うAPIと高レベルAPIがある。

Unityのクラウド上にマッチングサーバーを用意する。
最初のクライアントが親機になる仕組み。親機が切断された場合に親を引き継ぐ機能もありそう。

Unity でテキスト ADV を作ろう!

UnityではテキストADVゲームが意外と作りにくい話しと、それを解決したAssetの紹介みたいな内容。

Unityと関係ないADVゲーム論な内容が長かったが略。

Unity-Chan! スターティングガイド

世界よこれが日本だ。
なぜかスク水の解説が始まる。ダメだこいつら早く何とかしないと……

Unityちゃん制作秘話みたいな内容。Unityちゃんのキャラクターデザイン論的内容。

ユーザーは「大鳥こはく」という設定を使ってもいいし、「ユニティちゃん」あるいは自作の設定を付与したオリジナルのキャラクターとして仕上げても良い

Unity-Chan ライセンスで提供。現存のライセンスをひと通り検討したが、合うものがなかったため独自ライセンスにしたとのこと。

商用非商用にかかわらず売り上げが1000万を超えない規模の団体の二次創作や、研究や技術でもなどでの利用もOK。詳しくはガイドラインやらライセンス読め。

CVは角元明日香さん。ボイスのリクエストはTwitterハッシュタグ #unitychanvoice にあるものを吟味して増やしていくとのこと。

おわり

特にまとめとかなく終わり。明日も行く。