Raspberlyのブログ

Raspberlyのブログ

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

【勉強会レポ】: Roppongi.unity #5

勉強会のレポート(メモ)です。
参加したのはこちら、「Roppongi.unity #5」
会場はメルカリさんです。

roppongiunity.connpass.com

ハッシュタグ : #roppongiunity

 

f:id:Raspberly:20191024015000p:plain

 

 

 

動画はこちら


Roppongi.unity #5 リアルタイム配信 #roppongiunity

UnityLearningMaterialsでは映りませんが、LT合間にある司会の@nkjzmさんのトークも見どころポイント。

 

 

 

発表者一覧

時間(予定) タイトル 発表者
19:30-19:40 会場説明など @nkjzm
19:40-19:50 楽しい!LWRP + 2D Light @lycoris102
19:50-20:00 Unityでブロックチェーンアプリを作る(仮) @takayukib
20:00-20:10 ぼくとAddressablesの戦いの歴史 @akinama3
20:10-20:20 Zenject.SceneTestFixtureと向き合った @naninuneno_y
21:20-21:25 小休憩  
20:25-20:35 UniNativeLinq - Unity2018時代のNativeArrayに対するLINQ @pCYSl5EDgo
20:35-20:45 Unity花火ワークショップ(小中学生)をやった件について。 @ tomotomospot
20:45-20:55 Visual Scripting ライブラリ「UniFlow」のご紹介 @monry
20:55-21:05 Animation Riggingで簡単リアルタイムリターゲット @_karukaru_
21:05-21:10 展示紹介  

順番やタイトル等は適宜変更となる可能性があります。

展示一覧

概要 展示者
ARシューティングバトル「ホロブレ」 @ok_totti
遊んで鍛えるワーキングメモリー @okprogramming
azure kinect をいろんなデバイスで試してみた @xbar_usui
シューティングゲーム @singersongse
ラン&ジャンプゲームを展示します @yasukiwatanabe
立体視VRで巨人体験 @warapuri
「みくちゅあがーでん」ミクと触れ合えるLookingGlassコンテンツ @sirohood_exp
バーチャルショップ Conata @mogmogvr

 

 

 

 

 

 

 

 

 

LT1. 楽しい!LWRP + 2D Light

Unity1週間ゲームジャムで作ったサーチライトのしくみをはじめ、LWRPとLight2Dについてお話します。

LWRPについて

SRPの1つです。
ビルトインよりも軽量で最適化されたレンダーパイプライン。

設定方法とかはスライドから

2DRenderer

2Dに特化したRendererDataを作成しProjectSettingsで設定します。
準備はこれだけ。

Lightの設置

後はLightを置くだけ。
Lightが何もない状態だとシーン全体が闇になります。

Global Light 2D

Sprite全体に適応できるLight、レイヤーを分けることもできる。
3DでいうとDirectionalLightに近いかも。

Point Light 2D

これは通常のPointLightと同じだが、角度をつけることができスポットライトのようにできる

 

他にもいろいろなライトを作成できます。
面白い絵作りができるのでぜひ皆様お試しください。

 

困ったときに見るところ

blogs.unity3d.com

blogs.unity3d.com

learning.unity3d.jp

t-tutiya.hatenablog.com

docs.unity3d.com

github.com

 

 

 

 

 

 

 

 

 

 

LT2. Unityでブロックチェーンアプリを作る(仮)

ブロックチェーンとは

ざっくりいうと共有台帳
データを書き込んだら、同じネットワークにあるものも共有される。
分散DBと似ていますが、こちらは非中央集権的な性格を持っています。
また改ざん耐性もあります。

ゲームでの活用法

ゲーム内のアセットをブロックチェーンにのせることで他の人からも共有できる。
unity向けのライブラリにはNethereumというものがあります。

nethereum.com

webサービスと違ってリアルタイムでの更新は待ち時間があるので非同期処理を使うようにしましょう。

 

 

 

 

 

 

 

 

 

LT3. ぼくとAddressablesの戦いの歴史

AddressableAssetをプレビュー版から使ってみた際の知見。
情報量が多いのでスライドや動画をご覧ください。

 

 

 

 

 

 

 

 

LT4. Zenject.SceneTestFixtureと向き合った

SceneTestFixture

