Raspberlyのブログ

Raspberlyのブログ

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

【勉強会レポ】: Gotanda.unity #17

勉強会のレポート(メモ)です。
参加したのはこちら「Gotanda.unity #17」

meetup.unity3d.jp

ハッシュタグ : #gotandaunity

五反田発祥のUnityに関するLT会です。

 f:id:Raspberly:20210114033040p:plain

アーカイブはこちら

www.youtube.com

 

togetterまとめはこちら

togetter.com

 

 

 

LT#1 (スポンサー枠) もんりぃ先生: Unityプロジェクトの基盤・設計まわりでしくじってしまった話

今回は、ごっこランドを開発運営してきて「ミスったなぁ」っていうようなモノ、
それがどうすべきなのか、どう対応したのかについてお話します。

Unityのバージョン

長いこと5.3で固定していた、2017の後半でアプデが必要になりめちゃめちゃ苦労した。
こまめにUnityのバージョンを上げましょう。キッズスターでは年号単位で上げていっています。

プロジェクトのサイズ

どんどん肥大化しアセットのインポート時間やコンパイルの時間が長くなった。
(特殊な事例ですが)リポジトリを分割し、製品版のビルドにはスクリプトのみ入るようにし他は全部AssetBundleで提供。

パッケージ管理

自社ライブラリを細かく分割して管理。UPMがなかったためnpmを使ってインストール
→ライブラリ間の依存関係が複雑に

モノレポ化で解消。Unity2018以降を使っている場合はUPMを使った方がいい

ライブラリの選定

流行に飛びつくことをしてしまった→使えなくなったりアプデできなくなったりした
本当に必要か考えましょう

リソースの管理

オレオレAssetBundleを作ったけどパフォーマンスが微妙だった。元に戻すのも苦労した。
公式の機能を使いましょう。現時点であればAddressablesでいい。

アーキテクチャ

過去にClean ArtchitectureについてLTなりしてきましたが、独自解釈をしすぎていてあまり信用しない方がいい
ここに関してはとりすーぷさんのこちらがオススメ

learning.unity3d.jp

本当にプロダクトにあっているアーキテクチャなり設計を選定してライブラリを管理するのがいい
ここに正解・最適解はないので、プロダクトやチームによって話し合って見つけるのが肝要

まとめ

・Unityの公式の機能にどんどん乗っかれるようにしておくのがよい
・設計やアーキテクチャはプロダクトやチームにあったものを採択する

 

 

 

 

LT#2 かこ: もう泣かない,UIの自動レイアウト活用

Unityのアスペクト比を変えたときにUIがおかしくなると泣いちゃいますよね。それを共有します。
今回のゴールはFreeAspectでも正常にスクロールするメニューをLTを見るだけで作れるようにすることです。

 

Gif付の解説がメインのため、動画をごらんください。

 

 

 

 

LT#3 Kuniwak: Unity の meta ファイルの過不足の merge を防止しよう

.metaファイルの過不足をストレスなく見つけるツールを作ったお話

 

.metaファイルに過不足があると

.meraファイルをcommitし忘れる

.metaファイルがないと新たに.metaファイルが生成される。(GUIDが再割り当てされる)
GUIDの参照が切れてマテリアルなどがバグる

.metaファイルを消し忘れる

毎回関係ない差分が出てきてうざい

 

このツールを使うと、コミット時にcommitされていないファイル・消されていないファイルを表示してくれる。
Githubの機能を使うとマージできないようになります。
ただし検査に時間がかかるとストレスになるのでストレスがないように開発しています。

Jenkinsは甘くはない

Jenkins上で生成されたアセットに.metaファイルがない、
そうなるとJenkinsが勝手に差分をマージされ、.metaファイルが欠けたりしてしまう
→簡易的にautofix機能を入れて解決

運用してわかったこと

.meta過不足問題は誰も悪くなかった
UnityやGitの仕様に翻弄されているだけ

 

今回紹介したツールはDeNAOSSとして公開しています

github.com

 

 

 

 

 

LT#4 40: Unityでアクションゲームのあれこれを実装してみる

プロジェクトはこちら

github.com

 

こんなのを作りました。

ヒットストップとカメラシェイクの二つをのせています。

ヒットストップ

攻撃を与えたものと与えた対象を一定時間止めること

画面全体を止めない事。
完全に止めないこと(処理落ちっぽくなるため)

Unityで実装する場合

攻撃ヒット時にAnimatorのSpeedを0.02にして遅くします。

カメラシェイク

攻撃がヒットした時にカメラが揺れること
・カメラと視点両方を揺らす
・縦横両方に揺らす
・揺らしすぎない

Unityで実装する場合

CinemachineとAnimatorを使います。
CinemachineのFollowとLookAtを設定します。(Followの子にLookAtを設定)
あらかじめ均等詰めびランダムな動きをするAnimationClipを作成しておきます。
AnimatorにTriggerを設定し、攻撃ヒット時再生するようにします。

まとめ

・ヒットストップ実装のコツは画面を止めない事と完全に止めない事
・カメラシェイク実装のコツは、カメラと視点両方を揺らすこと、縦横両方に揺らすこと、揺らしすぎない事

 

 

 

 

 

LT#5 いも: どこのご家庭にもある自作シーンマネージャーの話

毎回作るのに全然情報がでないシーンマネージャーに関するお話。
スライドが多いので動画をごらんください。

 

 

 

 

 

LT#6 (スポンサー枠) やまたく: ごっこランドでみかける2Dアニメーション

今回はキッズスターのこだわりでもある、子どもに寄り添った絵作りアニメーションについてお話します。

ごっこランドのアニメーション

キッズスターのアニメーターチームはこどもxあそびxまなびを意識しています。

あそび:動いているものと反応
まなび:わかりやすい展開と表現
こども:あそびとまなびを体験してお仕事自体を楽しんでもらう

さわることで起こる、移動/変形/エフェクト/音など、これらはUnityと相性がよい

ごっこランドのガイドの意識

大人の考えるチュートリアルは使えない
・動いているものに興味をもってもらいガイドで導く、画面は止めない
・画像やガイドも統一

始点と終点がインタラクティブに変化するガイド

Constraintで対応しました。
始点と終点をConstraintで高速して、Weight値で引っ張るようにしました。
Constraintについては過去にも登壇したことがあります。

learning.unity3d.jp

 

 

ところが敵はまだまだ出現する
キッズスターでは常に人材を募集しています

www.wantedly.com

 

 

 

 

LT#7 うどん: Unity+Airtest入門 ~Unityでお手軽実機の自動テスト~

