Roppongi.unity #2 in メルカリ@六本木ヒルズに参加してきました
Roppongi.unity #2 in メルカリ@六本木ヒルズに参加してきました。今情報整理しながら、記事を編集中になります。
Roppongi.unity #2 in メルカリ@六本木ヒルズ - connpass
@songofsaya_さん
Unityで暖を取る!GLSLをCg/HLSLに書き換えて楽しもう!!~GPUを使い倒してレイマーチングを部屋の壁に飾るまで~
レイマーチング
shadertoyでiq神のかたつむり
GLSLからCg/HLSLに書き換える
歴史の話
VRの歴史はシェーダーにつながり、シェーダーはVRにつながる
NVIDIAがCgの開発を終えた
GLSLのシェーダーを探してみる
Shadertoyとかでいい感じのシェーダーが見つかる
シェーダーを探すコツ
なるべく小さいものを選ぶようにする。ただし時間はそれなりにかけた方がよい印象をうけました。
iq神のかたつむりを実際に移植した際のコードがscrapboxにアップされていました。
GLSLをUnityに持ってくる手順のアウトライン
Unity場での下準備
板ポリを準備
定数宣言
円周率
GLSLでは定数でPIを定義しているコードがよくみられる
型
vec3みたいなのはfloat3
時間
時間を扱うシェーダー処理系の組み込み変数を変更する。
コンストラクタの違い
変数の定義をしている箇所がシェーダーエラーになった場合、該当の行をみてもなかなか気づきづらい。
行列の掛け算
行列とベクトルの掛け算を書き換える
組み込み関数の変更
modは一式コピペして利用するとよい
座標の初期加工
ここで間違うと絵が出なくなる恐れがある
ループの変数名変更
エラーが出るときに変数を変えるなど調整は必要
@evil07さん
プランナーがUnityでスマホゲーム2本出してみた(仮)
プランナーがUnityでスマホゲーム2本出してみた - Google スライド
https://docs.google.com/presentation/d/1oXF80vU1z2TMBTbrGzY1ahXAhkifW3xzCf-v8N0HzhU/edit
マシーナリーとも子さん徳集め
和尚本を元にゲームをカスタマイズして、タップゲームを作った事例で、マルチタップ対策などの工夫をされている。
シンプルなゲームでも歯車の位置を調整したりタップ以外の操作を混ぜるなどをすることで面白くなるのではないか。
上記のゲームを改良し作った次のゲーム
コンセプトはどこまでも走れ友子
参考書だけではだめなので、Magicaboxを使った素材を組み込んだゲーム
モデルにリグを入れるのにmixamoを使った。
必要なのは簡単な設定だけで、あごや四肢に対して設定し、モーションを選ぶとデモが見られる。
Unityにドラッグしてアニメーションを設定すると完了。
マネタイズはどちらもAdmobを採用(Unity SDKが用意されているので簡単だった。知見も多い)
宣伝は大事で遊んでもらう前に見てもらう工夫は必要。
@hayu_devさん
ゲーム作りに助けを求めるのは間違っているだろうか
ねこわける(iOSで配信中)
ねこはしる(iOSで配信中)
今回紹介するものはデモ用なので実務向きではない。
キャラクターのアニメーション、会話などのイベントを実現できるものを想定
アニメはパラパラマンガの要領で実現
キャラクターの移動はキーボード入力。0か1で歩行と停止を表現
調べるコマンド キャラクターとNPCの距離が近いときにRaycastHit2Dによるメソッドを実行している。
会話イベント
AssetStoreのFungusを使用していて、専用画面でイベントを作れる。
会話はフローチャートを仕込んで、選択肢を出すなども可能。
@guru_takaさん
Unity歴2ヶ月のド素人が塗り絵ARを作るまでのお話
https://twitter.com/guru_taka/status/1109430308502302725
塗り絵ARの知見
精神崩壊しない健全な勉強法
AR上に塗り絵をする(qiitaにも投稿済み)
UnityでOpenCVスキャン、AR
ARKitも知見
YCbCr形式:輝度信号Yと、2つの色差信号を使って表現される色空間
Y+Cbcr→YUVMaterialを使う!
Shader(HLSL)の知見
Unlitで影だし
水面Shaser
Unityが用意している(マクロ写真)macro photoや関数で実現可能!
失敗談
Shaderの理論で挫折してしまい、塗り絵ARも挫折してしまい、いけてるモデリングができなかった。
→チュートリアル is 正義→操作に悩まない、ハードルが下がることで楽しさにつながる。
Youtube(キーワードにTutorialを入れるなどする)、猫本(Unityの教科書)などで学んだ。
ぼっちの鬼門
Unity道場→ぼっちの救世主→質問所などもあり、高い確率で回答してもらえる。
@kajitaj63b3さん
スクロール表現の為のUV to Positionのテクニック
スクロール表現のための Position Bake のコピー - Google スライド
HarukaKajita/PositionBaker
モデルの体に沿ってスクロールしなかった。→オブジェクト座標のY座標に依存しているので体に沿ってスクロールしない→腕を上げた時の座標を記録しておき、ジオメトリシェーダーでUV展開
テクスチャ化→ベイクしたテクスチャでスクロールできるようになった
→場合によっては問題がある座標をそのまま色にしている、座標が0〜1の範囲をはみ出すとクランプしてしまう。
解決策
float値一つをfixed値4つに分解するテクニックがある。→テクスチャ4枚必要になる
座標をベクトルの向きと長さに分けてベイク→テクスチャ2枚
Lengthテクスチャ
色=RGB(8bitx3チャンネル)
注意
Import Settingsで圧縮・ミップマップはきる
圧縮とかフィルタが絡むときはきる
Generative Programming 1 - Genera - BOOTH
@kannan_xiao4さん
GUILayoutをランタイムで使おう
GUILayout != EditorGUILayout
GUILayoutクラスはGUIの自動レイアウトを行うためにインターフェース
EditorGUILayout=EditorGUI このクラスはGUIクラスの機能と同じように動作する
使用方法
MonoBehaviorを継承したクラスを作成、void OnGUIで処理を実装し、GameObjectにアタッチする
実装時の注意
OnGUIはだいたいUpdateと同じように呼び出されるため、負荷のかかる処理は書かずにAwakeやStartを活用したり、条件式の中で実行する。
Buttonが押された分だけTrueになる。
活用できるところ
デバッグ画面、最大のメリットはuGUI GameObjectの配置が不要(ButtonやTextの配置不要)、置いたButtonにActionの紐付け不要、自動レイアウトされる
向かないこと
メインUI構築→uGUIに比べて表現が非力で個々がGameObjectではないのでAnimationできない。
煩雑な処理→GUIメインで書くことになるので処理が複雑になる。
GUILayoutを使えばGUIをスクリプトだけ出かけてデバッグ画面UIを作らなくていいので楽。
@lycoris102さん
分かった気になる!TimelineSignals
Signals→Unity2019から追加された新機能。Timeline上で任意の処理を実施する。
スローにするシグナルと元に戻すシグナルを追加する
Signalレシーバーが必要
制御用のスクリプト(SignalReceiverスクリプトにSlowなどのシグナルを指定する)
Timelineのスローにしたいところにシグナルを置く
TImeScaleの値のレパートリーが増えるたびにSignalを増やしたくない→値も合わせて通知できるようにしたMakerを使用できる。
もしMarkerが任意のTrack上にあるのであれば、Trackの対象として指定したGameObjectに。
@taptappunさん
Unity × Docker
Unity × Docker - Google スライド
Dockerfile
Unityをサーバーにアップロードして使うことはライセンス規約に違反するため十分に気をつける。
面倒な仕事をバックエンド側に仕事をやらせるイメージ
自動でテスト、自動ビルド、動画を自動で作ったり、アセットバンドルのビルドやアップロードを自動でやってほしい
→面倒なことをサーバーにさせる
Unityクラウドビルドだと細かい調整ができない→Dockerを使ってUnityを導入してみる
UnityでのCLI操作→公式ドキュメントあり
@TANY_FMPMDさんの展示関連のQiita記事
Unity で HDR (High Dynamic Range) と WCG (Wide Color Gamut) を考える (UnityHDROutputPlugin の解説) - Qiita
らずさんの勉強会レポに詳細な内容がまとまっていて非常に振り返りがしやすいです。