テストコード上で専用のBindを行う
そのうち、新テストを行うためのもの.

 

詳しくはドキュメントを見てください

Zenject/WritingAutomatedTests.md at master · modesttree/Zenject · GitHub

そのままだとないのでテストフレームワークも入れましょう。

したいこと

・画面毎の挙動をテストしたい
・アプリケーションを動かすロジックだけテストしたい

そもそもインターフェースとは

素敵な記事があるので共有します

qiita.com

www.slideshare.net

書籍
Adaptive Code ~ C#実践開発手法 第2版 (マイクロソフト関連書)

Adaptive Code ~ C#実践開発手法 第2版 (マイクロソフト関連書)

 
Clean Architecture 達人に学ぶソフトウェアの構造と設計

Clean Architecture 達人に学ぶソフトウェアの構造と設計

 

Clean Architecture

アプリケーションロジックの話をしましたがここででてくるのがクリーンアーキテクチャ
手掛かり無く抽象化をするよりはアーキテクチャを使った方がいい。

その後

「これ出来たからって何になるんだろう・・・」に行き着いた感がありました。
unityのテストをunityの中だけでやりたかったらこういうことをやらないといけないのかも。

 

 

 

 

 

 

 

 

LT5. UniNativeLinq - Unity2018時代のNativeArrayに対するLINQ

もうすぐ2018.4のみLTSになる、つまりC#7.3の時代が来ます。

C#7.3時代

構造体の使い勝手が大きく向上します。
その中でも大きな特徴がNativeArrayです。これはGCが一切は知らない配列的な構造体。
ですがこれはLINQとの組み合わせが悪い、Whereなどの呼び出しのたびにGC Allocが発生してしまう。

 

そのためLINQを使えるLINQ to NativeArrayを作りました

github.com

全て無料で利用可能です


インストール方法のデモ 詳しくは動画をご覧ください。

うれしいところ

・using変数を書き換え可能
・インデクサアクセサリの戻り値が参照可能
・byte配列への変換が簡単
・基本的に従来のLINQより早い(だいたい30%)
C#7.3でもunmanagedな相称型のポインタをある程度扱える

 

 スライドにおまけがたくさんあります。ぜひご覧ください。

 

 

 

 

 

 

 

LT6. Unity花火ワークショップ(小中学生)をやった件について。

なんでワークショップをやったか

最近の小中学生はスクラッチを通じてアルゴリズムを学んだり、プログラムを作っていく。
ただしどこかで詰まるポイントができてしまう。
Unityだとエフェクトや音楽を簡単に作ることができるのでそこをきっかけにしてもらう。

花火ワークショップ

パーティクルを作るワークショップをやりました。
花火のみをテキストを見ながら作っていきます。

難しいんでしょう?と聞いてくる人がいますが、
そういう人の対策に、1分でできる簡単なチュートリアル動画を用意しておくといいでしょう。

機材構成

モニターとスクリーンを用意して上映会的なものをやりました。
「パーティクル」だと敷居が高くなるので、「花火を作る」ことを主体にして敷居を下げました。

花火のいいところ

子供が遊んでくれるので家庭内のヒエラルキーが上がります。
本物と違いUnityでは雨天でもできる。

告知

iwate.unityを立ち上げました

iwateunity.connpass.com

yokohama.unityもあります

yokohamaunity.connpass.com

よろしくお願いします。

 

 

 

 

 

 

 

LT7. Visual Scripting ライブラリ「UniFlow」のご紹介 

今回はUniFlowについてお話します。

今回の対象者

C#を書きたくない人
ドメイン・ビューを切り分けたい人
Unityのコンパイル時間をさけたい人

UniFlowとは

処理の逐次実行をしたり、イベントを待ち受けたり、
シグナルによるドメイン接続をGraphViewで確認できるOSS

処理逐次処理

何かしたら何かするという処理

イベントの待ち受け

ボタンがタップされたらといったイベント処理
今サポートしているのはAudio Animation Timeline

シグナルによるドメイン接続

PureC#で実装されるドメイン処理との橋渡し。

GraphView

UIElementsのGraphViewを使ってビジュアライズされています。

github.com

OSSとしてPublicです、ライセンスはMIT License。をください!

インストール方法や使い方はスライドをご覧ください。

 