今回はAirtestとPocoの紹介をします。

Airtestとは

NetEase社のモバイルゲーム向け自動テスト用フレームワーク
タップやスワイプなどのUI操作や画像ベースのUI操作を簡単にできる
IDEも公式で用意されていてAPIもとてもシンプル

Pocoとは

NetEase社のUI自動テスト用フレームワーク
Unity、COCOSなどに対応
ヒエラルキー解析によるUI処理ができる(HierarchyのGameObjectを取得しタップするなど)

 

AirTestの使い方についてはスライドをどうぞ

 

まとめ

めちゃくちゃ便利です。UIのテストが直感的に実装できます。
ヒエラルキーベースのテストが優秀。

 

会社ではチュートリアルの自動テストや多人数が必要な機能のテストに使用しています。

ドキュメント

Airtest

Poco

 

Qiitaも書いています

qiita.com

 

 

 

 

LT#8 きゅぶんず: Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?

頭に思い浮かんだUIを素早くUnity上で表示させる方法だったり、UIを変更するサイクルを高速化する方法についてお話します。

Adobe XDとは

Adobe製のUI/UXデザインツールです。UIを作るためだけに作られた専用のツール。
無料プランもありWindowsでもmacOSでも動きます。

www.adobe.com

AkyuiUnity.Xd

あわせて紹介するのがAkyuiUnity.Xdというライブラリ
MITライセンスで使えるXDからUnityに変換してくれるライブラリです。

github.com

 

ここで動作デモ
動画をご覧ください

 

AnKuchen

生成されたPrefabを扱うオススメライブラリ
Scriptから文字列指定でGameObject、Componentを取ってこれる。

github.com

まとめ

今日発表した仕組みを使うことで、画面を素早く作って素早く試せる
変更したい箇所が出てもXD上で編集してボタンで反映、開発サイクルを高速化できる

 

もっと知りたい方向けに解説動画を上げています

www.youtube.com

 

 

 

 

LT#9 ゆーじ: 知らなかった!DOTween便利Tips集

便利だけど知らない人がいそうなDOTweenの機能をパパっと7つ紹介します

Tips 1: 秒数に0を指定する→DOMoveの引数にそのまま0を渡す
Tips 2:相対的な値を指定する→オプションにSetRelative(true)をつなげる
Tips 3:timescaleを無視する→オプションにSetUpdate(true)をつなげる
Tips 4:開始時の値を指定する→オプションにFrom()をつけると開始時の値を指定できる
Tips 5:一定時間後に処理実行する→DOVirtual.DelayCall()で実現できる
Tips 6:共通のパラメータを使う
 TweenParams型の変数にオプションをメソッドチェーンでつなげることで、
パラメータのプリセットのようなものが作れるSetAsでTweenに適用できる
Tips 7:往復アニメーション→SetLoops(2, LoopType.Yoyo)を指定することで
行って戻ってくるアニメーションができる

まとめ

DOTweenは便利な使い方がたくさんあります
公式ドキュメントを見るだけでも新たな発見があるかも

dotween.demigiant.com

 

 

 

 

 

スポンサー紹介

キッズスター

ごっこランドを作成しています。

biz.kidsstar.co.jp

お陰様で大好評です。エンジニア絶賛大募集中なのでWantedly@monryまでどうぞ

www.wantedly.com

 

ワンダープラネット

シンプルだけど奥深い事業をしています。
グローバル展開を行う専用のスタジオがあります。
エンジニア募集中なので興味のあるかたはこちらからどうぞ。

www.wantedly.com

 

 

 

次回予告 

次回は5月開催を予定しているとのこと

 

 

 

以上です

 

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

【初めてのアセットストア】デビュー応援キャンペーンのススメ【応援記事】

現在アセットストアでは、アセットを購入したことがない方向けの応援キャンペーンを開催中!

このキャンペーンに興味のある方、初めてアセットストアでアセットを購入する方に向けた記事です。

f:id:Raspberly:20210318235430p:plain

 

 

大前提として、

この記事は私の主観で書かれた記事です。
他の方の意見も取り入れてどのアセットを購入するか決めましょう!

 

デビュー応援キャンペーンとは

アセットストアでアセットを購入したことがない方向けのキャンペーンです。
厳選された30アセットの中から1つだけ9.99ドルで購入できます
決済画面でクーポンコード「MARCHWELCOME」を入力することで反映されます。
↓こちらのバナーからどうぞ

f:id:Raspberly:20210318235430p:plain

 

 

 

キャンペーン対象のアセット

対象アセットは30種類あります。多いので画像でまとめたものを貼っておきます。
詳細はイベントページをご覧ください。

f:id:Raspberly:20210318212653p:plain

f:id:Raspberly:20210318212718p:plain

f:id:Raspberly:20210318212759p:plain

f:id:Raspberly:20210318212815p:plain

f:id:Raspberly:20210318212835p:plain

f:id:Raspberly:20210318212910p:plain

f:id:Raspberly:20210318212929p:plain

f:id:Raspberly:20210318212954p:plain

 

過去に紹介記事を書いたアセットもあります。

raspberly.hateblo.jp

raspberly.hateblo.jp

raspberly.hateblo.jp

raspberly.hateblo.jp

 

 

 

 

どのアセットがオススメか

この記事を読んでいるあなたの状態によりますが、
使いたいアセットがあるのならそれを選ぶべきです!

この3Dモデルが好きだから、このエフェクトがかっこいいからなど直観で選んで問題ありません。

 

どのアセットもすぐに使う予定はないけど何か欲しい方向けに2つ紹介します。 
どちらもプロジェクトを選ばず使いやすいものです。

Odin Inspector

Unityエディターの拡張アセットです。
開発をする上で多用するInspectorビューを使いやすくしてくれます。
このアセットの一番の魅力はその汎用性です。プロジェクトを選ぶことなく活用できます
さらに利用者がかなり多く、検索すると使い方に関する情報がたくさんでてくるのもポイント。

 

DOTween Pro

UIやオブジェクトの移動、回転、拡大などをコントロールできるアセットです。
一番のオススメですが、他に欲しいアセットがあるならそちらを優先した方がいいです
理由は2つあります。

元々定価が安い

このキャンペーンは、対象のアセットがどれでも9.99ドルで購入できるというものです。
そのため定価が高ければ高いほどお得なため、定価が15ドルのDOTween Proを購入するのなら別のものがいいといえます。

セール対象に選ばれやすい

アセットストアでは定期・不定期にセールが行われますが、セールに選ばれやすいアセットが存在します。
DOTween Proはその1つで頻繁に50%OFFの対象になっています
セール期間中はより安く購入できます。直近ですとGGJセールで50%OFFでした(2021/1/26~2/1)

 

 

 

