Raspberlyのブログ

Raspberlyのブログ

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

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

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

meetup.unity3d.jp

ハッシュタグ : #gotandaunity

f:id:Raspberly:20191121000650p:plain
会場提供はZIZAIさん。
懇親会提供はキッズスターとワンダープラネットさんです。

 

 

 

 

超短時間企業紹介

キッズスター

ごっこランドをリリースしています。キッザ〇アみたいなやつです。

おかげ様で好評です。
基盤側の整理が追い付いていないので一緒に働いてくれる方募集しています。

www.wantedly.com詳細は@monryまで。

 

ワンダープラネット

クラッシュフィーバーとかジャンプチヒーローズを世界に出しています。

Nagoya.unityUnity Designer's Cafeもやっています。
wantedlyの方で会社紹介しているのでよろしくお願いします。

www.wantedly.com

 

ZIZAI

zizai.co.jp

 

 

 

 

LT.1 macOSとかでもQuestをリモートしたいんだよ

 
MacOSでもOculusQuestを使えるよう、「A-npanRemote」というツールを作ったというお話。
詳しくはスライドをご覧ください。

github.com



 

 

 

 

LT2. いつか使えるKotlin/Native With Unity

Kotlin/Nattiveでマルチプラットフォーム向けにばいなりなり実行ファイルを書きだせるころ

ここからkotlinでunityネイティブプラグインの共通化できるんじゃないかと考えました

やりたいこと

1.Kotlin/Nattiveでunityネイティブプラグインの共通化
2.http2通信
3.ライブラリを使えばどういう機能が手軽にできるか知りたい

できたこと

1.ネイティブプラグインの共通化はできた。
2.http1.1通信はできたが、時間が足りずここまで
3.Ktorというものを使ってみた

まとめ

・Kotlin/Nattiveはとりあえず動きます
・需要はよくわからない
・需要やパフォーマンス、フローが緩和されたらいつか使えるかも

検証リポジトリ

github.com

 

 

 

 

 

 

 

LT3. アンチパターンから学ぶUnityの使い方

public変数問題

インスペクターから初期値を変えられるし、外部から書き換え可能なので結構トラブルが多い。

解消方法

SerializeFieldを使いましょう、publicは極力避ける
Getterは公開してもいいが、Setterはメソッドを用意しましょう

publicを利用ケース
データ構造の表現にはいい

PrefaのSerializeField問題

何でもインスペクターで設定してしまうと依存関係がめちゃくちゃになる

解消法

自分より上の階層にあるオブジェクトをインスペクターでつけちゃまずい
依存性についてはきちんと設計しましょう。

Awake/Start問題

初期化処理でAwakeとStartの実行順に依存性が生じる
(Awakeより前にStartが呼ばれるとダメな状態など)

解消法

初期化は初期化用関数を用意しきちんと管理しましょう。
使わない関数(Awake/Start/Update)は消す。

補完関数問題

Lerp/Slerpは内分点を計算する関数で、deltaTimeの割合で少しづつ目標に近づく。
そのため、無限時間をかけないと最終値にはならない。

解決法

ドキュメントを読んで使い方を理解しましょう。
第三引数を0.0~1.0に変化するコードにする。

Shader問題

ピクセルシェーダーは重い
if文や三角関数、Log/Sprtなど

解消方法

if文は軽量な数学関数で表現。
三角関数は予め計算しテーブルを作成しておく。
logや平方根は使わない。

 

まとめ

ドキュメントはちゃんと読みましょう
設計をちゃんと考えましょう
パフォーマンスは気にしましょう

 

 

 

 

 

 

LT4. Firebase Remote Config for JavascriptWebGLビルドしたゲームへ導入してみる

Firebase Remote Config for JavascriptWebGLビルドしたゲームで使う話をします。
詳しくはスライドをご覧ください。

firefox remote configとは

remoteで変更できるconfig
リリース無しでアプリ内の設定を変更できる

やりたいこと

WebGLビルドしたゲームにFirebase Remote Configを入れてA/Bテストしたい

なぜJava Script?

Firebase for unityはWebGLビルドに対応していないため

まとめ

jsライブラリを使いたい場合はこういう方法もある
unityroomにいれるには工夫が必要

 

 

 

 

 

 

LT5. ハイクオリティなゲームを1週間で作る7つの極意

unity1weekでゲームを作りきるテクニックを紹介します

 

初日にゲームループを完成させる

・そのままリリースできる状態を最速でつくる、その後はブラッシュアップをするという認識。
・企画をシンプルにする

事前準備

ゲーム本編以外のゲームループを完成させる(タイトル画面やリザルト画面、ランキング、ツイート機能など)

アップロードフローの確認

前日からビルド->アップロードの流れを確認しておく。