拡張性をがっつり作っています。
うまい具合に拡張するとスクリプトを書かずにゲームを作れたりも。

UniFlowを使うとビュー側の部分は全てC#を書かずにできます。
これから相当破壊的変更が入ると思いますが単語だけでも覚えてもらえれば。

 

 

 

 

 

 

 

 

LT8. Animation Riggingで簡単リアルタイムリターゲット

話すこと

・リターゲットのおさらい
・アニメーションリギングについて
アニメーションを普段使っている人向けの内容です

リターゲットとは

異なるボーンのモデルでも同じアニメーションをいい感じに使用してくれる機能。
Mecanimが差分を吸収してくれる。

 

ただし、モーキャプデータをそのままUnityにいれるとなんかおかしい
実はそのままモーキャプデータを入れると、Boneに直接データが流し込まれるため、
Mecanimのリターゲットが使われない。

大きな違和感の原因は2つ

・足の長さの違い
・移動量の違い
この違いをAnimationRiggingで吸収してあげましょう。

Animation Rigging

再生中のアニメーションをプログラマブルに変更できる機能。
Animation C# Jobsをベースに構築されています。
詳しくはUniteTokyo2019の動画を見てください。

learning.unity3d.jp

リターゲットに使うコンポーネントは2つ

MultiPositionConstraint

ヒューマノイドの腰ボーンにいれて腰の移動量を吸収します

MultiRotationConstraint

各関節のローテーションに使用して吸収してあげます

これだけだとちゃんと吸収してくれないので
移動量の倍率を変える必要がある。倍率は1を超えることもあるが0~1しか仕様できない
→PositionConstraitを使って1以上設定できるようにします

AnimationRiggingでリターゲットするメリット

これはいろんなパッケージがそろっているスクリプト群のようなものです
いろいろな機能が使えるし、独自のAnimationRigginfを書くことができます。

まとめ

AnimationRiggingで簡単にリターゲットできます。
機能が足りなかったら自分で足せます。

 

 

 

 

 

 

懇親会 & 展示会

f:id:Raspberly:20191024015123p:plain

Holo Break

ARシューティングバトルです。
二人ペアによるシューティングゲーム。相手を撃墜する以外にも、リスポ封じに拠点の破壊などもできます。

 

 

 

VR版Nバックトレーニン

Nバッグは脳トレの一種です。
なぜVRなのかというと、記憶の定着率は3D空間内での方が高いという論文を発見したからだそうです。

f:id:Raspberly:20191024015800p:plain

 

 

リアル3Dアバター動画に関する展示

当初用意していたものがうまくいかなかったので急遽変更。
遠くのKinectのデータをWebRTCでリアルタイム通信し、LookingGlassに映すアプリ。
今回は神奈川と接続していたようです。

f:id:Raspberly:20191024015708p:plain

 

 

GlideGlide

デジゲー博に出展するもののプロトタイプ作品です。
エンドレスランのようなシステムで、ジャンプや滑空を使って穴を回避します。

f:id:Raspberly:20191024015651p:plain

 

 


立体視VRで巨人体験

150m級巨人体験ができるアプリ。
コントローラーで特定のポイント爆撃できます。

 

 

みくちゅあがーでん

ミクさんと触れ合えるLookingGlassアプリ

音声認識+LeapMotion+ミニライブというてんこ盛りコンテンツ。
さらにLookingGlassはタッチパネル化されています。

f:id:Raspberly:20191024015635p:plain

タッチパネルは、ノートパソコン用のAirBarを使ったとのこと。
LookingGlassLargeにサイズぴったり。

 

 

バーチャルショップ Conata

ブロックチェーンを用いら作られたVtuber向けのグッズショップ

 

 

 

 

 

 

 

タイムライン

 

 

 

 告知

Gotanda.unity #14

すでに満員ですが増枠の予定とのこと。

meetup.unity3d.jp

 

Roppongi.unity

次回のRoppongi.unityはメルカリ会場が使えない可能性があります。
会場提供してくれる方、大募集中です。
六本木じゃなくてもいいです!

 

Weeybleシェーダーもくもく会

weeyble-game.connpass.com

 

 

 

他の方の感想ブログ

www.nowsprinting.com

 

 

 

 

 

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