Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

勉強会レポ : Unity++ 〜ショートセッション勉強会 presented by Unity部〜

勉強会のレポート(メモ)です。
参加したのはこちら、「Unity++ 〜ショートセッション勉強会 presented by Unity部〜」
会場はユニティ・テクノロジーズ・ジャパンさんです。

meetup.unity3d.jp

ハッシュタグ : #unity_pp

f:id:Raspberly:20190720235752j:plain



 

 

 

 

今回は現場で役立つ内容を重視したものになっています
それぞれのメンバーの得意分野における知見を共有します

主催はUnity部、会場提供はUTJです。

 


#1 Democratized Unity Package Manager

 

今回の内容にもっと肉付けしたものをunibook11でのせます

UnityPackageManagerの概要

unityの公式機能、ライブラリ、アセットの依存を管理する仕組み
2019.1で大幅に機能が増えました。

非常に内容が豊富なのでスライドを参照してみてください。

 

まとめ

PackageManagerは便利なので使っていきましょう
詳しくはunibook11でどうぞ

 


 

 

 


#2 よーし、パパ Cinemachineを2Dプロジェクトに適応して遊んじゃうぞー

 

今回は2Dプラットフォームゲームにおけるカメラワークのお話をします

プレイヤーにカメラを追従させたい場合どうしますか?

・親子関係にする
・Positionで追従させる
・ParentConstrainを使う

もっといい感じにしたい時はCinemachineを使いましょう

Cinemachineは新しいカメラシステムのことです。

以下のようなことができます。

・遅延移動や先読み追従させたい
・特定の範囲から外を見せたくない
・ステージ感の移動に対応してほしい
・複数のターゲットに対応してほしい
・カメラシェイクに対応してほしい

詳しくは資料をどうぞ。

 


困ったらドキュメントを見ましょう。
テラシュールブログもとても参考になります。

tsubakit1.hateblo.jp

 

告知


 

 

 

 

#3 アクションゲームにおけるポーズ系演出の難しさと解決

アクションゲームで時間制御をすることはなかなかめんどう

・時間を停止させ、特定のキャラだけ動くことができる
・時間を遅くし、特定のキャラだけ通常速度で動くことができる

これらを簡単にするのがChronos
これを使うことでスクリプトを複雑にすることなく実装できます

結論

時間制御をすることは重要だがUnityで実装すると複雑化する
Chronosなら簡単に実装することができます
unibook11で今回の話を記載しています

 


 

 

 

 

 

#4 Preview機能をプレビューする 公式Localizationパッケージの今

 

なぜこのタイミングでローカライズなのか

UDPというサービスが始まりました。これによりローカライズの対応が増える可能性があります。

ローカライズの機能はまだ開発中でプレビュー段階です。
ぜひ触ってください。フィードバックをいただければともいます。

Localizetaion Package

Unity2019.1以降でのみ使えます
Manifestに記述するだけで使えます


ここでデモタイム
動画が公開されたらそちらをどうぞ


覚えて帰ってほしいこと

UDP

サードパーティストアにアプリを配信できます

LocalizeText

文字や画像をローカライズできる

 

今回の内容はUnityコーヒーミートアップと重なる部分があります。併せてどうぞ。

raspberly.hateblo.jp

 


 

 

 

 

 

#5 Unity開発者が知っておきたい.NETのこと

昔のUnityとC#はつらい時代もありましたがUnityは進化してきました
今回はC#に関係のある知見を紹介します

工夫せず最新のC#をUnityで使う

ProjectSettingsで設定するだけで新しいC#になります
今はデフォルトで設定されています

API Compatibility Level どっちを使えばいいのか

これを変えるとプロジェクトで参照する.NETのDLLが変わります
使えるライブラリも違います、使えるAPIの数、成果物のサイズなど

おすすめはStandard 2.0
これにないクラスを使いたくなったら切り替えましょう

.NET Standardって何だよ

.NET Framework Core Monoなどクラスライブラリが提供する仕様、規格のこと

理解するためのポイント

.NET実装がいくつかあります
実装ごとにクラスライブラリが違います

.NET実装とは

.NET Framework、.NET Core、Monoなどのこと

 ライブラリ開発者にとって、.NET実装ごとに個別に対応するのは難しい
