勉強会のレポート(メモ)です。
参加したのはこちら「Gotanda.unity #14」
会場はZIZAIさんです。
会場提供はZIZAIさん。
懇親会提供はキッズスターとワンダープラネットさんです。
- 超短時間企業紹介
- LT.1 macOSとかでもQuestをリモートしたいんだよ
- LT2. いつか使えるKotlin/Native With Unity
- できたこと
- LT3. アンチパターンから学ぶUnityの使い方
- LT4. Firebase Remote Config for JavascriptをWebGLビルドしたゲームへ導入してみる
- LT5. ハイクオリティなゲームを1週間で作る7つの極意
- LT6. VRMアバターで自撮りが出来るカメラアプリを開発する過程で得た知見
- LT7. UnityMLでオンラインゲームのNPCを作った話
- LT8. タイルマップ拡張のススメ
- LT9. Oculus Questでいつでもどこでも運動できるゲームを作ろう
- 懇親会
- 告知タイム
- タイムライン
- 他の方の感想ブログとか
超短時間企業紹介
キッズスター
ごっこランドをリリースしています。キッザ〇アみたいなやつです。
おかげ様で好評です。
基盤側の整理が追い付いていないので一緒に働いてくれる方募集しています。
www.wantedly.com詳細は@monryまで。
ワンダープラネット
クラッシュフィーバーとかジャンプチヒーローズを世界に出しています。
Nagoya.unityやUnity Designer's Cafeもやっています。
wantedlyの方で会社紹介しているのでよろしくお願いします。
ZIZAI
LT.1 macOSとかでもQuestをリモートしたいんだよ
死霊 @ #gotandaunity
— 殺意駆動開発 (@toru_inoue) November 20, 2019
「macOSとかでも
Questをリモートしたいんだよ」https://t.co/GMxsUynbev
MacOSでもOculusQuestを使えるよう、「A-npanRemote」というツールを作ったというお話。
詳しくはスライドをご覧ください。
LT2. いつか使えるKotlin/Native With Unity
本日の登壇資料です
— あるど (@OrangeGKeeper) November 20, 2019
「いつか使えるKotlin/Native With Unity」#gotandaunityhttps://t.co/LciRmeJFoY
Kotlin/Nattiveでマルチプラットフォーム向けにばいなりなり実行ファイルを書きだせるころ
ここからkotlinでunityネイティブプラグインの共通化できるんじゃないかと考えました
やりたいこと
1.Kotlin/Nattiveでunityネイティブプラグインの共通化
2.http2通信
3.ライブラリを使えばどういう機能が手軽にできるか知りたい
できたこと
1.ネイティブプラグインの共通化はできた。
2.http1.1通信はできたが、時間が足りずここまで
3.Ktorというものを使ってみた
まとめ
・Kotlin/Nattiveはとりあえず動きます
・需要はよくわからない
・需要やパフォーマンス、フローが緩和されたらいつか使えるかも
検証リポジトリ
LT3. アンチパターンから学ぶUnityの使い方
本日の死霊ですhttps://t.co/vCrlBzmRTS#gotandaunity
— Cova (@8bitdots) November 20, 2019
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 JavascriptをWebGLビルドしたゲームへ導入してみる
本日の資料です、ご清聴ありがとうございました!
— じぇろめ/Voxelゲーム作るよ!→作った! (@Jerome_1010) November 20, 2019
おまけのボツ実装は実現したい…!https://t.co/BEORb8CM62 #gotandaunity
Firebase Remote Config for JavascriptをWebGLビルドしたゲームで使う話をします。
詳しくはスライドをご覧ください。
firefox remote configとは
remoteで変更できるconfig
リリース無しでアプリ内の設定を変更できる
やりたいこと
WebGLビルドしたゲームにFirebase Remote Configを入れてA/Bテストしたい
なぜJava Script?
Firebase for unityはWebGLビルドに対応していないため
まとめ
jsライブラリを使いたい場合はこういう方法もある
unityroomにいれるには工夫が必要
LT5. ハイクオリティなゲームを1週間で作る7つの極意
unity1weekでゲームを作りきるテクニックを紹介します
ハイクオリティなゲームを1週間で作る7つの極意 - のたぐすブログ https://t.co/x2PcKe7Jrb#gotandaunity で発表した資料を公開しました!
— のたぐす@Unityプログラマ (@notargs) November 20, 2019
初日にゲームループを完成させる
・そのままリリースできる状態を最速でつくる、その後はブラッシュアップをするという認識。
・企画をシンプルにする
事前準備
ゲーム本編以外のゲームループを完成させる(タイトル画面やリザルト画面、ランキング、ツイート機能など)
アップロードフローの確認
前日からビルド->アップロードの流れを確認しておく。
ビルドは毎日する
できるだけ早めにアップロードまでやっておく。
CloudBuildは神サービスなのでおすすめ(要課金)
公式Package Assetを活用する
よく使う公式アセット
URP(LWRP)
PPS V2
TextMesh Pro
Mathematics
よく使うアセット
Unirx
Zenject (アセットストアからは削除済)
Rainbow Folders2
Procedural UI Image
Rewired
デザインのコツ
・UGUIのデフォルトボタンはださいのでやめましょう
・余白は大目に開けよう
シェーダーを活用する
シェーダーグラフがお手軽なので活用しましょう
ノードベースなので短時間で作成できます
設計に気を配る
SOLID原則を活用しましょう
まとめ
自分はゴリラでないという自覚を持ちましょう
そのままリリースできる状態を初日に作る
LT6. VRMアバターで自撮りが出来るカメラアプリを開発する過程で得た知見
本日の死霊です!🙌https://t.co/YHDjOk3APd#gotandaunity
— 戸森ひかげ(Tomori Hikage) (@tomori_hikage) November 20, 2019
VRMアバターで自撮りアプリを作った時の知見についてお話します。
開発環境
Unity 2019.2.9f1
AR Foundation preview.4 - 3.0.0
AR Faundationの学習方法
公式が出しているサンプルが勉強になります
github.comプレビュー版はバグがあるのでIssuesやChangelogを追うと良いでしょう
背面カメラと全面カメラの同時使用
カメラ同時使用時にアバターを表示する
位置調整
光の推定
背景と3Dの描画をなじませる
おまけ
入らなかったトピックはまとめています
後でqiitaで公開します
LT7. UnityMLでオンラインゲームのNPCを作った話
先ほどの発表資料です!! #gotandaunity
— なかじ / リリカちゃん (@nkjzm) November 20, 2019
(グダグダになっちゃってすみません😭)
IOゲームを作る時に考えたゲームデザインの話 / Game design for IO game - Speaker Deckhttps://t.co/2Xg2Z9w7Vh
IOゲームとは
ブラウザ発症のオンラインゲーム
多人数のユーザーで競い合うゲームです
作ったゲーム
超音波で「探す」ゲーム
NPCから開発したほうがいい理由
オンラインゲームでは常に人がいることが大事、最初はNPCがあるとよい
キャラクタークラスが人間/NPC両方から入力を受けれるよう作ることで入力まわりがきれいになる
擬似オンラインゲームのデザイン
CPUはプレイヤーと同じ立場にさせる
シンプルな入力と相まって人が操作しているように見える
超音波のゲームデザイン
近くにいる時が一番楽しいので、遠くの時は近づきやすいようにしています。
近くに来たら攻撃に切り替える。
ML Agentの紹介
unityが提供する強化学習用ライブラリ
マルチプラットフォームに対応らしい
宣伝 Roppongi.unity #6
Gotanda.unityと同じ会場に行います。
渋谷は五反田であり六本木である
LT8. タイルマップ拡張のススメ
きのうの資料です~~ #gotandaunityhttps://t.co/eKo1vnquEY
— るっちょ (@ruccho_vector) November 21, 2019
タイルマップのお話
タイルマップめんどい問題
用意するタイルが多くてめんどい
実際は、たくさんあるタイルでも重複部分があるのでその分削ることができます。
パレットから選ぶのがめんどい
タイルマップはAPIで拡張可能
今回作ったものはアセットストアで出しているのでぜひ使ってみてください。
タイルマップのはまりどころ
TilebaseはScriptableObjectな点に注意
LT9. Oculus Questでいつでもどこでも運動できるゲームを作ろう
腕を鍛えよう
サンタシミュレーターというVRゲームを作りました。
鹿(3K)にOculus Touchをつけて腕を鍛えることができます。
※銀座VRにて展示されていました
吹雪を体感出来るVR!
— どび~@laughmaker (@dobbythelaughm) September 14, 2019
これは声出してワロタwww
(出展者の許可を頂いてます)#銀座VR pic.twitter.com/pOAribHGuj
合体事故に気を付けよう
オキュラスタッチのセンサーが重ならないようにしましょう。
足を鍛えよう
ここでOculus Touchやゴーグルの加速度を使います。
足にTouchを括り付け、走る動きをするとVR空間内で実際に動く作品を作りました。
※参考資料
おまけ
リングフィットをvrでやりたい・・・
Oculus Touchとリングフィット アドベンチャーのリングを合体させました。
輪ゴムで固定した方が安定性は増すが
— ナナキ (@nanaki_pg) November 20, 2019
固定するのにスティックボタンを引っ掛けてるから、oculusホーム画面での無駄な入力やボタン系の誤操作に気を付けねば pic.twitter.com/W07z7jaeav
懇親会
キタサァン・ランチ #gotandaunity pic.twitter.com/FxMpAOFcEM
— キタ (@atasfrznnks) November 20, 2019
ととさんが誕プレくれた!!!!爆裂オシャレなコンフィチュールやで!!ジャムやないでコンフィチュールやで!!ごたゆに万歳!! #gotandaunity pic.twitter.com/Gpcj1jljQe
— 齋藤あきこ (@akiko_saito) November 20, 2019
#gotandaunity pic.twitter.com/AZ85sTjH3u
— のたぐす@Unityプログラマ (@notargs) November 20, 2019
告知タイム
Unity お・と・なのLT大会 2019
ProDevelopers GameJam #2
ゲーム業界に所属している"プロ"が集まって1日で行うGameJamです。
まだイベントページはできていませんが、12月14日にやる予定です。
マスコットアプリ文化祭
アプリのコンテストです。まだまだ期限までには間に合うのでぜひご参加ください。
mascot-apps-contest.azurewebsites.net
ツキササリーナ
1対1の「ガチ×カワイイ」対戦アクションゲームが2020年春、Steamで開幕!!#ツキササリーナ 💘
— 超OK💘デジゲー博F-10ab (@veryOKjp) November 11, 2019
くわしくは→ https://t.co/3boQs6CIzK pic.twitter.com/AUUfmn4h9N
バイナリーファイター
バイナリーファイター(プロトタイプ版) | NightScraper https://t.co/hZq44EE8Gq #booth_pm
— NightS/ナイトレイ🌃 (@NightS_73) November 18, 2019
デジゲー博で展示した『バイナリーファイター(プロトタイプ版)』をBOOTHで公開しました!無料でダウンロードできます!#デジゲー博 #gamedev #バイナリーファイター
タイムライン
本日のごたゆにではVRMアバターで自撮りが出来るカメラアプリについてお話しする予定です!🙌 #VSelfie #gotandaunity pic.twitter.com/SIXmwEKeAN
— 戸森ひかげ(Tomori Hikage) (@tomori_hikage) November 20, 2019
概ね設営完了!
— もんりぃ先生 (@monry) November 20, 2019
受付開けてますので、お待ちしております!#gotandaunity pic.twitter.com/AJBd4pzrTE
クリスマス仕様だ#gotandaunity pic.twitter.com/coaQlgoUBU
— あるど (@OrangeGKeeper) November 20, 2019
1日でゲームを作って残りはブラシュアップとか、むりやで……
— しぐさ@コミティア西G65a (@s_shigusa) November 20, 2019
これすごい……https://t.co/akzE1xdjUP#gotandaunity
NPCの作り方は参考になればhttps://t.co/0nlL2AQZEM
— とりすーぷ (@toRisouP) November 20, 2019
#gotandaunity
合わせて読みたい
— むろほし (@RyotaMurohoshi) November 20, 2019
「ダンジョンを作れる!TerrainTileを使ってみよう!」https://t.co/d8uXpONTK8
#gotandaunity
タイルマップ拡張のススメ
— Kazushige Mori(Cz_mirror) (@Cz_mirror) November 20, 2019
タイルマップの話
47枚必要で、頑張って用意しても設置を選択するのが大変。
用意するタイルが多くて面倒
重複部分が多いので、まとめれば削減できる #gotandaunity
ダンベルでQuestコントローラが隠れてしまうとまずい! → 外側につけよう!
— 殺意駆動開発 (@toru_inoue) November 20, 2019
#gotandaunity
> 「これがgotanda.unityです」
— mao (@TEST_H_) November 20, 2019
gotanda.unityはゴリラと筋肉と理解#gotandaunity
ごたゆに撤収しました!登壇してくださった皆さん、会場提供/お手伝いしていただいたzizaiの皆さん、参加者の皆さん、ありがとうございました😍 次回の開催は来年1月を予定しています📅 #gotandaunity pic.twitter.com/t01bQysGbb
— 青木とと(ˊᗜˋ*) (@lycoris102) November 20, 2019
他の方の感想ブログとか
間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。