Witcher3 WildHunt 拡張DLC「Blood and Wine」の美しい城下街がどうやって作られたのか
Witcher3 のGDC講演資料を見ることで、英語とゲーム開発とWitcher自体を楽しんで学ぶシリーズ。
今回の題材はこちら。
・講演動画
・講演資料 www.gdcvault.com
Building-Beauclair-Capital-City
この講演では、「Witcher3 WildHunt」の拡張パック「Blood and Wine」で追加されたトゥサン国と非常に美しいBeauclair城下町をいかにしてデザインして実装したかを話している。
(本当に美しい!) www.youtube.com
landmark が見えるように
まず、プロトタイプとして作った城下町のデザインでゲラルトを歩かせてみたところ、Landmarkである城が見えないことが多々あることが分かった。
そこで、城と城下町の全体位置を再配置しつつ、中間的なLandmarkとして高い建物も設置するようにした。
この再配置により、プレイヤーが今どのあたりを歩いているのかをLandmarkから判断しやすくなった。
情報量が多い領域の描画準備をする
main square(大広間)は、NPCや売り物が多く、イベントなども発生するため、描画負荷が高い空間領域になっている。
その情報量が多い広場がひらかれた場所にあると、遠景における描画負荷も高くなるためvisual blockerとして導線となる箇所に視界を狭くするトンネル的な道を用意し、近づかないと見えないように工夫をしている。
上の画像で、黄色の箇所が広場で、緑の箇所がvisual blockerとなる通路。
こうすることで、visual blocker となっている道を歩いている間に広場の描画準備もできてリッチな表現が実現しやすくなる。
また、真っ直ぐな道にするのではなく、あえて少し曲がる必要がある道にすることで、視界を段階的に広げて描画準備の時間を稼ぐ工夫もしている。
プロトタイプを通して分かる利便性のある道作り
実際にテストプレイをしながらショートカットとなる道や便利な道作りをした結果、最初の計画していた道とは大きく異なるデザインになった。
テストプレイを通して改良を続けていくことが大切なことが分かる。
街の世界観を意識したアセットのグループ分け
今回の城下町では、住む人々やゲームの世界観という背景を考慮して、大きく4つのグループに分けて塊を用意し、それぞれで建築物のアセットの雰囲気を変えるようにしている。
アセットの予算
もちろんゲームなので、アセットに回せるリソースのbudgetは決まっている。今回の背景アセットに回せるリソースは下記の通りだったとのこと。
QAチームに、この制限をチェックしてもらっているが、やはり高品質でバラエティ豊かな環境を作りたいので制限を超えてしまうアセットは多かった。
Rich Houseの工夫
上流階級が住んでそうな綺麗なこの家の外観の使用リソースがこんな感じ。
2階建ての内観の使用リソースがこんな感じ。
この建物だけで制限をかなりオーバーしてしまっている・・・。
解決するために何をしたか?
ここで登場してくるのが、前にWitcher GDC記事でも書いた「Streaming」や「LOD」による解決。
家の壁紙のために使うテクスチャーだけでも結構なメモリを消費しているため、
テクスチャを使わずに、shaderのパラメータ変更だけで様々なバリエーションの壁を表現できるようにした。
これは、アートチームだけでは悩んでいたところを、techチームに相談して協力することで実現できたとのこと。
まとめ
後半のテクニカルな解決部分は、今まで勉強してきた項目の組み合わせなので理解はできた(現場で実践はできてないけれど・・・)。
前半の城下町デザインのプロセスが、自分にとって新鮮でとても学びになった。
ただ単に最初に地図を作ってそれを実現しているのではなく、プロトタイプを作ってみて、
- LandMarkが常に見えるかどうか
- プレイヤーが移動するのに便利な導線になっているどうか
- 描画のためのsteaming時間を稼げているかどうか
などを考慮して、改良を重ねられているのだと知れて良かった。
そしてまたWitcher3プレイ欲も湧いてきてしまった。時間が足りない・・・。
「まんがでわかる!ケインズの経済学」を読んだ
パレオさんがおすすめしている本を読んでいくシリーズ
この中で紹介されている、「まんがでわかる!ケインズの経済学」を買って読んだ。
今までに「行動経済学」の本は何冊か読んだことあるけれど、そもそもの「経済学」の方は難しくて挫折していた。
でもこの「まんがでわかる!」シリーズだったら、とても分かりやすくて挫折せずに最後まで読めた。
ケインズとは
イギリスの経済学者、官僚、貴族。イングランド、ケンブリッジ出身。20世紀における最重要人物の一人であり、経済学者の代表的存在である。有効需要に基いてケインズサーカスを率いてマクロ経済学を確立させた。
ケインズはこのまんがの主人公。
第1次世界大戦や世界恐慌の中で古典派経済学が役に立たないことから、ケインズの経済学と呼ばれる「雇用・利子および貨幣の一般理論」を提唱して世界の経済や社会における政府の役割についての見方を変えた。
古典派経済学
ケインズが批判した古典派経済学は、アダム・スミス(この名前は流石に聞いたことある・・・)の「国富論」や、マルクス経済学などを指している。
このあたりの詳しい内容は全然理解してないけれど、漫画の中でケインズは古典派経済学のことを
「自由放任主義は経済が好調なときには当てはまるが、(世界恐慌が起きた)現在の課題には向き合えない思想だ。今の経済学には失業問題は存在しないし、嵐のような不況を脱する手立てなど考えたこともない」
と言って批判している。
古典派経済学が生まれた背景を読むと、産業革命による急激な時代の変化に求められた考え方であり、不景気における考慮が足りないのも仕方ないのかもしれない。
背景としては、当時の時代が急激に変化した時代だったということが指摘されるだろう。18世紀半ばから19世紀にかけて起こった産業革命が社会に広範な影響を与えはじめた時代の変化は、非常に急激なものであり、その時代にあった経済学が求められた。このような時代のさなかに始まったのがアダム・スミスに始まる古典派経済学である。
ケインズの経済学
よく聞く「マクロ経済学」は、このケインズの経済学をベースに作られているらしい。
この理論を打ち立てていく流れが漫画の中でメインに描かれていた。
古典派経済学では、セイの法則というものを中心として自由放任主義を展開している。
セイの法則は「供給はそれ自らの需要を生み出す」と要約される理論だが、ケインズは、セイの法則は所得のうち消費されなかった残りにあたる貯蓄の一部が投資されない可能性を指摘してセイの法則を批判した。
そこでケインズは、セイの法則とは逆に「需要が供給を生み出す」という有効需要の考え方を根幹にした。
経済全体の有効需要の大きさが、国民所得や雇用量など、一国の経済活動の水準を決定するという原理。非自発的失業の存在は有効需要の不足が原因となる。
漫画の中では、有効需要を増やすためには政府が「利子率」を下げて企業に積極的に投資をさせることが重要だと言っている。
有効需要は、市場メカニズムに任せた場合には不足することがある。しかし、ケインズは、投資の増加が所得の増加量を決定するという乗数理論に基づいて、減税・公共投資などの政策により投資を増大させるように仕向けることで、有効需要は回復することができるとした。生産者が価格を変えずに、供給量を総需要に応じて調整する。ケインズは総需要の増大させる方法として、財政政策、特に財政支出政策を重視した
まとめ
漫画のわかりやすさとライトさのおかげで、今まで全く興味が沸けなかった経済学の輪郭がぼんやり見えたので良かった。
ただ、経済学関連のwikipediaを読んでもまだ全然立ち向かえそうにないので、無理してレベルアップせずに入門系の教材をしばらく読んでいこうと思う。
んで、最近興味が非常に強くなっている「進化学」の延長線上にある進化経済学にたどり着くまでの知識固めとしていきたい。
4歳の子供と一緒にUnityのProBuilderでピタゴラスイッチみたいなものを作成
YoutubeのUnityチャンネルを適当に見ていて、自分もProBuilderでなんか試すかーと思ったので試してみた。
ProBuilderを使うには、まずPackage Managerからインストールしてくる
Mayaのようにある程度自由にMeshを編集できるが、Presetの形状にパラメータを適当に変更することでサクッと作ることもできる。
ここで作業中に4歳の子供も乱入してきたので、一緒にピタゴラスイッチみたいなものを作ることにした。
何個か雑に形状を作って、こんな感じでオブジェクトを配置。
上からボールが転がってくるようにして、ボールと緑色のゴールオブジェクトが触れると上に吹き飛ぶようにして完成。
まあかなり簡単な作りだけど子供はとても喜んでいて、「もっと作りたい〜」と言っていたので、たまにはこういう制作もいいなと思った。
エンジニアチーム内で360度評価をやってみたら、お互いの改善フィードバックを出せて良かった
今のチームではJoinタイミング的に自分が最初のエンジニアだったので、成り行きでエンジニアチームのリーダーをやっている。
半期の評価では、自分以外のエンジニア5人に対するポジティブなフィードバックと、今後より活躍できるするための改善フィードバックを話したが、これだと自分が周りにフィードバックを渡すだけで自分に対するフィードバックが特に無いので損をしている感覚があった。
というわけで、まずはエンジニアチーム内だけで360度評価をやって、各メンバーに対するポジティブな面と改善するためのフィードバックをそれぞれ話し合う場を設けてみた。
どんなことを指摘されるのかソワソワしたけれど、いざやってみたらみんな嫌な気持ちになることはなく、それぞれ「やってみて良かった」という感想が出ていた。
自分に対するポジティブなフィードバックは以下のようなものがあった。
- 新しいコトをどんどんチームに取り入れてくれている
- 人生の時間配分がすごく効率的な気がする
- 世の中のエンジニアリングのトレンドを常にキャッチアップしている
- 勉強熱心で本を沢山読んでいて知識量が多く、チームに反映するのも積極的
- やるべきこととやらなくても良いことをしっかり区別している
- など
ざっと傾向を見てみると、勉強マニアで効率厨な点が強みとして認めてくれているようなので、今後もこの強みはどんどん強化していきたいと思った。
そして、以下のような改善フィードバックをもらった。
- 業務的に必要な時だけしか他チームの人とかと絡んだりしているイメージがない気がする
- 時々、雑な返事な時がある。(お互いよく知っている関係だからなのかも)
- 基本超優しいが、趣味系の事になると、凄く冷たい時がある
- 仕入れた情報にハマりすぎる事もあると思う
前にBIG5の診断結果にも出たように、内向的な面に関する改善フィードバックが中心的だった。
こんなやつがよくリーダー的ポジションにいるなと思うが、そこはやはり周りから見て改善して欲しいというフィードバックをもらったので、良くしていかないとなぁと思う。
また、自分以外のメンバーに対する改善フィードバックとして以下のようなものも挙がっていた(それぞれ違う人への改善フィードバック含む)。
- 色々溜め込んでいっぱいいっぱいになっているときがある気がする。もっと聞いてくれたり、周りに頼ってもいい気がする。
- プログラム知識を付けると良いと思う。これまでの貯金と能力で、なんとなくやれてしまっている部分の深堀りをすると超強くなるかと思います
- 人が良すぎる事で、色々請け負ってしまうのかも
- モチベーションや体調のムラ等による業務遂行の安定性をより改善できれば、今後更に活躍できると思います
- 話の時間がオーバーしていた事が何件かあった
- などなど
こういうことを率直に伝えあって、学習しあえるチームになれれば強くなれると思うので、今後もこの雰囲気でやっていきたいなと思った。
Netflixの「天才の頭の中:ビル・ゲイツを解読する」エピソード2を観た
エピソード2も面白かった(全3エピソード) kidooom.hatenadiary.jp
ビル・ゲイツが読んでる本
ビル・ゲイツは Think week というのを実践している。
毎年ビル・ゲイツは1週間の「考える週」を実行しています。この間、社員や友人、さらには家族であっても、彼と連絡を取ることは禁止されています。Microsoft社で生まれた最も重要なイノベーションは、この期間中に生まれたアイデアをベースにしています。
年に2回ほどオフィスを出て、通常のルーチンを脱出し、「考える週」に突入します。全てから遮断された状態を作り、高いところから全てを見下ろしてみます。これによって、気持ちをリセットし、自分の目標や夢について効果的に考え直すことができるのです。
この Think week 中に読書しているシーンが映っているんだけど、読んでいる本がどこかで見たことあるなぁと思ったら、最近ハマっている進化心理学の書評をやってるこちらのサイトで見た本だった。
まだ日本語訳は出てないようなので、上記サイトの書評を全部読もうと思う。
他には、脳に関する本やエネルギー関連の本を読んでいるようだった。
ポリオ撲滅への運動
ビル・ゲイツは、撲滅に成功した天然痘のように、ポリオの撲滅に対しても力を入れている。
財団の協力もあってかなりポリオ感染地域は減ったが、番組ではナイジェリアで問題が残っていると紹介されていた。
ウォーレン・バフェットとの交流
1991年にビル・ゲイツの母親が引き合わせた。
ビル・ゲイツは最初嫌がっていたそうだが、合ってみたら何時間も話すほど意気投合したとのこと。
ウォーレン・バフェットはビル・ゲイツの財団に310億ドルもの資金の提供を約束していて、非常に強力なタッグだと思う。
二人がフランクに食事をするシーンでは、バフェットがハンバーガーにひたすら食塩をかけていたのが印象的。
ポール・アレン
ビル・ゲイツの中学・高校から兄貴分のポール。
二人でマイクロソフトを創設し、社長がビル・ゲイツで副社長がポールだった。
ビル・ゲイツは仕事に没頭して働きすぎで、社員の車のナンバーも全部覚えていたので誰が何時に来て何時に帰ったかも把握するほど。
辛辣なコメントもする嫌な奴だった。
対称的にポールは遊び人で、大企業の経営に興味がなく、連日の徹夜作業に嫌気が指していた。
そんなポールに、ビル・ゲイツはもっと働けと怒っていたとのこと。
しかし、ポールは体調を崩し、リンパ腫が見つかってマイクロソフトを退職した。
時間が立ち、最終的には仲直りしたが、2018年にポールのガンが再発し、亡くなった。
エピソード1では母の死や結婚など家族関係によるビル・ゲイツの頭の中を解読するシーンがあったが、エピソード2ではポールやウォーレン・バフェットなどの友人関係からビル・ゲイツの考え方を解読する感じでもあった。
Unite Tokyo 2019 DAY2 参加レポート
Unite Tokyo 2019 二日目も参加したので、DAY1に引き続きレポート。
参加したセッションは下記の通り。
- 10:00 - Stadia 開発環境について
- 11:00 - SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~ | Unity Learning Materials
- 12:00 - 映像制作はUnityでさらなる高みへ メイキング オブ next “Gift ” | Unity Learning Materials
- 14:30 - バンダイナムコスタジオ流Unityの使い方 | Unity Learning Materials
- 15:30 - Unityとプロシージャルで作るオープンワールド背景 | Unity Learning Materials
- 16:30 - 出版社とゲーム会社はなぜすれ違う?ドラゴンボールのゲーム化で酷い目にあった…もとい勉強させて頂いた話 | Unity Learning Materials
- 17:30 - Unity上でセルルックCGアニメ映画「HELLO WORLD」のシーン再現にチャレンジ!
- 18:30 - Unity開発ロードマップ最新情報 | Unity Learning Materials
8セッションも参加したのか・・・と書いてみて気づいた。
さすがに量が多いので、簡単にメモっていく。
Stadia 開発環境について
(講演資料の公開は無いっぽいので、覚えてる範囲で)
講演者は Rebuild.fm でおなじみの @hak さん
HW仕様
- CPU: Custom x86 Processor, 2.7GHz, Hyperthreaded AVX2
- GPU: Custom AMD GPU, 10.7 terraflops, 56 compute units
- RAM: 16GB
- ストレージ: SSD
スペックは結構強いよというメッセージ。 参考として、
これらを超えている。
ただ、クラウド上なので、1つのゲームが1つのInstanceを専有するというわけではない。
そして逆に、1つのゲームが複数Instanceの資源も使えるということでもあるので、強そう。
STADIAならではの拡張機能
Crowd Play
YouTubeでライブ配信中のゲームに参加できる機能のこと。
あこがれのYouTuberと一緒にゲームをプレイしたり、配信中のゲームに飛び入り参加できるということで、Youtubeとの連携が強まって便利そう。
State Share
URLにパラメータを追加して、そのパラメータに応じたゲーム状態を発生させられる。
このパラメータを使えば、例えばゲームのマップの状態・プレイヤー位置・所持アイテムなども含めて状態を保持してシェアすることができる。
これも他のゲームにはできない芸当なので、使いようによっては超強力になるかも・・・。
Stream Connect
STADIA上で直接データをやり取りして表示することで、マリオカートの画面分割プレイ的なのがSTADIAゲームではできるようになる。
どの機能もSTADIA環境ならではの機能になりそうなので、新しい遊び方が広がりそうで期待。
開発環境
開発環境は3種類あり、それぞれ松竹梅プランとして紹介していた。
- 松:STADIA instance
- 画像の一番左の範囲で、実際のSTADIA instance環境で動かせる。なのでスマホゲームでいうところの実機確認に相当する
- 竹: 仮想STADIA環境
- 画像の右上の範囲で、自社サーバ環境やGCP上などに構築してプレイできるようにする環境(だと思う)。
- 梅: ローカル環境
- 画像の右下の範囲で、ローカル環境に相当する。自分のPC上で動くので、ファイルをアップロードする必要がなく、サクッと動かせるメイン開発環境になりそう。
Unity対応
もうそろそろサポートすると言っていた。
Unity公式ページにも書かれている通り、IL2CPP, Linux, Vulkan 対応してビルドする必要がある。
開発支援ツール類
色々紹介されていたが、STADIAはChrome上でも動くので、Chrome Extensionで色々デバッグできるのが便利そうな印象だった。
あと、現状だとWindowsのVisual StudioでしかSTADIA plugin を提供していないそうなので、Mac勢はまだ触れない。
ゲームのローカライズはどうなる?
講演後の全体質問で聞かれてた点。
ユーザの言語設定に依存してゲームの言語が選ばれるので、例えば英語圏のプレイヤーと日本語圏のプレイヤーが同時にマルチプレイしてもそれぞれの言語で表示されるようになる(もちろん、ゲーム側で各言語に対応しておく必要あるけど)。
個別質問した
(質問): unityでビルドしたアプリをそのままstadiaで動かしたいとして、stadia対応ならではのyak shaving 的な労力、対応期間ってどれくらいありそう?
(回答): 理想的には、stadia上でそのままアプリ動く。stadiaならではの拡張機能使いたいんだったら対応必要だけど、その他は、(理想的には)特に無いよ
まあ、上に書いた通りに Linux, IL2CPP. vulkan対応してビルドする必要はあるし、"理想的には"なので、予想外のことは色々発生してある程度の工数はかかると思うけれど、単純にSTADIA対応をするだけだったらその他に隠された対応項目は今の所無さそう。
(あと、いつもPodcastで聴いてた@hakさんとお話できたので、Unite行って良かったわーと個人的に感動)
SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
全然知らなかった箇所なので、勉強になり助かった。
基調講演でも、コロプラの新作ゲームで独自の表現を実現するためにSRPでカスタマイズしたと言っていたので、今後必要になるケースがあるかもしれない。
セッション最後の「要望」で書かれている通り、まだノウハウが少なくて地雷踏む人も多そうなので、みんなで地雷を潰していくのも大事だなと思った。
映像制作はUnityでさらなる高みへ メイキング オブ next “Gift ”
講演と同時に、新作の短編映像の"THE PEAK"が公開された。 www.youtube.com
とにかく水の表現がすごい!
そして、その水のポリゴンを作る工程がテクニカル&アーティスト領域のエキスパートならではの話だったので、興奮したし尊敬した。
スマホゲームのクオリティもどんどん上がってきていて、こういった表現が求められる日も近い。
出版社とゲーム会社はなぜすれ違う?ドラゴンボールのゲーム化で酷い目にあった…もとい勉強させて頂いた話
Unity関係ないセッションだったけど、とても面白かった。
下記サイトに詳しく書いてるので、こちら参照。 www.gamecast-blog.com
Unity開発ロードマップ最新情報
この講演もとてもおもしろかったので、是非とも動画で確認して欲しいセッション。
個人的に印象に残ったスライドを5枚だけ載せておく。
より便利になりそうな機能と、より高度な知識が必要になりそうな機能がたくさん追加されそうで、未来にワクワクするのと同時に、どんだけ仕込んでるだ・・・と途方も無い気持ちにもなった。
ただ勉強マニアな自分としては、どんどん勉強しないといけない対象が増えるのはある意味嬉しいなと思った。 (勉強できない人はついてこれなくなるから淘汰にもなるし)
とりあえず DOTSについては、「難しくてついていけないからやらない」を選んじゃうと老害エンジニアになっちゃうのでちゃんとついていこうと思う。
まとめと所感
やはりこういうイベントは行く前と行った後で全然モチベーションが変わるし、行く価値は非常に高いと思う。
ただ悩みとしては、イベントに参加していない人にこの感情を伝えることはほぼ無理であり、イベントに参加しない周りの人たちからすると参加費と工数を消費するから手放しで行かせたくないという気持ちが少なからず発生すると思う。
こうやってブログにアウトプットすることで知識を強化し、学んだことを仕事の中で成果として出せるようにして、「Uniteに行けたおかげっす」と言えるようにしていきたいなぁと思った。
UniteTokyo2019 DAY1 参加レポート
Unite Tokyo 2019 参加してきたので、まずはDAY1で自分が参加してきた講演のレポートを書いとく。
<七つの大罪>をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介
「えっ!?スマホでこんなハイクオリティなゲーム作っちゃう!?」
と、日本のスマホゲーム開発者を戦慄させる高品質さでリリース後トップセールス上位をキープしている「グラクロ」のゲーム開発に関する講演。
(講演スライドはまだ上がってないので、上がり次第リンクを追加する)
本セッションでは『七つの大罪 光と闇の交戦 : グラクロ』の開発において、〈七つの大罪〉の感性を徹底的に再現するための工夫や方法、そして、実際に使用したレンダリング技術やグラフィックテクニックをご紹介致します。 また、開発効率を向上させるための最適化方法についてもご説明致します。
グラクロは「七つの大罪」という原作があるため、その原作の良さを最大限発揮できるための演出力を作ることに力を入れている。
キャラクター表現
キャラクターは最初、ノーマルマップなどを駆使したフォトリアルな表現で作っていたが、これじゃない感が出たので作り直したとのこと。
原作アニメの表現を参考にしてToon表現のシェーダーが作られており、伝統的なLightingだと顔などに不自然な陰影ができるので、原作アニメに寄せるためにMatCap Shaderなども作成している。
MatCap参考: 【Unity】【シェーダ】MatCap(スフィアマッピング)を実装する - LIGHT11
また、DCCツールとUnity間のイテレーション改善のため、3dsMax上で同じ表現ができるShaderを作成してモデル編集時に確認できるようにしている(MeshSyncは使われてなかった感じ)。
Effect
Effectにも光源効果を持たせたいので、MatCapを追加している。
上はゲーム画面だけど、エフェクトから光出てるっぽい。
Effectのために、かなり多くのshaderが作成されていた(講演スライドが上がったら見れるはず)
LUTを用いたColor Grading
Lookup Texture(LUT)を用いて、同じ背景モデルでも昼や夜などで様々な雰囲気を出させるようにしている。
テクスチャを用意するだけで背景バリエーションを増やせるので、便利だなと思った。
(画像は、Unity Manual に載ってあったやつ)
建物の中はFake Interior
建物の中の家具をTextureで用意しておき、あたかも3Dオブジェクトがあるように見せかけるテクニック。
こういうテクニックを採用することで、クオリティとパフォーマンスのバランスを取っているのがゲームのクオリティを支えている。
大量のオブジェクトは、Impostor(2Dビルボードへ)
Impostor は今まで知らなかったが、様々な角度で3Dモデルをキャプチャしてアトラス化しておき、疑似3Dとして扱う手法のこと。
遠景のオブジェクトや大量の民衆などは Impostor を用いて描画していると説明していた。 (これも講演スライド上がったらそっち見たほうが良さそう)
生産性
講演の後半はスピーカーが代わり、「生産性」を上げるためにどんなツールや仕組みを用意したかを紹介していた。
技術的な内容で難しめなので、サラッと箇条書きでメモ。詳しくは講演スライド参考で・・・。
- Facial Animation
- Blend Shape使用。基本13個ぐらいのモーションで、各キャラ共通化してて効率よくしてる。
- LookAt System
- キャラクターが後ろを向く時などに、自然に頭・首・胸が回転するようにシステム化している。スライドに分かりやすい画像貼ってあった。
- PostEffect
- もちろん様々なPostEffect必要なので、UberShader作られている。
- Behaviour Tree
- Machine Learning
- バランス調整のために、AIも活用している。
所感
グラクロはたまたま売れたようなタイトルではなく、しっかりとした技術基盤や演出方針を築いた上で作られたハイクオリティなゲームなんだと改めて理解した。 今後はこのクオリティがデフォルトラインになってくると思うので、「凄いなぁ」とぼーっと見てたら取り残されてしまうという危機感を抱いた・・・。
『The Heretic』で学ぶ映像制作テクニック
(Unity画面上でのデモがメインだったので、動画上がったらそっち観てもらったほうが良さげ)
Topicは下記の通りで、HDRPやVFXなどハイエンド向けの映像制作に関する講演になっている。
デモ動画の「The Heretic」の主人公は実在の人間がモデルになっていて、下図のようなフローでUnity上に持ってきている。
キャラクターの皮膚には、SSS(Subsurface Scattering)の表現が用いられており、下の画像だと耳のところの透明感のある表現が凄いと感じた。
The Heretic でワープをするようなTransitionのシーンでは、Meshを年輪のように輪切りにしてゴニョゴニョしたという話をしていたが、ハイレベル過ぎて話についていけなかった・・・。
所感
今はスマホゲーム作ってるのでHDRPは関係ないと思ってたけど、講演を見たら触りたくなった。
仕事関係なく、個人でなんか綺麗なデモ動画作りたい時なんかHDRPが便利そうなので年末までに勉強がてらなんか作ってみようかと思う。
Unity 映像制作パイプライン完全マスター
この講演におけるパイプライン
Unity を中心として、
- Python経由でShotgunと連携
- OpenTimelineIOを使ってVideo Editing / Storyboard 連携
- FBX/USD/AlembicフォーマットでDCCsと連携
を、本公演における映像制作の効率的なパイプラインとして紹介していた。
Unity - Shotgun連携
Unity - Shotgun間の連携の仕組みがUnity公式で用意されるとのこと。
単純な連携はShotgun for Unity でやって、処理をカスタマイズしたい場合や既存ツールを使いまわしたい場合はPython for Unityを使うことになりそう。
Shotgunのlauncher からUnity起動後に特定の処理を挟むとかもできる感じ。
Shotgunのnoteに記載した特定のassetの特定frameに直接Unityで開くとかもできる。
2019.3 でpublic release されて、順次拡張していくとのこと。
ただ、自分もTAやってた時にShotgunを少し検証させてもらったけれど、Shotgun自体の管理も結構大変そうなので、そこもセットに考える必要あり。 Shotgun連携できるようになったからとりあえずShotgun導入するぞーって動いちゃうと、Shotgunの構成設計や管理に1人つきっきりになるかもしれないので注意。
んで、Shotgunで扱うアセットのバージョン管理方法については、ShotgunとPerforceが蜜月の関係なので、Perforceの導入も更にセットで考えたほうがいいかも・・・。 https://support.shotgunsoftware.com/hc/ja/articles/219033058-Perforce-%E4%B8%80%E8%88%AC%E6%A9%9F%E8%83%BD
OpenTimelineIOを使ったパイプライン
ここは未経験の領域なのであまり良く分かってないけど、ラフ絵とUnity間の連携をしやすくするイメージ?
(詳しくは公開されたスライドを参照で)
USD for Unity
これは結構でかい話になりそう。
USD(Universal Scene Description) はピクサーの開発した3Dシーングラフ形式及びその形式を扱うプログラム群のことで、詳しくはwiki参照。 Universal Scene Description - Wikipedia
UnityのUSD対応について blogs.unity3d.com
USDファイルの中に、カメラやTimeline、マテリアルやシェーディングの情報も含めることができるため、DCCツール上で生成したUSDがUnityでも扱えるようになると、映像制作に必要なデータが一括で扱えるようになる。
USDはLayer Stack で複数重ねることもできるとのこと。
ただ、USD対応のRoadmapも凄いことになっており、まだまだ大変な道のりであることは分かった・・・。
まとめと所感
Unityでも映像制作ができるようにパイプライン機能を強化していく流れが感じられる。 (映画「Hello World」 のカット再現などにも取り組んでいるし)
このへんは、エンジニアだけでなくクリエイターの人にも知ってもらい、すり合わせをしていく必要がある分野だと思った。 グラクロのようなハイクオリティのゲームを作るには、パイプライン改善は必須だろうし、特にUSD対応は大きな変化になりそうなので今後もアンテナ張っておいたほうがよさげ。
DOTSの講演2つ
DOTSは Data Oriented Technology Stack の略で、オブジェクト指向ではなくデータ指向でプログラム組んでいったほうが今後のUnity的に効率良いよねって感じ。
正直今までDOTS関連の情報は仕入れても頭から抜けていったので、今回の講演を聞いてもすぐに忘れてしまいそう・・・。
ただ、安原さんの「たのしいDOTS〜初級から上級まで〜」の講演では、なんでDOTSがいいの?という初級から説明してくれたので分かりやすかった。
なんでDOTSがいいの?
現在のUnityでは普通にC#プログラムを書くと、Managed Memory として各オブジェクトが勝手に管理されていて、安全で便利な構成にはなっている。
んで、この汎用的なManaged Memoryは便利なもののゲーム特化の仕組みではない。
なので、ゲームに適したUnmanaged Memory にしてより効率よく扱おうってのがDOTSの設計の1つになっている。
このUnmanaged Memory に最適化していく流れは、struct への理解も必須になるので、河合さんのstructに関する濃厚な講演スライドもよく理解しておきたい。
Chunkとアーキタイプ
図解で、Chunkの必要性とアーキタイプの概念が分かりやすく理解できた。
ChunkとSystem
んでChunkを用意したら、どのChunkを入力として扱って何かしらの処理を行うかを、Systemとして用意する。
上の「データの流れ」の図が、DOTSによるプログラミングを図示化したフローなので、今後はこのフローを想像しながらプログラム書く必要がありそう。
Unity Physics
DOTSの流れについていった方がいいかもしれない材料の1つとして、Unity Physicsが登場してきた。
特徴の1つである「決定的(deterministic)」は確かに強力で、入力を与えたら出力は必ず同じになるので、自動テストへの道が更に進むことにもなる。
Unity Physicsに対応したほうがUnityアプリのパフォーマンスが上がるようので、今後の選択肢として考慮に入れたほうが良さそう。
ただ、まだまだ突き放してくるようなので、様子見しつつになりそうだけど・・・。
所感
「今はまだ準備段階なのでDOTS使えなくてもok」と講演者も言ってるぐらいなので今すぐ実戦投入しないほうが安全だけど、準備ができたらいつでもいけるようにスタンバっておくのは戦略として有りだと思う。
今までのノウハウそのままで作るのは難しくなるものの、このDOTS環境に適応してきた新世代のゲームたちの方がUnityとの相性的に良いパフォーマンスを出すんだったら、旧世代のゲームたちが駆逐される未来ルートも一応ありうる。
これは酔っ払いの寝言だと思って聞いてほしいんだけど、
— 伊藤周@おなかソフト (@warapuri) September 25, 2019
Unityの進めるDOTSって、全世界的な社会実験だなあとw
頭がいいプログラマの考える「これの方が絶対いい」というパラダイムを
普通のプログラマが実装できるかどうか、という。
スゴイよなあ。ある意味人類の底上げだ。
Unityしかできないw
こういう革命的なビッグウェーブは好きなので、乗っかっていくためにもDOTS自分で勉強しておかねば・・・。
基調講演
とても良かった。
下のサイトでかなり詳しくレポートされているので、ここ見てもらったほうがいいと思う。
UniteTokyo2019とほぼ同じ時期に行われたUniteCopenhagen2019のkeynoteもYoutubeに上がっていたので参考に観てみたら、意外と内容を変えていて驚いた。
Uniteコペンハーゲンのkeynote動画観た。日本のkeynoteの内容とほとんど一緒なのかと予想してたけど、60%ぐらい同じで残り40%くらいは日本向けに内容変えてた感じあるので、両方見てて飽きなかった。個人的にはDOTSの紹介してたlucas meijer氏がテンション高くて面白かった。https://t.co/U9HkDsbmm5
— kidooom (@kidooom) September 27, 2019
見比べた感じだと、日本の方が「HELLO WORLD」のカット再現の紹介を入れてたように、アニメーション制作へのUnity適当を推してる?
何度も何度も申し上げてますが、3DCGアニメが手描きの作画アニメに近づくのは、目的ではなく、単なる手段です。なぜかそれが目的になっている人達がいますが、最終的に目指すべきは両者の良い部分を活用し、新しい映像表現を作ることだと思っています。
— alwei (@aizen76) September 26, 2019
個人的には、Unityがゲーム制作だけに閉じずに「Shape the World」というコンセプトの元に色々できる幅を広げていってくれるのは嬉しい。
1日目の所感
料理
Twitter上でも流れてたように、Unity社の料理提供サービス精神が凄くてUnite中は空腹になることが無かった(自分はバナナとコーヒーをめっちゃ頂きました)。
#UniteTokyo の思い出
— ichijo (@Takaaki_Ichijo) September 27, 2019
・バナナ
・ドーナツ
・コロッケ
・タピオカ
・ホットドッグ
・ゼリー
・カレー
・おにぎり
・だし巻き棒
・ハートランド
・アイス
#UniteTokyo 最新実況です https://t.co/wS0AxDdWdD pic.twitter.com/OagAIYRCTL
— MIRO (@MobileHackerz) September 25, 2019
英語多読の成果ちょっと出てきた疑惑
DAY1で参加した下記の3つは、英語での講演だったので同時通訳レシーバーが配られた。
- "『The Heretic』で学ぶ映像制作テクニック"
- "Unity 映像制作パイプライン完全マスター"
- "基調講演"の一部
最初ちょっと聴いた感じ、分かりやすい英語で話してくれてるのと、Unityの話だから英単語聞くだけでも何となく意味わかった感覚があったので、英語多読の一環であえて通訳無しで聴いたけど割と理解できた。
英語多読の効果が少しは出てきたんじゃないかぁと思って嬉しかった。
モチベ湧いた
最近はマネジメント的なタスク割合も増えてるんだけど、やっぱりUnityとか触っていきたいなと思った。
そのためにも、自分で手を動かして個人制作とかもどんどんやっていかないとなぁというモチベーションがアップしたので、Unite参加して本当に良かった。