定価が非常に安いためセールを待たずとそのまま購入していいと思います。それだけ便利なアセットです。
アセットの中でも特に使用者が(体感)多く、解説記事や関連するLTも豊富にあります
使い方がわからなくて積むことはまずないです。

ものすごく参考になる解説動画があるので最初はこちらをどうぞ

www.youtube.com

 

無料版もあるので気になったらお試しください

 

 

 

 

アセットの購入方法

アセットストアを初めて使う方のために、アセットの購入方法を紹介します。

Asset Storeを開いてログイン

Asset StoreのWebページを開いてログインします。
UnityアカウントはUnity Hubインストール後に作成しているはずですが、まだの方は作成してください。

f:id:Raspberly:20210318200400p:plain

 

セール会場のページから、購入したいアセットを選び詳細ページに行きます。

f:id:Raspberly:20210318201706p:plain

青い今すぐ購入ボタンを押します

f:id:Raspberly:20210318201808p:plain

 

決済画面に遷移するので各種情報を入力します

f:id:Raspberly:20210318202616p:plain

支払い方法を入力します。クレジットカードとペイパルが使用できます。

f:id:Raspberly:20210318202946p:plain

クーポンコード「MARCHWELCOME」を入力し適応します。

f:id:Raspberly:20210318203309p:plain

小計が9.99ドルに更新されることを確認します。

f:id:Raspberly:20210318203448p:plain

最後に、アセットのエンドユーザー使用許諾契約を同意し、次へボタンを押して完了です。

f:id:Raspberly:20210318204200p:plain

購入後の注文明細画面から「Unityで開く」を押すとすぐにUnityでインポートできます。

 

 

 

まとめ

・アセットストアデビュー応援キャンペーンの紹介とおすすめアセットの紹介を行いました
・最初に書いた通り、Twitterで他の方の考えを取り入れたり、アセット名で検索して情報を集めて考えましょう

・今回紹介したOdinDOTweenはゲーム・非ゲームを問わず活躍できるので胸を張ってオススメします

 

 

ちなみに私が初めて買ったアセットは「Mystic Arsenal」というエフェクトアセットです。
ストアページの動画を見て直観で選び、当時作成中のゲーム用に購入しました。

f:id:Raspberly:20210318195628p:plain
汎用性の高いもの、人気のあるものを選べば失敗はしませんが、自分の欲しいものを買うのが一番です。

 

 

 

 

このキャンペーンに関する他の方の知見とか

highmix-w.net

 

 

 

フォローしておくべきアカウント

最後に、快適なアセットストアライフを送るためにフォローしておくべきアカウントを2つ紹介します。
どちらもアセットストアに特化したアカウントです。

Unity AssetStore Japan

Unity AssetStore Japan公式アカウントです。

twitter.comセールやキャンペーンの情報を発信しています。
さらにYoutubeチャンネルでは開催中のセールのおすすめアセット紹介動画を投稿しています。

プレイリストはこちらUnity AssetStore Japan - YouTube

Noteもあります

note.com

 

汗人柱

twitter.comおそらく日本で一番有名なアセットストアに特化したブログUnity AssetStoreまとめ」を運営している方です。

www.asset-sale.netセールの情報や、アセットに関するイベントを開催しています。

 

 

 

以上です。

 

当ブログも不定期ですがアセット紹介記事を投稿しています。
フォローや読者登録してくれるとうれしいです。

 

過去にアセットストアに関するLTをしました。
やや情報が古いですが、アセット選定の考え方や積みアセット問題を取り上げています。

learning.unity3d.jp

【アセット紹介】Nature Rendererできれいで高速な草を描画する【Unity】

今回はアセットの紹介をしていきます。
紹介するのはNature Renderer。
Terrainの植生グラフィックを向上させるアセットです。

 

 

お得なセール情報!

現在アセットストアではアセットパスポートセールが開催中! 終了しました
ワールド作成に最適なアセットが50%OFF!

詳細とアセットの一覧はこちらのバナーからどうぞ

f:id:Raspberly:20210311224247p:plain
今回紹介するNature Rendererも50%OFF対象アセットです。

 

 

どんなアセット?

Terrainの植生をきれいに高速に描画するアセットです。
つまり草です。草のグラフィックを向上しパフォーマンスを改善してくれます。(木はそのままです)
全プラットフォーム全レンダーパイプライン対応です。

f:id:Raspberly:20210311195918p:plain

 

なんと日本語対応のドキュメントが用意されています。
無料のトライアル版もあるので気になる方は購入前に試してみるのもいいでしょう。

 ゲームの速度を落とさずに、大量の植生をレンダリングします。

Nature Rendererは、Unityのデフォルトの地形詳細システムを置き換えることにより、植生レンダリングの品質を向上させます。すべてが既存のデータで機能します。同じ草、植生、樹木を使用し、既存の地形を維持します。レンダラーをレベルアップするだけです。

 

25,000人以上の開発者から信頼されています。豊富なドキュメントを備えた、洗練された最適化されたプラグインが期待できます。

GaiaやMapMagicなどワールド作りでよく使われるアセットと互換性があるのもうれしいポイント。

他のアセット
GaiaMap MagicMicroSplatCTSTerrain ComposerMegaSplatMegascansThe Vegetation EngineAmplify ShaderEditorなどと互換性があります。 Nature Rendererは、地形システムを使用するほぼすべてのアセットと互換性があります。Nature ManufacturingSynty Studios

 

 

ちなみにライセンスが2種類あり、
個人向けのPersonal Licenseと、開発スタジオ向けのStudio Licenseがあります。
Studio Licenseは一つのスタジオに所属する全員に割り振れるライセンスです。

 

また、独自のパッケージマネージャがあるのも特徴で、更新のチェックや最新バージョンのアップデートがすぐに行えます。

f:id:Raspberly:20210309190513p:plain

 

 

実は過去にアセットストアで販売されていたメガバンドルに含まれていたアセットです。
バンドルを購入していた方はすぐに遊べます

www.asset-sale.net

 

 

 

実行環境

Unity2020.1.0f1

Nature Renderer: Personal License ver1.4.3

 

 

 

インポートの確認

アセットインポート時はこんな感じです。
コアとなるアセットのインポートと、各RP用アセットのインポートで2回インポートが行われます。

f:id:Raspberly:20210309231010p:plain

1回目の後すぐにプロジェクトに合わせたunitypackageが自動的にインポートされます。