ビルドは毎日する

できるだけ早めにアップロードまでやっておく。
CloudBuildは神サービスなのでおすすめ(要課金)

公式Package Assetを活用する

よく使う公式アセット

URP(LWRP)
PPS V2
TextMesh Pro
Mathematics

よく使うアセット

Unirx
Zenject (アセットストアからは削除済)
Rainbow Folders2
Procedural UI Image
Rewired

github.com

デザインのコツ

・UGUIのデフォルトボタンはださいのでやめましょう
・余白は大目に開けよう

シェーダーを活用する

シェーダーグラフがお手軽なので活用しましょう
ノードベースなので短時間で作成できます

設計に気を配る

SOLID原則を活用しましょう

まとめ

自分はゴリラでないという自覚を持ちましょう
そのままリリースできる状態を初日に作る

 

 

 

 

 

 

 

LT6. VRMアバターで自撮りが出来るカメラアプリを開発する過程で得た知見

VRMアバターで自撮りアプリを作った時の知見についてお話します。

開発環境

Unity 2019.2.9f1
AR Foundation preview.4 - 3.0.0

AR Faundationの学習方法

公式が出しているサンプルが勉強になります

github.comプレビュー版はバグがあるのでIssuesやChangelogを追うと良いでしょう

背面カメラと全面カメラの同時使用

カメラ同時使用時にアバターを表示する

位置調整

スマホ自体を傾けた時にキャラクターを動かす

光の推定

背景と3Dの描画をなじませる

おまけ

入らなかったトピックはまとめています
後でqiitaで公開します

 

 

 

 

 

 

LT7. UnityMLでオンラインゲームのNPCを作った話

IOゲームとは

ブラウザ発症のオンラインゲーム
多人数のユーザーで競い合うゲームです

作ったゲーム

超音波で「探す」ゲーム

unityroom.com

NPCから開発したほうがいい理由

オンラインゲームでは常に人がいることが大事、最初はNPCがあるとよい
キャラクタークラスが人間/NPC両方から入力を受けれるよう作ることで入力まわりがきれいになる

擬似オンラインゲームのデザイン

CPUはプレイヤーと同じ立場にさせる
シンプルな入力と相まって人が操作しているように見える

超音波のゲームデザイン

近くにいる時が一番楽しいので、遠くの時は近づきやすいようにしています。
近くに来たら攻撃に切り替える。

ML Agentの紹介

unityが提供する強化学習用ライブラリ
マルチプラットフォームに対応らしい

宣伝 Roppongi.unity #6

roppongiunity.connpass.com

Gotanda.unityと同じ会場に行います。
渋谷は五反田であり六本木である

 

 

 

 

 

 

LT8. タイルマップ拡張のススメ 

タイルマップのお話

タイルマップめんどい問題

用意するタイルが多くてめんどい

実際は、たくさんあるタイルでも重複部分があるのでその分削ることができます。

パレットから選ぶのがめんどい

タイルマップはAPIで拡張可能
今回作ったものはアセットストアで出しているのでぜひ使ってみてください。

タイルマップのはまりどころ

TilebaseはScriptableObjectな点に注意

 

 

 

 

 

 

 

 

LT9. Oculus Questでいつでもどこでも運動できるゲームを作ろう

腕を鍛えよう

サンタシミュレーターというVRゲームを作りました。
鹿(3K)にOculus Touchをつけて腕を鍛えることができます。

 

銀座VRにて展示されていました

 

合体事故に気を付けよう

オキュラスタッチのセンサーが重ならないようにしましょう。

足を鍛えよう

ここでOculus Touchやゴーグルの加速度を使います。
足にTouchを括り付け、走る動きをするとVR空間内で実際に動く作品を作りました。

 

※参考資料

qiita.com

おまけ

リングフィットをvrでやりたい・・・
Oculus Touchとリングフィット アドベンチャーのリングを合体させました。

 

 

 

 

 

 

 

懇親会

f:id:Raspberly:20191121011815p:plain

 

 

 

 

 

 

告知タイム

Unity お・と・なのLT大会 2019

meetup.unity3d.jp

 

ProDevelopers GameJam #2

ゲーム業界に所属している"プロ"が集まって1日で行うGameJamです。
まだイベントページはできていませんが、12月14日にやる予定です。

 

マスコットアプリ文化祭

アプリのコンテストです。まだまだ期限までには間に合うのでぜひご参加ください。

mascot-apps-contest.azurewebsites.net

docs.google.com

 

 

ツキササリーナ

 

バイナリーファイター

 

 

 

 

 

 

 

タイムライン

 

 

 

 

 

 

 

 

 

 

 

 他の方の感想ブログとか

maketake.hatenablog.com

 

 

 

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