Raspberlyのブログ

Raspberlyのブログ

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

勉強会レポ : Unity道場 4月〜アーティストの為のPBR再入門〜

勉強会のレポート(メモ)です。
参加したのはこちら、「Unity道場 4月〜アーティストの為のPBR再入門〜」
会場はユニティ・テクノロジーズ・ジャパンさんです。

meetup.unity3d.jp

ハッシュタグ : #Unity道場

 

 

f:id:Raspberly:20190427003906j:plain

 

 

動画はこちら

www.youtube.com

 

 

 

 

 

 

 

 

今回講師は二人ともUTJ入りたての者です。

1. アーティストの為のPBR再入門

www.slideshare.net

おすすめしたいのはアーティストの方

背景やキャラなどのアセットをお作りの方。
いままでモバイルをやってきていてハイエンドもやりたい方。
そんな方にLRWPがおすすめ。

 

LWRPをおすすめする理由

・軽量である
・ハイエンドで使われているものをモバイルなどでも動くようブレイクダウンされているためモダンなテクニックを使える
・理解しやすい仕組みになっています
・2019.1でプレビューが外れた

そのためハイエンド開発の再入門に最適です

 

Photo Realistic CG

CGはサーフェイス、ライティング、カメラ・ポストプロセシングで作られます。
今回は、この中でもサーフェイスの部分についてお話します。

物理ベースのシェーダーなどについてどういう風に作っていくかについて話します。
物理ベースの利点は「定量的で非俗人的な設定ができる」、「挙動の整合性」があること。
しかし現在のゲーム開発では、定量的、非俗人的な設定は活かされていない。
シンプルに見た目がよくなるので、そこからお話します


スペキュラーのおさらい

鏡面反射のこと。光源からの色をそのまま返します。
光源、表面、視線の向きによって変化する。

大きな特徴として、見る側に形状の変化を認知させることができる。

物理ベースのマテリアルの場合、スペキュラーを殺さないことが大事。
せっかくきれいなテクスチャを使ってもスペキュラーがないとランバートに近くなってしまう。

物理ベースと物理ベースでないものを使うと、金属である部分とない部分といった違いを強調できます。

 

物理ベースの要素

フレネル反射
・金属特有の反射
・表面の円滑さで表現が変化する
これは現実世界でも起こりえる表現。


フレネル反射

アートの世界でも起こる反射です。
斜めになるほどスペキュラーの精度が増え、奥に行くほど反射が増える。

まとめ

動的に大きな輝度変化がおこる。
物理ベースマテリアルの基本的な挙動なので使うだけでOK。

 

 

金属特有の反射

金属光沢はほぼスペキュラー。
ほぼ全てスペキュラーで返されるのでフレネル反射はあまり起こらない。
特定の金属はスペキュラーに色がつく。

非金属とは異なるスペキュラーの見え方が起こります。

金属の値

Metallicについて、これは非金属との化合物であることや金属塗料を使っているような表現にできる。

中間値に明確な指標はない。

 


表面の円滑さ

スムースネス(Smoothness)について

スペキュラーは厳密はマスク。
スムースネスは表面の粗さを起こす、その粗さで光を拡散させるという動きを再現します。

スムースネスをどう設定するのか

これは本来的にはジオメトリ由来、ノーマルマップとは同じジャンルに入ります。

これも値に明確な指標がない。

 

Ambient Occlusion

しかしリアルな表現を重視するならディティールを重視し、あまり使わないほうがいい。
立体感はでるが現実感を損なう恐れがある。

入り組んだところに局所的に使うのがよい。


まとめ

設定ルールに関しては指標がほとんどない。
それでもなんとかできるのが物理ベースのいいところ。

 

 

 

 

AssetStoreのAssetをPBR(LWRP)に対応させる実例の紹介

詳しくは動画を見てください。
簡単なまとめだけメモ。

 

まずはIDマップの作製

カラーテクスチャを使い、テクスチャに質感を直接塗っていく。
4、5パターンくらいざっくりと。