f:id:Raspberly:20210311015733p:plain

インポート後は、ドキュメントが自動的にブラウザで開かれます。

ネイチャー・レンダラー – Visual Design Cafe Support

 

 

デモシーンの確認

デモシーンはこちら
プロジェクトのRPによってフォルダ名が変わります。

f:id:Raspberly:20210311191115p:plain

草や木が生えているTerrainがあるシーンです。Wind Zoneもあるため風で揺れます。

f:id:Raspberly:20210311195918p:plain

 

 

 

 

実際に試してみる

実際にTerrainの作成からやってみます。手順はものすごく簡単です。

Terrainの作成

Terrainを作成し、草をたくさん生やしてみます。
草はNature rendererデモで使われているものをそのまま使います。

f:id:Raspberly:20210310192520p:plain

見栄えのためGlobal Windも設置しています。

 

 

Nature Rendererのアタッチ

TerrainにNature Rendererコンポーネントをアタッチします。

f:id:Raspberly:20210310195712p:plain

設定はこれだけです。コンポーネントをアタッチするだけ!

 

コンポーネントの無効化あるいは削除すれば元に戻ります。

 

違いを確認

実際に違いを見ていきます。
コンポーネントのオンオフをしてみた場合こうなりました。
影が自動的についてくれるのでこれだけでリッチに見えますね。

f:id:Raspberly:20210311201625g:plain

 

 

次にパフォーマンスを比べてみます。
上がNature Renderer無効時、下がNature Renderer有効時です。

f:id:Raspberly:20210310192813p:plain

 

f:id:Raspberly:20210310192845p:plain

ドローコールが496から33へ、三角形数が9.0Mから61.4kへ、頂点数が10.4Mから71.7kへと大幅に軽量化できています。

プロファイラーで見てみると各種値が一気に下がっているのがわかります。
ただしCPUに関してはあまり変化がありませんでした。

f:id:Raspberly:20210310203236p:plain

メモリを見るとMesh Memoryが1.52GBから2.0MBへと大幅に減っていますね。

  

以上です。

 

まとめ

・Nature Rendererを使うと植物を高速にきれいに描画できる
・Terrainにコンポーネントをアタッチするだけ
・今回紹介しませんでしたが、カスタムシェーダのサポートやストリーミングでの読み込みもできます。

 

このアセットはUnity標準のTerrainの機能を置き換えて処理をしています。
そのため完全オリジナルの地形作成ツールを使っている場合は動作しないのでご注意ください。

 

 

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【勉強会レポ】: yokohama.unity mini #7

勉強会のレポート(メモ)です。
参加したのはこちら「yokohama.unity mini #7」
会場はClusterさんです。

meetup.unity3d.jp

ハッシュタグ : #yokohamaunity

 

動画アーカイブ


yokohama.unity mini #7 新年はユルク横浜辺りから。

 

一度変な状態で記事が公開されました。申し訳ありません。

 

yokohama.unityとは

イベントページから引用

はじめての方はこちらをご覧ください。

