勉強会のレポート(メモ)です。
参加したのはこちら、「Unity++ 〜ショートセッション勉強会 presented by Unity部〜」
会場はユニティ・テクノロジーズ・ジャパンさんです。
- #1 Democratized Unity Package Manager
- #2 よーし、パパ Cinemachineを2Dプロジェクトに適応して遊んじゃうぞー
- #3 アクションゲームにおけるポーズ系演出の難しさと解決
- #4 Preview機能をプレビューする 公式Localizationパッケージの今
- #5 Unity開発者が知っておきたい.NETのこと
- #6 Unity サウンドTips 2019
- #7 UniTaskについて
- 懇親会
- タイムライン
- 他の方の感想ブログ
今回は現場で役立つ内容を重視したものになっています
それぞれのメンバーの得意分野における知見を共有します
主催はUnity部、会場提供はUTJです。
#1 Democratized Unity Package Manager
本日の「Unity++ 〜ショートセッション勉強会 presented by Unity部〜」で発表したスライドです。https://t.co/qKI4WqsXHD#unity_pp
— もんりぃ先生📔マンガでわかる Unity 連載中 (@monry) July 20, 2019
今回の内容にもっと肉付けしたものをunibook11でのせます
UnityPackageManagerの概要
unityの公式機能、ライブラリ、アセットの依存を管理する仕組み
2019.1で大幅に機能が増えました。
非常に内容が豊富なのでスライドを参照してみてください。
まとめ
PackageManagerは便利なので使っていきましょう
詳しくはunibook11でどうぞ
#2 よーし、パパ Cinemachineを2Dプロジェクトに適応して遊んじゃうぞー
「Unity++ 〜ショートセッション勉強会 presented by Unity部〜」でこれから話す内容の資料です💨 #unity_pp | よーし、パパ Cinemachineを2Dプロジェクトに適応して遊んじゃうぞー / Adapt cinemchine to 2D project https://t.co/XjU9ym7OXP
— 青木とと(ˊᗜˋ*) (@lycoris102) July 20, 2019
今回は2Dプラットフォームゲームにおけるカメラワークのお話をします
プレイヤーにカメラを追従させたい場合どうしますか?
・親子関係にする
・Positionで追従させる
・ParentConstrainを使う
もっといい感じにしたい時はCinemachineを使いましょう
Cinemachineは新しいカメラシステムのことです。
以下のようなことができます。
・遅延移動や先読み追従させたい
・特定の範囲から外を見せたくない
・ステージ感の移動に対応してほしい
・複数のターゲットに対応してほしい
・カメラシェイクに対応してほしい
詳しくは資料をどうぞ。
困ったらドキュメントを見ましょう。
テラシュールブログもとても参考になります。
告知
こちら告知させていただいたイベントです/// #unity_pp | [非公式] Unite Tokyo 2019 Eve2 LT Fes https://t.co/SrJ6ifUDL3 #UniteEve2
— 青木とと(ˊᗜˋ*) (@lycoris102) July 20, 2019
#3 アクションゲームにおけるポーズ系演出の難しさと解決
アクションゲームで時間制御をすることはなかなかめんどう
・時間を停止させ、特定のキャラだけ動くことができる
・時間を遅くし、特定のキャラだけ通常速度で動くことができる
これらを簡単にするのがChronos
これを使うことでスクリプトを複雑にすることなく実装できます
結論
時間制御をすることは重要だがUnityで実装すると複雑化する
Chronosなら簡単に実装することができます
unibook11で今回の話を記載しています
#4 Preview機能をプレビューする 公式Localizationパッケージの今
さっき話したローカライズのやつのスライドですー #unity_pphttps://t.co/ttFAlmKSKG
— かまた@7/20 Unity++ ショートセッション (@kamayuki_fs) July 20, 2019
なぜこのタイミングでローカライズなのか
UDPというサービスが始まりました。これによりローカライズの対応が増える可能性があります。
ローカライズの機能はまだ開発中でプレビュー段階です。
ぜひ触ってください。フィードバックをいただければともいます。
Localizetaion Package
Unity2019.1以降でのみ使えます
Manifestに記述するだけで使えます
ここでデモタイム
動画が公開されたらそちらをどうぞ
覚えて帰ってほしいこと
UDP
サードパーティストアにアプリを配信できます
LocalizeText
文字や画像をローカライズできる
今回の内容はUnityコーヒーミートアップと重なる部分があります。併せてどうぞ。
#5 Unity開発者が知っておきたい.NETのこと
昨日のUnity++のセッション資料です!
— むろほし@7/20 Unity++ ショートセッション (@RyotaMurohoshi) July 21, 2019
* Api Compatibility Levelが、.NET Standard 2.0だと使えないクラスを更新しました!
* 時間の関係で直前でカットした、.NET Standard 2.1とか.NET 5のこれから先の.NETのことを追加しました!https://t.co/Lw26nc0dOC#unity_pp
昔の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勉強会というイベントがりましたので併せてどうぞ。
#6 Unity サウンドTips 2019
本日講演の資料です:Unity サウンドTips 2019 #adx2 #unity_pp https://t.co/pO9ex0fj2U Audio Mixerの罠とか、VRサウンドのおさらいとか、ADX2のプロファイラ機能の紹介をしました!
— ichijo (@Takaaki_Ichijo) July 20, 2019
Unityサウンドエキスパートの本を書いています。
これを書いたときの面白かったトピックを紹介します。
ふりかえり編
Unite2018で講演していますがその時のフェード処理についての補足
入門編はこちらを参照 #unity_pp |【Unite Tokyo 2018】Audio機能の基礎と実装テクニック #audio #unite https://t.co/59OlMUlVJ6 @SlideShareさんから
— 青木とと(ˊᗜˋ*) (@lycoris102) July 20, 2019
サウンドエフェクト編
ゲームエンジニアにとって不慣れな単語が多く出てくるため障壁が高い
AudioMixerはちょっとハードルが高いがとても多くのことができます
ダッキング・エクスポーズ・スナップショットなどとても優秀
しかし公式のマニュアルがとても難解
VR編
VRは音の分類が通常のゲームと違う
VRでは従来に加え指向性を持った音、360度から聞こえてくる音がでてきます。
指向性を持った音
位置情報を表現できる音
初期反射や後期反射など
360度持った音
特殊なマイクで360度の音を収録し、サウンドデータしたもの
VRサウンドSDKはいろいろありますが、
多くの場合Oculus Integrationに含まれているOculus AudioSDKがよい、
罠
・フィート、メートルが統一されていない
問題の画像#unity_pp pic.twitter.com/yG4XJ4WI4y
— アズマゴロー@放置系 ハクスラモンスターズ (@azumagoro) July 20, 2019
・TrackerRemoteの名前が最近変わった
・Spatializer処理はそれなりに重い
ADX2編
オーディオプロファイラーのご紹介(ここでデモタイム)
知らなかったそんなの編
Audio DSP Graphというものが突如出現
プレビューパッケージですらない状態でドキュメントが少ない
実用されるのは2、3年先だと思われます
まとめ
サウンド機能は奥深い
みなさんもサウンドにこだわっていきましょう
告知
本を書いています。会社にも買って置いてもらいましょう。
unite2019で登壇します
情報出た! #UniteTokyo2019 では
— ichijo (@Takaaki_Ichijo) July 17, 2019
「ライブ・ストリーミングに参加せよ!Genvid が変える動画視聴体験」というテーマでUnity + #Genvid が実現するコンテンツの可能性についてお話しますー! #GenvidJphttps://t.co/zuoiSU1Gfg pic.twitter.com/k0rL9bbuse
#7 UniTaskについて
UniTask入門https://t.co/0YSFciIwLO
— とりすーぷ (@toRisouP) July 20, 2019
資料公開したよ
#unity_pp
うちの子グッズ売ってます。よろしくお願いします。
「カシス」アクリルキーホルダー | torisoup https://t.co/ALDw6DpRnC #booth_pm
— とりすーぷ (@toRisouP) July 12, 2019
販売中です!!!
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で、現在本も書いてます
懇親会
あげあげ!!!#unity_pp pic.twitter.com/BsfmblpYVX
— しんーーご.vrm (@shi_k_7) July 20, 2019
サンドイッチ!唐揚げ! #unity_pp pic.twitter.com/Se31tplcfu
— 青木とと(ˊᗜˋ*) (@lycoris102) July 20, 2019
タイムライン
受付開始しています
— えんちゃん (@enpel) July 20, 2019
#unity_pp pic.twitter.com/hfhbtoONfq
へー、UniBookって本があるのか!!!#unity_pp pic.twitter.com/JrGXIdivdA
— むろほし@7/20 Unity++ ショートセッション (@RyotaMurohoshi) July 20, 2019
https://t.co/E7ckzEgTtJ
— むろほし@7/20 Unity++ ショートセッション (@RyotaMurohoshi) July 20, 2019
GitHub Package Registry これかなー?
#unity_pp
StainSystem のやつはこれかーhttps://t.co/btsr2cH4mK #unity_pp
— ゴコー@C96月曜日 南リ-43b (@backlight1144) July 20, 2019
virtual cameraはアクティブになっているものの最大プライオリティ値で選ばれるので、アクティブで切り替えるのもありっすね #unity_pp
— Yusuke Ikewada (@ivoryfunc) July 20, 2019
Cinemachineのカメラ操作めちゃくちゃよさそう。プレイヤーの追従や画面外の別カメラ切り替えなども便利そう。 #unity_pp
— Kazushige Mori(Cz_mirror) (@Cz_mirror) July 20, 2019
(Chronos 購入済みだけど積みアセットだ...) #unity_pp
— 青木とと(ˊᗜˋ*) (@lycoris102) July 20, 2019
巻き戻しも出来るんだ#unity_pp pic.twitter.com/b76pAicnkB
— しんーーご.vrm (@shi_k_7) July 20, 2019
UDP (Unity Distribution Portal) これかあhttps://t.co/sRmf3IYHuG
— ゴコー@C96月曜日 南リ-43b (@backlight1144) July 20, 2019
#unity_pp
メニューの中にLocalize!
— オークマネコ@夏コミ4日目(月)南メ-38a (@ookumaneko_XD) July 20, 2019
公式機能つよい! #unity_pp
ImportedLinqのススメ ~C#でも他の言語にあるMaxByやFlattenを!~ https://t.co/SvvTAxuZWL #Qiita #unity_pp
— cyber@♨︎ (@cyber1496) July 20, 2019
C#は .NET というライブラリというか、実行環境の上で動くという仕組みになってる。
— とりすーぷ (@toRisouP) July 20, 2019
C#にはC#でバージョンがあって、 .NETは .NETでバージョンがある。 #unity_pp
.NET Standardが何かというと、たくさんある.NET系の実装( .NET Frameworkや .NET Core、Monoなど)のリファレンスを定義して、すべてのインタフェースを共通にしましょうねって規格のこと。
— とりすーぷ (@toRisouP) July 20, 2019
#unity_pp
ちなみに、規格である .NET Standardと、その実装が複数あってややこしいから、全部まとめて1個の実装にしちゃおうぜって計画が .NET 5でぶち上がってたりするよhttps://t.co/a6k8ejFeoS
— とりすーぷ (@toRisouP) July 20, 2019
#unity_pp
.NET Standardは現状だと4.xのサブセットになる(Standardは一部APIをNuGetという .NETのパッケージマネージャを通して追加するけどUnityだと単純に利用不能になる)ので、普通に使う分には不便になるだけだったり。 #unity_pp
— neuecc (@neuecc) July 20, 2019
休憩中、タグに便乗して勉強会の宣伝を...。
— アズマゴロー@放置系 ハクスラモンスターズ (@azumagoro) July 20, 2019
UIの勉強会を8/3(土)に開催します!スピーチタイトルが1つ決まりました!「UnityのUIでやってはいけないこと」
UIアンチパターンに関する内容です👀
参加者絶賛募集中ですのでよろしくお願いします〜〜 #unity_pphttps://t.co/uGLSs6LI5q
📕買います! #unity_pp | Unityサウンド エキスパート養成講座 一條 貴彰 https://t.co/rMkn5SaQeD @amazonJPさんから
— 青木とと(ˊᗜˋ*) (@lycoris102) July 20, 2019
問題の画像#unity_pp pic.twitter.com/yG4XJ4WI4y
— アズマゴロー@放置系 ハクスラモンスターズ (@azumagoro) July 20, 2019
DSP Graph の話はこちらでみられますねーhttps://t.co/TIsZAy6GWE #unity_pp
— ゴコー@C96月曜日 南リ-43b (@backlight1144) July 20, 2019
めっちゃリアルな3Dモデルだ!#unity_pp pic.twitter.com/B4iAyPrJf2
— しんーーご.vrm (@shi_k_7) July 20, 2019
今日もまた知見と人脈と美味しい食事を頂けて感謝しかありません。特に鎌田さんにIAPの事を聞けてとても助かりました!こんな有益なイベントを無料や格安で開いてもらえるのは今だけかも知れないので、得たものを無駄にせず活用していつか還元したいと思います…! #unity_pp
— ハーヴェスト・ゲームファーム (@HarvestGameFarm) July 20, 2019
学びが深い会でした。ありがとうございました!🙇🏻♂️🙇🏻♂️ #unity_pp
— 南@エンジニア兼ティーアドバイザー (@_y_minami) July 20, 2019
本日はUnity部主催のまじめな勉強会
— むろほし@7/20 Unity++ ショートセッション (@RyotaMurohoshi) July 20, 2019
Unity++ ~ショートセッション勉強会~
にお越しいただきありがとうございました。
#unity_pp のハッシュタグをつけて、感想ツイートや感想ブログを貰えると、登壇者・スタッフ喜びます。
また何か!次のイベで! pic.twitter.com/vh7USAC1aj
他の方の感想ブログ
間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。