Substance Painterへの読み込み

Unityで日頃使っているノーマルマップを使うと上下逆転することがある

マテリアルの割り当て

IDマップをもっているので、どこにどのマテリアルをもつかはすぐにわかる

マテリアルの反映

アルベド、スムースネスは0,1を使わない
・メタリックは0,1が基本 ただし1はそれほどよくない0.9とかのほうがいい
・金属は表面が腐食しやすい、なので少し下げたくらいがリアリティがでる
・スムースネス、メタリックはパラメータはリニアではなく曲線的に変化させます

キャラクターデザイン的なコツとして

・表面積が大きいところには中間的なもの
・小さいところにはスムースネス、メタリックが高いものを使うと全体的にまとまりがでやすい

Unityにインポート

アルベドは乗算されるので値を1にします。
ここまでで1時間弱くらいでできます
この後の作業としてディティールアップ・ウェザリングなどがあります。

 

お土産

Substance Painter2018LWRPの出力プリセットを作りました。
Substance PainterでUnity LWRP用の出力プリセットを作ってみた - Qiita

 

まとめ

・PBRマテリアルは使うだけで一定の効果があります
・設定もシンプル
・PBRマテリアルの設定は共通を抑えているのでHDRPでも活かせることができる。
・既存のアセットから始めるといいかも

 

 

 

 

 

 

 

 

 

 


#2. Unity Connected Gamesってなに?

www.slideshare.net

今回の話、ネットワークやそれにかかわる仕組みについて話します。


Unityではネットワークゲームを4つのカテゴリにわけています。
おおまかにいって、規模が大きくなるほど複雑になりリスクも上がっていきます。

ネットワークゲームに関して民主化をしていきたいが、どう提供していくか、そこで考えたのがConnected Gamesというサービスです。

 


2017年UNETを停止しました。
これはクライアントに依存した設計になっていました。

そこで専用のサーバを使ったこともできるようにしました。
オンラインゲームにおいてこれが今の主流になっています、なのでUnityもこれに変更するようにしました。

それにともなってロードマップも変化しました。

 

DOTSをベースにパフォーマンスの底上げを行いました。
FPS Sampleでデモを提供しています。

FPS Sample - マルチプレイヤーシューティングゲームプロジェクト | Unity

ほかにもフリート、サーバのデバッグプロファイリングの支援などを開発予定です。


multiplay

ゲームに特化したサーバーホスティングサービスです。
2017年にUnityの仲間入り。

 

マッチメイキング

対戦にしろ協力にしろ、だれと遊ぶかが大事。
腕の差、地域によるラグの差、プレイスタイルの好みなど、ユーザの求めるようなマッチするようにする。
ここが落ちるとサーバーやクライアントが動いていてもだめになるため、ここは絶対に落ちないようにしたい。


ただしまだ開発途中。
興味のあるかたはGitHubからどうぞ。
アロケーターとマッチのところに関しては今年中にリリースすることができると思います。

GitHub - Unity-Technologies/multiplayer: Unity multiplayer packages and samples


VIVOX

こちらもUnityに新しく仲間入りしたゲームに特化したチャットクラウドサービス。
クラウドベースなので初期投資なし。同時接続数5000ユーザまで無料。
マルチプラットフォーム


まとめ

Unityはリアルタイムオンラインゲーム開発のハードルをもっと下げることを目標としています。
もっと楽しく身近にできるように開発できるように取り組んでいます。
初期投資やリスクも少なく始めることができるので触っていただければと思います。

これらのサービスはUnityのサブスクリプションから外れています。従量課金です。

 

 

 

 

 



 

懇親会

f:id:Raspberly:20190427003821j:plain

f:id:Raspberly:20190427003841j:plain

今回は本業がアーティストの方、デザイナーの方が体感多かったです。

 

 

 

 

 タイムライン

 

 

 

 

 

 

 

 

過去のUnity道場まとめ

raspberly.hateblo.jp

 

raspberly.hateblo.jp

 

raspberly.hateblo.jp

 

 

 

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