ランタイムは決まっているが、クラスライブラリはバラバラ
Standardにもバージョンがあり新しいほど使えるAPIが増える

unityでは2018.1以降はstandard2.0をサポートしています

まとめ

Unityと.NETも進化しています
正しく理解して正しく使いましょう

 

 

MagicOnionの話題が少し出ていました。
先月にMagicOnion勉強会というイベントがりましたので併せてどうぞ。

raspberly.hateblo.jp

 


 

 

 

 

 

#6 Unity サウンドTips 2019

 

Unityサウンドエキスパートの本を書いています。
これを書いたときの面白かったトピックを紹介します。

ふりかえり編

Unite2018で講演していますがその時のフェード処理についての補足

サウンドエフェクト編

ゲームエンジニアにとって不慣れな単語が多く出てくるため障壁が高い
AudioMixerはちょっとハードルが高いがとても多くのことができます
ダッキング・エクスポーズ・スナップショットなどとても優秀
しかし公式のマニュアルがとても難解

VR

VRは音の分類が通常のゲームと違う
VRでは従来に加え指向性を持った音、360度から聞こえてくる音がでてきます。

指向性を持った音

位置情報を表現できる音
初期反射や後期反射など

360度持った音

特殊なマイクで360度の音を収録し、サウンドデータしたもの


VRサウンドSDKはいろいろありますが、
多くの場合Oculus Integrationに含まれているOculus AudioSDKがよい、

・フィート、メートルが統一されていない

・TrackerRemoteの名前が最近変わった

・Spatializer処理はそれなりに重い

 

ADX2編

オーディオプロファイラーのご紹介(ここでデモタイム)

知らなかったそんなの編

Audio DSP Graphというものが突如出現
プレビューパッケージですらない状態でドキュメントが少ない
実用されるのは2、3年先だと思われます

まとめ

サウンド機能は奥深い
みなさんもサウンドにこだわっていきましょう


告知

本を書いています。会社にも買って置いてもらいましょう。

Unityサウンド エキスパート養成講座

Unityサウンド エキスパート養成講座

 


unite2019で登壇します

 


 

 

 

 

 

 

 

 

#7 UniTaskについて

 

うちの子グッズ売ってます。よろしくお願いします。

UniTaskの概要

Unity向けのAync/Awaitの拡張ライブラリ
標準機能ではないので自分で導入が必要
もとはUniRxの一部でした

async/awaitでなんでもできるようにするライブラリです
・コルーチンの置き換えができる
・既存のTaskよりパフォーマンスがよい
・UniRxよりわかりやすい

導入方法

GitHubからインポートしましょう

使える条件

C#7が使えること
安定して使うなら2018.3以降がよい

 

提供する機能

UniTask型 UniTask<T>型

Unity用に最適化されたTask-likeオブジェクト。使い勝手は通常のTaskと同じ。
作り方は3パターンあります。

注意点
1.Observable変換するのであれば必ず完了する状態にすること
2.Taskを変換する時、UniTaskだと必ずメインスレッドになります

 

Staticメソッド群

特殊な挙動をするUnitaskを生成するメソッド群
UniTask.Run  UniTask.Delayなどなど
Unity向けに調整されているだけあって使いやすい

Unity機能のAwaiter

AwaiterとはオブジェクトのAwaitに必要なオブジェクト
UniTaskはあらゆるオブジェクトのAwaiterを提供しています

UniTaskTracker

await中のUniTaskを可視化するEditor拡張


非同期処理とキャンセル

非同期処理はキャンセルを常に考慮しないといけない
UniTaskを使うとき当然自分でキャンセルを実装する必要があります

 

UniTaskは何に使えばいいのか

何にでも使えます。深く考えずに使えそうなところでどんどん使おう
async/awaitを使うなら標準Taskはつかわない
UniRxは用途に応じて使いましょう

まとめ

UniTaskは便利なので使いましょう
今回の補足はunibookで、現在本も書いてます

 


 

 

 

 

懇親会

 

f:id:Raspberly:20190721000146j:plain

 

f:id:Raspberly:20190721000202j:plain

 

 

 

 

タイムライン

 

 

 

他の方の感想ブログ

shinkufencer.hateblo.jp

 

monry.hatenablog.com

www.nowsprinting.com

 

 

 

 

間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。