yokohama.unity参加者・登壇者ガイドライン(過去の様子なども見れますー。)

  • 横浜を中心活動するUnityエンジニア、学生向けの勉強会です。
  • LT登壇を積極的に募集します!「これ大丈夫かな...」と思っても大丈夫!
  • Unityに興味がある人であれば、どなたでもご気軽にご参加いただけます!
  • これからUnityを触りたい人、Unityに触り始めた人、大歓迎!
  • 横浜市外にお住まいの方も参加可能です(開催中は横浜の方角を向いて参加ください

こんな人におすすめ!

  • Unityを使っている仲間を増やしたい
  • 趣味 or 業務に関わらず技術や知見を共有したい
  • とにもかくにもUnityデビューしたい!!
  • 自分が作ったものをいろんな人に見てもらいたい

 

 

#1 自動生成を作りたかった!

ダンジョンの自動生成にチャレンジしたお話。

 

区画を分割しつづけることで生成するアルゴリズムを使いました。
1.大きな四角い区画を用意しランダムで分割
2.区画に部屋を作成
3.部屋同士を通路でつなぐ

こちらを参考にしました。

qiita.com

改善したい点として、部屋同士が一直線にしかつながっていないので一つの区画が複数の区画につながるようにしたい。

 

 

 

#2 初めてUniRx使ってみた

もともと勉強会やTwitterでUniRxを聞いたことはあったが、仕事のプロジェクトで使い始めました。

 

参考資料

 

使用例

武器で斬りつける時、勢いよく切りつけないとダメージにならないようにしたい場合、
武器の位置を比較して移動量を取得し武器の勢いを算出して攻撃力としています。

 

Riderを使えばオペレータ間で扱うメッセージを強調表示してくれるためとても便利です。

 

 

 

 

#3 「スキャンデータを使ったリッチなVFXを軽率に作ろう」

 特定の形状の上をパーティクルが這うようなVFXを作るときのお話。

 

Unite Tokyo 2019の高橋 啓治郎のセッションから影響を受けています。

learning.unity3d.jp

サンプルプロジェクトはこちら

github.com

実現したいことは、形状にそって動かすため形状の法線ベクトルが必要になる。
かつ形状以外の物体から遠ざかる方向のベクトルが必要。

使うツールと手順

1.自分のスキャンデータをAzure Kinectで撮る

KinectFusionでスキャン

medium.com

2.HoudiniでSDFを作成

SDFには点からオブジェクトへの距離と遠ざかる方向のベクトルの2つのデータがまとまっています。
VFX Toolboxを使用しています

github.com

3.VFX Graphに取り込んで演出を作る

まとめ

VFX GraphでSDFを使うとリッチな表現ができる

 

 

 

#4 LEGOMicroGameで弾幕を作ってみたお話 

UnityHubで登場したLEGOMicroGameをさわってみた時のお話。何かのきっかけになってくれれば。


最近の作品は「回転」と「弾幕」をテーマに作成しています。
LEGO MicroGameを使ったゲームコンテスト「BUILD YOUR OWN GAME」とUnity1Weekを合わせて作った作品の紹介をします。

LEGO IDEAS - Build your own game!

note.com

 

動画が多いのでアーカイブをご覧ください。

www.youtube.com

 

 

 

 

おわり

最後はいつもの記念撮影で終わりです。

f:id:Raspberly:20210305202617p:plain

 

 

 

他の感想ブログとかまとめとか

togetter.com

note.com

 

 

 

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

【アセット紹介】Roslyn C# - Runtime Compiler でScriptをランタイム実行する【Unity】

今回はアセットの紹介をしていきます。
紹介するのは「Roslyn C# - Runtime Compiler」。
ランタイムでC# Scriptをコンパイルし実行するアセットです。

 

 

お得なバンドル情報!

現在アセットストアでは、旧正月を記念したメガバンドルが発売中です!終了しました
厳選されたツール系アセットとアート系アセットが超お得に手に入るチャンス
今回紹介するRoslyn C# - Runtime Compilerも対象アセットです。
詳しくは下のバナーリンクからどうぞ。

f:id:Raspberly:20210209005108p:plain

 

どんなアセット?

ランタイムでC# Scriptをコンパイルし実行するアセットです。

#では、Roslynコンパイラを使用してアセンブリとC#スクリプトをランタイムで読み込むことができるため、プロジェクトにモッディングサポートやゲーム内プログラミングを簡単に追加できます。さらに、Roslyn C#には、コードのセキュリティ検証も含まれています。これにより、ロードされたコードが準拠しなければならないセキュリティ制限の数を指定できます。これには、不正な名前空間やタイプが含まれます。これにより、不明なソースからサードパーティのコードをロードする方がはるかに安全になります。

方向の意思決定を実行するコードを書くことによって迷路からマウスをナビゲートすることを目的とする小さなプログラミングベースのゲームが含まれています。

 

ドキュメントはこちら
コンピュータサイエンスの知識がある程度ないと厳しいのかも

 

 

開発環境

Unity 2020.1.17f1

Roslyn C# - Runtime Compiler ver1.4.2

 

 

インポートの確認

アセットインポート完了時はこんな感じです。
ドキュメントとしてUserGuid.PDFとScriptingReferenceがついています。

f:id:Raspberly:20210227033923p:plain

 

 

 

サンプルシーンの確認

Assets/RoslynCSharp/Examplesにサンプルシーンがあります。
ネズミさんの挙動をプログラミングし、ゴールまで導いてあげるゲームです。

f:id:Raspberly:20210227040826p:plain

左上に4つボタンがあり、プログラムの実行、停止、再実行、編集が行えます。

編集ボタンを押すとInputFieldが出てくるのでここにプログラムを入力します。
Example Scriptボタンを押すと実行可能な完成済みのプログラムを読み込みます。

 

 

 

クイックスタート

ドキュメントに従ってクイックスタートをやってみます。

パッケージのインポート

unitypackageをインポートします。
Unity 2018.1.0f2以降ならそのままインポートして問題ありません。
他バージョンの場合、PlayerSettingsのScriptingRuntimeVersion「.Net4.xEquivalent」になっていることを確認してください。

 

Exampleスクリプトの作成

以下のScriptを作成し、シーン内の適当なGameObjectにアタッチします。

using UnityEngine;
using RoslynCSharp;

public class Example : MonoBehaviour
{
        private ScriptDomain m_domain = null;

        //ロードするC#ソースコード
        private string m_source =
        "using UnityEngine;" +
        "class TestCode : MonoBehaviour" +
        "{" +
        " void SayHello()" +
        " {" +
        " Debug.Log(\"Hello World\");" +
        " }" +
        "}";

        void Start()
        {
               //ドメインの作成
                m_domain = ScriptDomain.CreateDomain("MyDomain", true);
               ////ソースコードをコンパイルしてロードします
                ScriptType type = m_domain.CompileAndLoadMainSource(m_source);

                //Testは継承するためgameObjectを渡す必要がある
                ScriptProxy proxy = type.CreateInstance(gameObject);

                proxy.Call("SayHello");
        }
}

 

「CompileAndLoadMainSource」はマネージアセンブリを生成するRoslynコンパイラを呼び出します。
その主なTypeAssembleが自動的に選択されScriptTypeとして返されます。
他のAPIの概要についてはスクリプトリファレンスを参照してください。

コンパイルと実行

Start時にTestCodeを実行し、SayHelloメソッドを呼び出します。

f:id:Raspberly:20210227041133p:plain
"Hello World"と表示され、ランタイムでC#Scriptが実行されているのが確認できました。

 

 

 

実際に試してみる

せっかくなので、InputFIeldを用意しプログラミングを書いて実行できる簡単なゲームもどきを作ってみます。

Sceneの作成

PlaneとCubeを置いておきます。

f:id:Raspberly:20210227031817p:plain

UIを配置します。
C#Scriptを記述するためのInputFIeldとScritp実行用のButtonを配置します。

f:id:Raspberly:20210227031847p:plain

Playerの作成

事前にPlayerとなるGameObjectを作成します。
今回はSD UnityChanを使用します。ColliderとAnimatorをいい感じに設定しておきます。

f:id:Raspberly:20210227032155p:plain

 

Scriptの作成

以下の「ScriptTester」Scriptを作成し適当なGameObjectにアタッチします。

using UnityEngine;
using RoslynCSharp;
using TMPro;

public class ScriptTester : MonoBehaviour
{
    public TextAsset m_templateSourceText;
    public TMP_InputField m_textField;
    private string m_source;
    private ScriptDomain m_domain = null;
    private ScriptType m_type;
    private ScriptProxy m_proxy;

    void Start()
    {
        m_textField.text = m_templateSourceText.text;
        m_domain = ScriptDomain.CreateDomain("MyDomain", true);
    }

    public void SourceExecute()
    {
        m_source = m_textField.text;
        m_type = m_domain.CompileAndLoadMainSource(m_source);
        m_proxy = m_type.CreateInstance(gameObject);
        m_proxy.Call("Execute");
    }
}

 

次に、テキストファイルを作成し以下のCodeTemplateを書いておきます。
ファイル名はScriptTemplateとかにしておきます。

using UnityEngine;

class CodeTemplate : MonoBehaviour
{
	void Execute()
	{
	}

}

 

コンポーネントの設定

先ほど作成したScriptTesterに他のオブジェクトを紐づけていきます。
TemplateSourceTextに、同じく作成したテキストファイルを紐づけます。
TextFieldにInputFieldを紐づけます。

f:id:Raspberly:20210227032404p:plain

 

ButtonのOnClickにはScriptTesterのSourceExecute関数を実行するようにします。

f:id:Raspberly:20210227032749p:plain

これで準備は完了です。

 

コードを書いて実行してみる

InputFieldにはテキストファイルに記述したテンプレートが最初から挿入されています。
ここにコードを書いてExecuteボタンを押すと、プログラム内のExecute関数が実行されます。

f:id:Raspberly:20210227033000p:plain

 

このようにResourcesのプレハブをInstantiateして、コンポーネントをアタッチするようなこともできます。

f:id:Raspberly:20210227040251g:plain

(はてなブログの容量制限のため画質を落としています)

 

 

「あなたもUnityはじめてみませんか?」のように
ゲーム内でプログラムを実行させるような作品が作れちゃうかもしれませんね!

www.youtube.com

 

 

 

まとめ

・Roslyn C# - Runtime Compilerを使うと、ランタイムでC#Scriptを実行できる

ScriptReferenceを見るといろいろなことができそうな予感

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

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

勉強会のレポート(メモ)です。
参加したのはこちら「Roppongi.unity #8」
会場はClusterです。

roppongiunity.connpass.com

ハッシュタグ#roppongiunity

 

動画アーカイブはこちら 


Roppongi.unity #8 in YouTube Live

 

 

 

Roppongi.unityとは

イベントページから引用

概要

六本木発のUnity開発者向け勉強会です。(ref. Gotanda.unity)

Unityに興味がある人であれば、どなたでもご気軽にご参加いただけます!

発表者一覧

タイトル 発表者
unitypackageのリリース作業をCIで自動化した話 @sansuke05_vr
MRのカーレース作成にチャレンジした @sbubu12
フィットネスバイクでVR空間を乗り回す話 @zawazawatw
AR開発高速化!「CFA」作りました! @okprogramming
休憩 -
MLAPIでマルチゲームを作ってみた @xrdnk
オンラインでもVRの体験をしてもらいたい!!Unityで360度動画を録画してYoutubeで上げるまで @nanaki_pg
初心者向け自作Humanoidモーションの作り方 @yunoda_3DCG
ゲームで上がるフィットネスモチベーション @ichgv

 

 

 

#1 unitypackageのリリース作業をCIで自動化した話

 

趣味でアバターのクリエイター向けUnityエディタ拡張作っています

sansuke05.booth.pm

こういうエディタ拡張は定期的にアップデートをかけますがunitypackageの更新が結構しんどい。
なのでCIで自動化しました。その時のお話。

CIの概要

GitでTAGをつけGithubにPush、PushされるとGithub Actionsが走る構成になっています。
Github Actionsでは、Unityのアクティベート後unitypackageを作成しリリースします。

Github Actions

Github上で使えるビルドやリリースを自動化できるCI。Unity Actionsが使える。

Unity Actions

UnityのテストやビルドをCIで実行できるパッケージ

CIの構築手順

1.Unityのアクティベートファイルを作成

 Unity - Request Activation Fileを使ってアクティベートファイルを作成

github.com

2.アクティベートファイルを使ってライセンスを取得

Unity - Activationにアクセスし、ライセンスファイルを取得

3.ライセンスをリポジトリのシークレットに登録

 リポジトリのシークレット(環境変数みたいなもの)に登録

4.ワークフローを実際に書いてCIを回していく

 unitypackageをリリースするワークフローを書く。

github.com

まとめ

個人開発でもどんどんリリース自動化していきましょう

 

ClusterではUnityエンジニア募集しているのでお声がけください

www.wantedly.com

 

 

 

#2 MRのカーレース作成にチャレンジした

Mixed Realityデバイス HoloLens2で作成したゲームの紹介と、
技術的な知見としてホログラムにタッチした時にメソッドを発動する方法を紹介します。

作成したゲーム

www.youtube.com

ホログラムにTouchしたらメソッドを発動する方法

MRTKを使用します。
ColliderInteractable.csNearInteractionTachable.csを使用します。

NearInteractionTachableはホログラムをさわったり掴んだりする設定をする時に必要です。
Interactableはどういう挙動をするかをカスタマイズできる。

 

 

MRTKはOculusQuestでも使えるので遊んでみてください。

 

 

 

#3 フィットネスバイクでVR空間を乗り回す話

今とっても運動不足。なので家でも運動できるようフィットネスバイクを買いました。
それについてきたオーディオプラグっぽい端子にESP32という基盤をくっつけてWifiとかBluetoochで情報を飛ばせばUnityやVRでおもしろいことができるんじゃねという緩い発想で始めたときのお話。

 

ESP32をフィットネスバイクに取り付け

Arduinoの制御ライブラリはArduinoOSCを使い、ペダルの回転にかかった時間をUnityに送信。
Unity側はuOSCというライブラリを使用しました。

tips.hecomi.com

 

VRChatに持ち込んで空中サイクリングしてみよう

SpaceDragVMTTrackingOverrideを組み合わせて実装しました

SpaceDrag:コントローラーで空間を掴んで移動できる機能

VMT:SteamVRに仮想トラッカーを追加登録できる

TrackingOverride:HMDやコントローラの既存のトラッカーの位置を上書きする機能

セルフフィードバック

ペダルをこぐ行為と映像が一致しているため酔わなかった。
簡単に高所に行けてしまうため3D空間が安っぽくなってしまった。

→頑張ってこげばこぐほど上にいくようにした

 

Steam VRでは動作したが、VRChatだと一瞬しか動かなかった。

 

 

 

 

#4 AR開発高速化!「CFA」作りました!

マーカーレス型ビジョンベースARの問題点、CFAとCFA実装で得た知見についてのお話。

マーカーレス型ビジョンベースARの問題点

・見た目の確認修正が何度もできない
・絵コンテではイメージしずらい
・モック制作に時間をかけられない

そこでCFAをつくりました

CFAって何

Contents Formatter for AR
マーカーレス型ビジョンベースARの問題点を解決し、ARコンテンツの開発を加速させる内製ツールです。

配置ツールで空間アンカーを元に配置データを作成し、作成ツールで配置データを受け取りARコンテンツを配置し、ビューワーアプリで動作確認を行います。

CFAの実装で得た知見と工夫

Azure Spatial Anchorについて

SpatialAnchorManagerクラスが空間アンカーに関する処理の中心だったため、CFA用に使いやすくしました。
UniRxを利用し、各機能にアンカーの状態を通知するようにしました。

Boltでノードを自作

非エンジニアでも作成に参加でき、処理をパーツとして使えるため制作が高速化できる

HoloLens2対応

CFAは3つのプラットフォームに対応しています。
対応させるためにインターフェースを継承したクラスとして実装し、単機能をモジュール化。

 

CFAについてはこちら

cfa.upft.jp

 

 

 

#5 MLAPIでマルチゲームを作ってみた

MLAPIの説明

Unityが買収した(もともとOSS)GameObject向けネットワークソリューション

blogs.unity3d.com

 

問題点

・ドキュメントが充実してない
・サンプルがほぼ皆無

現在改修中

MLAPIの機能

MLAPIの動作検証は動画をご覧ください

 

おわりに

・新しいドキュメントがでました

mp-docs.dlt.it.unity3d.com

・現時点でMLAPIをふれるのはつらい
・素直にドキュメントやサンプルが整ってから触れよう
・しばらくマルチゲームを作る時はPhotonかMirrorに触れてマルチゲームの仕組みに慣れよう

参考資料

www.youtube.com

www.youtube.com

 

 

 

 

#6 オンラインでもVRの体験をしてもらいたい!!Unityで360度動画を録画してYoutubeで上げるまで

オンラインイベントが多くなったため展示する機会する機会がなくなってしまった。
そこでスマホでもHMDでも見れるYoutubeに360度動画をアップロードすることにしました。

録画に便利なアセット

・UnityRecoder(UPMからインストール)

VR Panorama 360 PRO Renderer (有料アセット)

アップロード

アップロードする前にメタデータを仕込みます

github.com

動画はこちら

www.youtube.com

備考

 エンコードした動画した動画はDeoVRを使いOculus Questで確認しました

www.oculus.com

軽量化はこちらのアセットを使用しました

 

 

 

 

#7 初心者向け自作Humanoidモーションの作り方

Unityで使うアニメーションをBlenderで作成するお話。

Rigify

Blender公式アドオンRigifyを使っています。

3dcg-school.pro

ボタン1つで人体のリグコントローラを作成できる(IKとFKを一発で作れる)
Unityでも使える少しボーンを入れ替える必要がある

 

もう少し詳しい記事を公開予定です。

まとめ

・アニメの工数はめちゃくちゃ重たい
アニメーションを自作する前に、必要なのか?ストアで見つからないのか?代用できないのか考えよう。
・Unityだけでのモーション制作はおすすめしない
モデリングできなくてもアニメは作れる
Blender楽しいぜ

 

 

 

#8 ゲームで上がるフィットネスモチベーション

ゲームとフィットネスを掛け合わせた作品の紹介と、制作方法とコツについてのお話。

作品紹介

しゃくとりっぷ

ストレッチチューブをゲームに取り入れる

ぽよころあどべんちゃー

バランスボールで操作

制作方法

ストレッチチューブの伸び縮みはWebカメラを用いた画像処理(Open CV)で取得
バランスボールの傾きは3軸加速度センサを取り付けることで取得

制作のコツ

ノイズ、ブレが絶対発生する
しきい値を設定して連続的な値をそのまま使用しないようにする。
どれくらいの値から変化するかを設定することで見栄えがよくなる。

まとめ

Webカメラやセンサを使えばコントローラの可能性が広がる
ゲームと何か掛け合わせると面白いものがどんどんできる

 

 

 

協賛企業紹介

Cluster

バーチャルプラットフォームClusterを作っています。
詳しくはSpeakerDeckの資料をご覧ください。

クラスター会社紹介資料 / We are hiring - Speaker Deck

 

特徴として体験入社というものをしています。
評価ではなく、一緒に働けるかをお互いに判断するためにしています。

ご応募お待ちしています。

www.wantedly.com

 

 

ハシラス

テクノロジーと五感をだますテクニックを駆使することで高臨場感を作ることをミッションとしています。
(実は経営陣の創業メンバーが全員元マジシャンです)

 

感染症流行後は、マルチプレーフリーローム技術をビジネス活用しています。
商談・プレゼン用ですがめちゃめちゃ面白いので、状況がマシになったら何か面白いものを作ろうと狙っています。

 

現在ソフトウェアエンジニアを募集中です

hashilus.co.jp

 

会社紹介を行うオープンデイをやっています。
情勢が情勢ですので今回はクローズドなオープンデイをします。
お気軽にDMやメンションをください。お待ちしています。 

 

 

 

終わり

次回開催について

・2か月に1回開催を予定しています。
しばらくはオンライン開催の予定です。一か月前をめどに告知予定です。

・登壇側での参加もお待ちしています。
初心者も大歓迎

その他勉強会紹介

meetup.unity3d.jp

yokohamaunity.connpass.com

vrm.connpass.com

 

 

 

 

感想

今回も参加しましたRonnpongi.unity。

LT 7番目を担当したyunodaさんは、過去にUnity内でモーションを作成できるアセットUMotion Proの紹介LTをされていました。
当時はUnity内でのモーション作成を推していましたがいったい何があったんだ・・・

raspberly.hateblo.jp私はVery Animationを使ってUnity内でモーション作成をしたことがありますが、
多機能なアセットは使いこなすのが本当に難しいため、Blenderで作るのも手かもしれません。


 

ハシラスさんの紹介でもありましたハシラスオープンデイですが、過去に参加したことがあります。
いろいろなコンテンツを体験できるのでオススメです。
当時はハードウェアエンジニアのみ募集していましたが、現在はソフトウェアエンジニアを募集中!

raspberly.hateblo.jp

 

 

 

過去のRoppongi.unityのレポはこちら

raspberly.hateblo.jp

 

 

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

【勉強会レポ】: CA.unity #1

勉強会のレポート(メモ)です。
参加したのはこちら「CA.unity #1」

meetup.unity3d.jpハッシュタグ : #CA_Unity

 

後日動画アーカイブやログミーの書き起こしが公開されるようです。

www.youtube.comこのレポでは大まかな内容のみメモしているので、詳しい内容はそちらをどうぞ。
また一部のLTはUnityLearningMaterialsに公開されます。公開されました。

CA.Unity | 検索結果: | Unity Learning Materials

 

3月15日追記 イベントレポートも公開されました

developers.cyberagent.co.jp

 

CA.unityとは

以下イベントページより引用

● CA.unityとは
CA.unityはサイバーエージェントが運営するUnityをテーマにした勉強会です。

サイバーエージェントのサービス開発者と社外の開発者を交えて、Unityに関する知見を共有する場となります。

● イベント概要
Unityエンジニア、学生向けのオンラインLT勉強会です。

LT発表者はZoomで発表を行い、その様子がYoutubeで限定配信されます。

初回である今回の企業枠はユニティ・テクノロジーズ・ジャパン様とサイバーエージェントが登壇いたします。

一般枠のLT発表者も積極的に募集しております。お気軽にご参加ください!

 

 

サイバーエージェント会社説明

サイバーエージェントのゲーム事業はCygamesSGEの2つあります。
今回、このCA.unityを運営しているのはSGEになります。
12の子会社があり、それぞれ得意分野があります。

技術の面

クライアント開発はUnityがメイン。
幅広い分野の開発がありノウハウが蓄積されています。
アウトプットも積極的に行っています

creator.game.cyberagent.co.jp

 

 

 

企業LT#1 「Cinemachineで見下ろし視点のカメラを作る」

www.youtube.comCinemachineとはカメラを制御するツールです。UPMからインストールできます。
追跡する対象や、どう追跡するかなどを設定しカメラをいい感じにしてくれます。
他にも、いくつかのカメラを用意して状況に応じて切り替えていきます。

 

今回はこれで見下ろし型カメラの作り方を紹介します。
FramingTransposerを使います。
これはもともと2D向けの機能ですが、カメラの回転が必要ない見下ろし方のゲームにマッチします。

Framing Transposer | Cinemachine | 2.6.0

 

質疑応答

Q.場にキャラが複数いて、追尾するキャラを切り替えるときは、follow,lookatの対象を変えるのではなく、バーチャルカメラを複数移したい対象ごとに作ってバーチャルカメラを切り替えるほうが使い方イメージとしてとしてはあってるのでしょうか。

 

A. どちらでもいいですが、Cinemachineの考え方としてはカメラを切り替えたほうがいい。
フォロワーを切り替えると座標がいきなり大きく変わってしまうかもしれないため。

 

 

 

企業LT#2 Burstを使ってSHA-256のハッシュ計算を高速に行う話

www.youtube.com本日扱うソースコードはこちらにあります

github.com

去年のcedecで講演したのがあります、細かい話はこちらをどうぞ。

learning.unity3d.jp


burstは早いがいろいろ使えないものも多い。
そこで今回はBurstでファイル入力をする話をします。
Job System向けにAsyncReadManagerというファイル読み込みをする仕組みがあります。

おまけ

SHA-256の逆変換をBurstでやる場合、計算してみるとおよそ1000那由他年かかります。

crowdworks.jp



 

 

一般LT#1 「Addressables の Catalog 外部読込を試してみた」

プロジェクトをAddressables Assets Systemを使って分割した時のお話。

 

プロジェクト側でビルドしたcatalogをLoadContentCatalogAsyncで読み込むだけ
UniTask.Addressablesを参照しておくと便利。
思いのほかすんなりいけましたが、製品版としてリリースしているわけではないので注意。

 

 

 

 

 

一般LT#2 「Unityにおける設計のパターン」

 

 

最近本を出しました

www.kadokawa.co.jp

 

設計アーキテクチャについてのお話
発表はだいぶ端折っていきます。公開している資料はフルバージョンです。

設計とは

どう作るかという指針のこと、これを俯瞰してみたのがアーキテクチャ
開発・運用コストを最小限にするのが目的

設計レベル

Unityにおける設計レベルを(勝手に)決めました。
レベルを上げると長期開発におけるコストが下がっていく、ただし開発者に対する負担が上がる。
どのレベルにするかはバランスを見てください。

まとめ

完璧なアーキテクチャは存在しない。
クリーンアーキテクチャになっていなかったり密結合でも、それがやりやすいならそれが良い。
ただし設計しなくていいというわけではない。

参考資料

www.nuits.jp

www.nikkeibp.co.jp

www.kadokawa.co.jp

 

 

 

 

企業LT#3 「A quick tour of the Cysharp OSS

Cysharpが提供しているOSSの紹介です。

MagicOnion

C#のサーバーサイドフレームワーク。採用実績がけっこうあります。

GitHub - Cysharp/MagicOnion: Unified Realtime/API framework for .NET platform and Unity.

UniTask

unityでasync/awairをゼロアロケーションで実現できるライブラリ 激おすすめ

GitHub - Cysharp/UniTask: Provides an efficient allocation free async/await integration for Unity.

MasterMemory

クッソ早いデータベース

GitHub - Cysharp/MasterMemory: Embedded Typed Readonly In-Memory Document Database for .NET Core and Unity.

ZString

文字列生成を最適化 余計なごみを出さない

GitHub - Cysharp/ZString: Zero Allocation StringBuilder for .NET Core and Unity.

Ulid

ソート可能なGUIDの高速なC#実装

SlnMerge

Unityの.slnとサーバーの.slnを合成してくれる

 

 

 

企業LT#4 「NieR Re[in]carnationの開発」

NieR Re[in]carnationの開発について

nierreincarnation.jp

・ノードベースのツールを作成しました

・アウトゲームの作り方
UIにこだわりたかったため、Rapid開発という独自の開発をしました
photoshop to Unity Prefabツールを作成

・設計はMVPパターンに沿った実装

・UIアニメーションはUnityのAnimator+AnimationClipで実装、エンジニアはAnimationを指定

・アセット管理はPerforceを使用

・通信回り:通信はgRPCのUnary方式

デバッグ回り:SRDebuggerを使用(これにバグ報告機能を組み込んでいます)

 

 

2月24日追記 アプリボット技術ブログTechbotにて、
「NieR Re[in]carnation」のアウトゲーム開発フローと開発に用いたツールの紹介記事が投稿されました。

blog.applibot.co.jp

 

 

 

 

 

一般LT#3 「XR Interaction Toolkit 1.0.0-pre で VR 開発してみよう」

XR Interaction Toolkitとは

Unityが提供するツールキットです、Oculus Integrationみたいなやつ
2019年に公開され、2020に新機能が公開、リリース目前になっています。
今回はVR側の機能の紹介を行います。

質問

Q. OculusI ntegrationと比べた時のメリットは何?


A. XR Interaction ToolkitはUPMでインストールされます。Assets配下に置かれないためリポジトリの容量が増えない。

 

 

 

一般LT#4 「Unityでチャットに使えるモバイルキーボードを実現する」

モバイルキーボードを気持ちよく実装する方法についてのお話

キーボードの高さを取得し、RectTransformのBottomに反映させたり、解像度の調整など。

(Androidの場合はこちら)

baba-s.hatenablog.com

 

 

サンプルはこちらで公開しています。

github.com

 

来週Roppongi.unityを開催しますのでよろしくお願いします

roppongiunity.connpass.com

 

  

 

おわり

新しい○○.unity勉強会が誕生しました。
今回主催運営をしているのはサイバーエージェントさんです。
実は過去にごたゆにの会場提供をされていたこともあります。

raspberly.hateblo.jp

第一回目の開催にも関わらずなんと参加者が700人超え!
Unite 2019の会場グランドニッコーでは、1ルームの収容人数が400人ほどなので実質Uniteと言っても過言ではない?

 

 

企業LT#1で紹介されていた、ChinemachineのFramingTransposerは
Unityショートセッション勉強会でとと様が2Dで使用していました。
こちらも合わせてチェック

raspberly.hateblo.jp

 

 

 

 

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