最近読んでよかったもの紹介 Unityチーム
こんにちは、Unityチームのizmです。みなさんUnityしてますか?
REALITYにはさまざまなキャリアを持つUnityエンジニアがいます。
なのでチームのみんなに「最近どんな本、講演、エントリ読んでます?」と話を振ってリンクをまとめて雑談する会を開いてみました。
このエントリはその雑談する会のまとめです。REALITYのUnityエンジニアはどういった事に関心を持っているかを示している、あるいはどういったバックボーンを持っているかが伝わると嬉しいです。
ソフトウェア設計編
いわゆる入門書とお仕事で作るアプリの間にあるハードルのひとつが設計という概念です。REALITYもコードベースの肥大化、関わる人数の増加に伴い社内でもこのトピックは度々話題になります。
ソフトウェアと言霊
命名によりサービスの方向性が決まるという話。局所的な変数名ではなくサービスのあちこちで参照される用語は統一して一覧があると望ましい(ユビキタス言語)訳ですが、そのときの命名に対する納得感をどう決めるかの話でもあり、楽しいです。
clusterさんは最近技術ブログも始めていて、他にも設計や開発フローなど、大規模なサービス開発特有の知見を公開されているので目が離せません。
Game Programming Patterns
通称キウイ本。GoFの本よりもゲームを例にしていてUnityの人にわかりやすいかもしれない。
オブザーバーパターンやコマンドパターンは実際にゲームを作っていると使う機会も多いので、C++で書かれているけど大体読めるはず。英語版はwebで無料でも読めるので「ここ読んで」も伝えやすいのが良いですね。 https://gameprogrammingpatterns.com/contents.html
UniRx/UniTask完全理解
今までUniRxやUniTaskを使った事がない人がバリバリ使われてるプロジェクトに配属されたら買っておくと安心です。
逆引き的に使う事が多いです。一方でプロダクションで使われるような応用までを全てこの本で埋められるわけではないので、わからないことはチームの人に聞いたりコードを読んでキャッチアップしよう、という状況です。
この本の著者のとりすーぷさんは最近以下の素晴らしいエントリも書いていて、これらも併せて読んでおくと局所的な知識だけでなく原理原則を学べるのですてき!
2022年現在におけるUniRxの使いみち https://qiita.com/toRisouP/items/af7d32846ab99f493d92
【Unity】Model-View-(Reactive)Presenterパターンとは何なのか https://qiita.com/toRisouP/items/5365936fc14c7e7eabf9
最適化編
昔よりもハードウェアが速くなってきていますが、それでも電池持ちに効いてくること、そしてREALITYのユーザは世界に広がっているためローエンドAndroidでも動くことが求められるためホットなトピックです。
Unity 2017最適化ガイド: Unityのあらゆるパフォーマンス問題を解決するための手引き
Unity5時代からある定番の洋書の和訳本です。2017と書いてますがDOTSやECSへの全面移行がされない限り、最新のUnityでも使えるトピックが満載です。
少なくともベースラインとしてこの本にある最適化は知っていると、プロダクションのUnityプロジェクトを進める上でパフォーマンスのハマりが相当減ります。
グラフィック編
プログラマブルなレンダリングパイプラインがスマートフォンで動く事が当たり前になって、基本のレンダリングはゲームエンジンが担ってくれるありがたい時代ですが、一方で先端表現では何が使われているか、REALITYに取り入れられるとすればどんな形か。などを検討するためにグラフィックは注目度が高いです。
ゲーム制作者になるための3Dグラフィックス技術 改訂3版
西川善司さんの解説は丁寧で分かりやすいのでおすすめ。たとえばあまりリアルタイムグラフィクスの知識がない人も、この本を読んでおくとCGWORLDを読んだときに分からない単語が減ります。いまどきのリアルタイムグラフィックでの頻出技術についてゲームエンジンを問わずに学べるので目次を見て分からないところがある人は買うと良いかも。3Dゲームファンのためのグラフィックス講座という絶版本が表紙にラブプラスがババンと載っていて経費で買いにくかった(?)ですが、この本はカッコいい表紙なので経費にしやすいですね?!
UnityグラフィックスAPI総点検!〜最近こんなの増えてました〜 - Unityステーション
Unityステーションはユニティ・テクノロジーズ・ジャパンが運営している配信チャンネルで 、公式の安心感や丁寧な解説が魅力です。
この回では安原さんとkzrさんがいっぱい喋ってくれます。盛り上がった結果スライドだけじゃなくて後半戦(45分くらい)からkzrさんが好き放題しゃべってる(?)様子がとても楽しいので動画視聴がおすすめです。ComputeShaderに渡すバッファはComputeBufferじゃなくてGraphicBufferが2021.2から使えて便利!
「IDOLY PRIDE」の3D美少女キャラクターを魅力的かつ効率的に制作する手法
URPを使ったモバイル実戦例として参考になる度合いがすごい。同チームの前作であるオルガルことオルタナティブガールズもスマートフォンのHMD(VR)対応をしてたりと野心的な開発チームです。
講演資料のダウンロードにはCEDILの登録が必要ですが個人でも登録できるのでおすすめ。
lilToon
最近のVRCで(個人的に)一番アツいキャラクター用NPRシェーダー。
ライト環境がまちまちなVRCという状況で、どんなワールドでも可愛く見えるという、非常に難しいチャレンジに成功しているというすごいシェーダーです。
ドキュメント(や設定のためのエディタ拡張)も充実しているのが凄いですし、シェーダーコードも読んでいて勉強になると話題でした。
VRCのUnity2020対応でシェーダーのSingle-Pass Stereo Instanced対応ドキュメントなど有益すぎるシェーダーメモもlilToonのlilxyzwさんが書かれていておせわになりました!
https://github.com/lilxyzw/Shader-MEMO
ProjectKaya
UnityKoreaのチームが2020年に作ったモバイル向けのリアルタイムキャラクターレンダリングデモ、Unityのモバイル(URP)でこれだけリッチで魅力的なキャラクターな絵が動く、という技術デモです。
できればWebinarの英語訳が見たい!と思うくらいによく出来ています。
余談ですが絵作りの方向性は https://n0vadp.hoyoverse.com/#/ を思い出しますね…
その他
特定のトピックによらず、こういうの面白かったよね、の雑談パートで出てきたものの紹介です。
ウマ娘 プリティーダービー 3DCGキャラクター事例
Cygamesのカンファレンスの再生リスト。特にシナリオを書くための内製ツールによる表記チェックの作りが丁寧だったのが印象に残っています。今のUnity製の大規模スマートフォン向けゲームを作るときに、ウマ娘が"ユーザにとって"基準になっている気はしており、このクオリティを要求されるのかと思うとかなりビビります。
スノウクラッシュ
https://www.amazon.co.jp/dp/415010672X/
最近話題のメタバースという用語が出た背景として仮想現実や仮想空間という呼び名が(ニューロマンサーをはじめとして)SF小説界でも陳腐化しつつあった為、別の用語を出したかったと言う話を聞いた記憶があります。復刻して大変めでたいです。
ニューロマンサー(1984)もスノウ・クラッシュ(1992)も、作中で日本が出てきますが、ものづくりの大国としてパワーを持っていた頃に想像された未来の日本描写が読めて、現在の状況と比べて差に驚きますね。(というわけで併せてニューロマンサーもおすすめ)
リバースエンジニアリングツールGhidra実践ガイド
日本語でこの本が出るのがすごい。リバースエンジニアリングツールの定番であるGhidraの解説書です。
この手の本が訳じゃなくて日本語のネイティブスピーカー陣による執筆がされ、本になっているのがすごい。途中から他ツールとの比較が多くあり、実質的に定番のツールや処理を網羅している親切な作り。
以前はWizards bible をきっかけにその道に入る人も多かった(?)ように思いますが、サイト閉鎖後でもこの本が出て安心しました。余談ですが一昔前と比べるとGithub上で、たとえばゲームのチートツールのソースコードが読めるのは良い時代です。
Unityプログラミングバイブル2nd Gen
通称鈍器本。目次を見て中身を一通り目を通しておくと、関連するトピックの実装の時にとても役立ちます。
基本的に中級以上向けの要素を扱っている(そして割と新しめのパッケージも出てくる)ので、お値段以上の価値があります。AnimationRiggingの項がアツいとVTuber業界で働いていたエンジニア陣で話題になりました。
この本と似たコンセプトではUNIBOOKも最新トピックを追ってる事が多いので、こちらもチェックしておくと良い気がします。たとえばiOS14の頃のUnityにおけるプライバシーポリシー対応の日本語解説はUNIBOOKが一番頼りになりました。
https://unity-bu.booth.pm/
ゲームエンジン・アーキテクチャ 第二版
このシリーズが和訳されて1万円以下で買えるのは最早慈善事業と言っても良いのでは、と絶賛です。
たとえばUnityからゲーム開発のキャリアをスタートした人が、Unityを客観視するためにCocosやUEを学んだり自作ゲームエンジンを作ったりすることはとても良い経験になります。
同様にこのゲームエンジンアーキテクチャを読むことはUnityの中身に詳しくなるという方向性だけでなく、Unityを客観視してゲームエンジンのメンタルモデルを自分の中で構築し、その中の特殊解としてUnityではこうなっているんだ、という理解が出来るようになります。
この紹介の仕方で本の真価を説明できているか不安ですが、是非Unityだけ使っている人はゲームエンジンを自作したり他のゲームエンジンを触る前にこの本を読んでみてください!
終わりに
並んでいる一覧を見ると、ジャンルが結構バラけていますね!
Unityチームみんながそれぞれ自分の詳しい分野の(最近の)オススメをまとめた結果がこれなので、「○○の分野ではこういう本が最近のおすすめだよ!」とか「自分のチームに聞いてみたらこうなったよ!」なども是非見てみたいです。
そしてREALITYには、オススメ記事や本を紹介するのが好きなエンジニアが多く在籍しています。興味のある方はこちらからカジュアル面談やエントリーをお願います。