勉強会のレポート(メモ)です。
参加したのはこちら「Gotanda.unity #19」
アーカイブはこちら
この記事は私の主観でのまとめです。
重要な情報を削っていたり、解釈違いの場合があるのでアーカイブの動画と合わせてどうぞ。
- Gotanda.unityとは
- LT#1 (スポンサー枠) tetsu: MirrativでのUnity as a Library活用事例
- LT#2 (初登壇枠) Denik: 新MLAPI(v0.1.0)でマルチゲームを作ってみた
- LT#3 むろほし: Unity 2021.1でのUnityパッケージの名称変更について
- LT#4 こりん: UnityのVR開発環境の現状整理
- LT#5 もんりぃ先生: GraphView のすゝめ
- LT#6 (スポンサー枠) おはぎ: Mirrativ 着せ替えの仕組みを解説
- LT#7 (初登壇枠) 佐藤 英一: 執筆者になろう! & ちょっとだけUnityバイブル2の裏話
- LT#8 ナナキ: Timelineを使ってターン制RPGの戦闘を演出する
- LT#9 (初登壇枠) イワケン: XR時代のプレゼンテーションをUnityで構築したい
- スポンサー企業紹介
- 他の方の感想ブログとか
Gotanda.unityとは
都内近郊を中心に活動を行うUnityユーザのコミュニティです
Unityに興味がある人であれば、どなたでも気軽にご参加いただけます!
(五反田発の勉強会であることから「Gotanda.unity」というネーミングになっております)
LT#1 (スポンサー枠) tetsu: MirrativでのUnity as a Library活用事例
MirrativでのUnity as a Library活用事例についてお話します
Gotanda.unity#19にて発表しました〜
— 鉄 (@tetsujp84) 2021年7月21日
今後も情報発信していくぞ
「MirrativでのUnity as a Library活用事例」https://t.co/SJuf7nsVLW #gotandaunity
Unity as a Library(UaaL)とは
Unityをネイティブアプリのライブラリとして利用する技術です。
Mirrativのエモモ(3Dアバター)で使用しています。
・ギフト(アイテムやスタンプ)機能の処理はアプリ側で、演出をUnityで行っています。
メリット
・Unityの3D機能が使える
・デザイナーがそのまま作れる
・Unityだけで完結し、確認する時アプリビルドの必要がない
演出の難しさ
・Unityの初期化中やロード中にもアプリ側の処理が行われる→キャンセル処理を適切にいれる必要がある
・演出のタイミングや順番を制御する仕組みが必要
・演出の豪華さと負荷のバランスが大事(許容判断と負荷の改善が必要)
UaaLは×演出はこんな人におすすめ
・Unity+ネイティブ両方の機能を使ってみたい人
・新しい演出で驚きを提供したい人
・新しい技術の先端を追いかけたい人
LT#2 (初登壇枠) Denik: 新MLAPI(v0.1.0)でマルチゲームを作ってみた
外出中で恐縮です
— Denik (@xrdnk) 2021年7月21日
登壇資料を置いておきます#gotandaunity https://t.co/yGThXu6gLW
MLAPI Quick Start
MirrorのQuick Startを新MLAPIに対応したサンプルを作りました。
MLAPIとは
Unityが買収したGameObject向けマルチプレイヤーソリューションです。
TISの「XR Campus ツアーサービス トライアル版」で採用中です。
新旧の違い
詳しくはこちら
機能紹介
・NetworkObject、NetworkTransformなど同期コンポーネントが用意されています
・1シーンに一つ必要な管理クラスNetworkManagerがあります
・同期させるScriptはNetworkBehaviourを継承する必要があります
・変数の同期を行いたい場合はNetworkVariable型を使用します
・RPCも使用できます
CunstomMessagingManager
NetworkObjectやRPCは、NetworkObjectがアタッチされていてNetworkBehaviourを継承したクラスでないと利用できない。
それらがなくても同期処理を行いたい場合はCustomMessagingManagerを利用する
詳しくはスライドをどうぞ
LT#3 むろほし: Unity 2021.1でのUnityパッケージの名称変更について
Unityのパッケージの名称、区分の変更についてお話します
「Unity 2021.1での Unityパッケージの名称変更について」#gotandunity # 19での発表資料です!!!https://t.co/tTpRCGzJBD
— むろほし (@RyotaMurohoshi) 2021年7月21日
2020.3以前のパッケージ区分
・検証済み(Verified):実際のプロジェクトに導入できるもの
・プレビュー(Preview):検証中のもの、仕様変更やサポートが終わる可能性があるなど実験的なものも含める
2021.1以降のパッケージ区分
・リリース済み(Released):検証済みに相当。PackageManagerから導入できる
・プレリリース(Pre-release):その年のLTSリリースまでにReleasedになることが期待されるパッケージ
ProjectSettingから設定しないとPackageManagerに表示されない
・実験的(Experimental):実験的、手探り状態のパッケージ。リリースされないかもしれないパッケージ。
PackageManagerには表示されない。2020.3LTSの時点でPreviewだったパッケージは原則Experimental。
そのうちのいくつかは公式ドキュメントの方法で導入できる
・リリース候補(Release Candiate)
公式リリースの有力な候補であるパッケージ
Unity - Manual: Release Candidates
・非推奨(Deprecated):サポートしていないパッケージ
詳しくはこちら
まとめ
・パッケージの名称が変わりました
・プレビューはプレリリースとエクスペリメンタルに分かれてわかりやすくなりました
LT#4 こりん: UnityのVR開発環境の現状整理
UnityのVR開発環境の状況が込み入っているので整理して、今どうすればいいのか答えを出しておきます
本日のスライド「UnityのVR開発環境の現状整理」を公開しました! XR Interaction Toolkit + OpenXR Pluginの紹介と、現状の制限や課題についてまとめています。おそらく最速で最新事情にキャッチアップできる資料だと思います。ご参考になりましたら。 https://t.co/oAeQo9UPoW #gotandaunity
— こりん@VR (@korinVR) 2021年7月21日
先に結論
UnityのXR Interaction Toolkit + OpenVR PluginがマルチプラットフォームVR開発の未来です
しかし、Oculus IntegrationやSteamVR Pluginを使わなければならないケースがまだある
全体的な動向
UnityはXR Plugin Managementによるプラグイン方式に変更されたが、
実際には特定のSDKとプラグインを組み合わせないといけないものが多い
・Oculus Integration + Oculus XR Plugin
・SteamVR Plugin + OpenVR Plugin
・MRTK + OpenXR Plugin + Miced Reality OpenXR Plugin
・XR Interactiobn Toolkit + Oculus Plugin、OpenXR Plugin等
・WebXR Export + プラグインはまだなし
プラグインにはヘッドセットごとの低レイヤーAPIやサポートAPIが入っています。
ヘッドセットごとにバラバラだと大変なので標準化したOpenXR規格が誕生しました。
その後、UnityのXR Plugin ManagementではOpenXRに対応したOpenXR Pluginと
Unity純正XRツールキットXR Interaction Toolkitが生まれました。
この二つはUnityの新しい入力システムInput Systemに移行しています。
XR Plugin Management、OpenXR Plugin、XR Interaction Toolkit、Input SystemがUnityの標準VR方式になる見込みです
制限と課題
・Oculus Questのハンドトラッキングには未対応
・SteamVRのViveトラッカーをサポートしていない
・SteamworkのターゲットSDKにOpenXRがないため審査に通るか不透明
・OpenXRに対応したランタイムが複数あるがどのランタイムで起動されるかわからないし動作が異なる
結論
・まだ移行期
・アプリをリリースしたり、ヘッドセット固有の機能を使いたい場合は各プラットフォームのSDKを使う状況が続きそう
・学習用途であればXR Interaction Toolkit+OpenXR Pluginを使ってもいいのでは
告知
XR Interaction Toolkitのページを作りました
LT#5 もんりぃ先生: GraphView のすゝめ
GraphViewの基本やカスタマイズについてお話します
本日の登壇スライドを公開しました!
— もんりぃ先生 (@monry) 2021年7月21日
全40ページを8分で話したので超絶早口になりましたw
---
GraphView のすゝめ / Introduction of GraphView #unity #unity3d #gotandaunity https://t.co/nafZ9irKAO @SlideShareより
GraphViewとは
ShaderGraphやVFXGraphなど、ノードベースなヴィジュアルプログラミング環境を作るためのAPI/UIを提供するものです。
コードを書かなくてもプログラミングできるようになるのが特徴です。
GraphViewの構成要素
・GraphView:GraphViewを作るためのもの
・Node:一つ一つのノードを作るための機能
・Port:ノードの入出力先をつかさどるもの
・Edge:ポートとポートをつなぐための線
・ISearchWindowProvider:検索窓を作るための機能
GraphViewのTips
数が多いのでスライドをどうぞ
まとめ
・現状Experimental
・最低限ノードベースなグラフを構築することはできる
・カスタマイズするにはUIElements力が求められる
リンク
https://virtualcast.jp/blog/2020/04/playwithgraphview/
LT#6 (スポンサー枠) おはぎ: Mirrativ 着せ替えの仕組みを解説
エモモの着せ替えについてお話します
着せ替えの仕組み
共通の素体に対してアイテムを着せ替えています。
着せ替えるアイテムに応じた異なる仕組みで着せ替えを実現しています。
ボーンスケールの変更
・部位ごとにスケールを変更する
・素体一つにパラメータを読み込ませて実現している
・パラメータが極端だと破綻するためレギュレーションを決めている
ブレンドシェイプによる変形
・口や顔、表情など
・プリセットを渡して変形させる
テクスチャの入れ替え
・シェーダにテクスチャを渡す
メッシュとマテリアルの入れ替え
・アイテムごとにメッシュとマテリアルを入れ替える
・髪、目・衣装など必ず身に着けているものに対して入れ替える
プレハブの入れ替え
・プレハブを生成して入れ替える
・アクセサリーや置物に対して行う
エモモのクオリティアップ
・揺れ物はボーンを設定、DynamicBoneを使用
・アイテムの自由度を下げないようにお互い干渉しないようにしている
LT#7 (初登壇枠) 佐藤 英一: 執筆者になろう! & ちょっとだけUnityバイブル2の裏話
出版社から書籍を出すと何が違うのか
SNSやブログでの情報発信、同人誌の作成や勉強会での登壇と何が違うのか
・著者として名前が刻まれる→末代まで残る
・印税が入ります。電子書籍でも当然入ります。ただしあまり金額にこだわるとお願いしにくい
・(重要)開発者の輪が広がる。いろいろな方から声がかかりつながりができる
残念なお知らせ
・Unityバイブルのような多人数の書籍はほとんどない。バイブルはまたやるがしばらく先になる
・普通の場合は一人で書くか4~5名
・執筆期間は決まっているので負荷は高い
負担は大きいが達成感も大きい
バイブルのよくある質問
・著者は勉強会に登壇した方に声をかけることが多い
・執筆期間は3か月でお願いしているが場合によっては1年になることも
・Unity以外のテーマは能力不足でできません
最後に
・執筆に関心がある!
・自分は無理だけど興味がありそうな人を知っている
・このSNSをやっている人に書いてもらってほしい
などなどある方はぜひご気軽にご連絡ください
宣伝
2週間後の 7/29(木) 21:00 から「Unityゲーム プログラミング・バイブル 2nd Generation 出版記念トーク グラフィックス編」の開催も予定しております。ぜひご視聴ください! #Unityステーション pic.twitter.com/IYMhPgZNmm
— ユニティ・テクノロジーズ・ジャパン (@unity_japan) 2021年7月15日
LT#8 ナナキ: Timelineを使ってターン制RPGの戦闘を演出する
Timelineの利点
・演出を倍速にできる
・エンジニア以外の人に演出を組んでもらえる
・演出が再利用できる(攻撃する演出など)
・人型のキャラクターだとモーションも再利用できる
・テスト用シーンで演出が組める
モーションを作るのが大変な場合
・Mixamoで探す
・MocapForAllを使う
・アセットストアで購入する
・モーションキャプチャーで作る
・人以外の場合は手付けで頑張るしかない
注意点
・キャラクターの位置、回転は親オブジェクトにやらせる
・コンポーネントも親オブジェクトにつける
・エフェクトは対象のルートに持たせて、そこからローカル座標や回転を調整
・キャラの大きさによってモーションの調整が必要
PlayableDerector
Timelineの再生、行動側・行動される側を動かしたり、エフェクトを再生させる
・行動者がTimelineの再生
・Signalが対象者に演出を通知
・対象者は受け取って演出を行う
・PlayableAssetがエフェクト再生(Prefabの設定やInspectorの設定を保持できる利点がある)
LT#9 (初登壇枠) イワケン: XR時代のプレゼンテーションをUnityで構築したい
XRプレゼンの技術をお話します(内容的にはUnityとUnrealの座標変換の話)
XRプレゼンとは
XR技術を用いた表現でユーザー行動を促す技術(イワケンが定義した言葉)
UnityからUnrealへの座標変換
HoloLensアプリはUnityで、CG空間はUnrealで作る必要があるので連動させないといけない。
変換としては、反転させたり軸を入れ替えるだけ。
XRプレゼンを用いて直感的に座標変換を伝えます。
ここでデモ 動画をご覧ください
重要なこと
XRデバイスを被らせるよりも映像の方が今のユーザーには届く
スライドとシステムは分ける(組み込むと大変)
XRプレゼンの意義
リアルで見れないモノや回転をプレゼンテーションできるのが強み
情報だけでなく体験を伝えやすくなる
スポンサー企業紹介
株式会社ミラティブ
ゲーム配信ができるコミュニケーションサービス「Mirrativ」を作っています。
文化として毎週ユーザーのフィードバックに向き合い、全員で共有する会をやっています。
現在Unityエンジニア、IOSエンジニア、Androidエンジニア、サーバーエンジニア、
データサイエンティストを募集しています。
株式会社キッズスター
子供向けのサービスを作っています。
メインのプロダクトとして「ごっこランド」を展開しています。
エンジニアに限らずさまざまなジョブを募集しています
ワンダープラネット株式会社
エンターテインメント事業を生業としています。
プロダクトとしては「ジャンプチ ヒーローズ」や「クラッシュフィーバー」などシンプルだけど奥深いプロダクトの開発・運営を行っています。
エンジニア募集中です(クライアントもサーバーも)
以上です。
今回もとてもおもしろいLTが聞けました。発表者のみなさまお疲れ様です👏
他の方の感想ブログとか
間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。