2021年に使っていく道具

2021年01月06日

今使っている、もしくは関心のある開発ツールをなんとなく書き出してみました。使う道具はできるだけ少ないほうがいいと思うのですが、なかなか難しいです。

ゲームエンジン

Unity

お仕事でまだまだ使っていきそう。また、VR刺身タンポポを作るのに必要です。Unity 2020.2 はテクスチャインポートが速くなっていたり、IL2CPP がマルチコアを活用するようになっていたりしてとても快適で、早く全面移行したいです。Zenject、UniTask、UniRx を主に使用。

IDE はしぶとく Visual Studio 派だったんですが、Rider に移行しました。強力なコード矯正機能と、シェーダーサポートが強力になったこと、あと VR やってるのでここ5年くらい Windows で開発してるんですが、M1 が登場したことや Apple グラスで macOS で開発するようになる可能性を考えると移行しない理由はどこにもないなと。

インポート時間の節約のため Unity Accelerator は必需品。

バージョン管理は Git クライアントの Forkを使っています。有料ですが、Sourcetree の軽くて安定したバージョンみたいなソフトでとてもいいです。

Godot Engine

オープンソースのゲームエンジンで、「ゴドーエンジン」と読みます。Unity や Unreal Engine の対抗馬と目されていて、最近だとFacebook が VR サポートのために資金提供したりして熱いです。Twitter の TL でも使っている方々をちょこちょこ見かけるようになってきて、今年は Godot 元年になるかも(?)。

とりあえずドキュメントには一通り目を通しました。年内に Godot Engine を使って Oculus Quest で何か作ってみたいです。GDScript という Python に似た構文の独自のスクリプト言語が採用されているんですが、C#(Mono)も使えて、静的型だし速度も速いのでたぶん C# でいいんじゃないかなあと。HTML5 ビルドの出力サイズがやや膨らむ以外に特にデメリットはないように見えるんですが、実際に使ってみないと分からないので要検証。

Unreal Engine

UE5 が出たらとりあえず触ってみるつもり(Unreal Engine 自体は 4.1 の頃にお仕事で使ったことがある)。ブループリントや C++ ではなくスクリプトが書けるようになりそうな話を見たので(UE4?)気になります。

プログラミング言語

今後しばらく基本的には C#、TypeScript、Rust の3つしか使わないようにしようと思っています(これにより例えば Flutter と React Native なら後者、みたいな意思決定ができる)。Unity を使いつつリスクヘッジとして流行りの言語を押さえておく感じ……というだけでもないのですが。あっ、シェーダー言語は別腹で!

C#

Unity で使用。あと Godot Engine でももしかしたら。

TypeScript

生の JavaScript はつらいので、ウェブは基本的に全部 TypeScript で。年末年始に3000行ほどの他の AltJS のコードを移植したのでちょこっと慣れてきました。yarn、webpack、ESLint、Prettier を使用。

Rust

とりあえず「実践Rustプログラミング入門」と「The Rust Programming Language 日本語版」にざっと目を通してちまちまいじってます。

軽く触った限りでは、ゼロコスト抽象化最高! 所有権で GC なし最高! cargo のビルド回りやコーディング規約がきちんと決まってるの最高! トレイトを使った演算子オーバーロード最高! ととてもいい感じしかしないです(注:まだ沼にまったく足を踏み入れていない初心者の感想です)。

大きなランタイムがない言語なので WebAssembly にコンパイルしたときのサイズが最低数百バイトからととても小さく、TypeScript と Rust の組み合わせがちょうど BASIC とマシン語のような関係になって重宝されそうです(たとえが古すぎる)。もちろんサーバー用言語としてもとても気になります。

新しい言語を習得するには何か小さなプロジェクトを作って保守するのが一番いいと思うので、考えていることがあり、VR刺身タンポポが落ちついてから趣味で投入予定。

wgpu-rs とか見るとRust + WebAssembly + WebGPU のグラフィックスライブラリを TypeScript から使うみたいな未来の構成を予感するんですが、どうなんでしょう。

DCC ツール(3D 系)

Blender

本格的にデファクト・スタンダードの 3D ツールになっていく未来しか見えなくて、今いくらか使えるようになっておくと今後10年か、下手するともっと長い期間役に立ちそう。Unity に持っていくワークフローとしては MeshSync で編集中のモデルをプレビューしたり、UV 展開して Substance Painter でテクスチャを作ったりします。アニメーションやリギングはほとんど触ってないので要勉強。

目下とても興味があるのはモデリングやモディファイア等すべてをノードベースで行えるようにしようという Everything Nodes プロジェクトで、利用できるようになったら即刻試したいです。たぶん Houdini ライクなことができるようになるんじゃないかと思うんですが。

Substance

サブスクリプション契約中。Substance Painter でお手軽テクスチャペインティング。オープンソースの ArmorPaint も気になります。Substance Designer は沼っぽいので手を出さない。

VRoid Studio

アバター作りにお世話になっています。

DCC ツール(2D 系)

Adobe CC

契約してますが、自分の使用頻度とコストが見合っていない感じがします。Photoshop はトリミング+α程度にしか使わず、起動が遅くて作業が中断しがち。Illustrator はポスターや個人名刺等の印刷物の入稿に使ってたんですが、コロナ禍でオフラインの展示や勉強会がなくなって使わなくなってしまいました。あとは Premiere でたまに動画編集するくらいなので……。

Photoshop は Affinity Photo あたりに移行して、何か動画編集ソフトを探すのがよさそう。DaVinci Resolve あたりかな。

CLIP STUDIO PAINT

PC 版を遊ばせてるのと、iPad 版もほとんど課金してるだけになっちゃってるのでお絵描きしたいです。

DCC ツール(サウンド系)

Studio One

Cubase の倍くらいの軽快さで動いてとても良い DAW……だと思うのですが、去年は数えるほどしか起動していない……。もう音楽制作はやらないべきではという気がしなくもないんですが、せっかくなので年内に何か一曲くらい作りたいですね。

Soundly

効果音ライブラリーと、専用のクライアントソフトがセットになった月額課金のサービスです。無料でもローカルの音声ファイルを2500個まで管理できます。効果音を検索・プレビューして波形を範囲選択して、Unity にドラッグ&ドロップすればすぐ使えるお手軽さ。

Audacity

フリーソフト。効果音の編集用。

ウェブサービス

GitHub

お仕事でも使ってますが、考えていることがあって、プライベートでも全面的に使うようにしています。LFS を課金して使用。

GitHub Actions を CI に使用。VR刺身タンポポはビルド用の Windows マシンに セルフホストランナーをインストールして Quest 版、Rift 版、SteamVR 版の自動ビルドを走らせてます。

クライアントは Git for Windows と Fork、Visual Studio Code で Git Graph と GitHub Pull Requests and Issues 拡張を使っています。

Trello

自己流にアレンジしたカンバン方式でプライベートのタスク管理をしています。が、UI が今となってはちょっと古いのと、レスポンスが悪いことが結構あり……移行先としては Notion かなあ。

その他のツール

Visual Studio Code

もはや言わずもがな。TypeScript や Rust、HTML や Markdown を書くときに、また普通のテキストエディタとして。拡張についてはいろんなページで紹介されているので……PlantUML を入れているくらい。

Docker Desktop for Windows

Windows の Docker、昔はちょっとめんどくさかった記憶があるんですが、久しぶりにインストールしてみたらやけに簡単になってました。今年はサーバーサイドが絡むものを作っていきそうなので使っていきます。

Hugo

静的サイトジェネレーター。このブログを書くのに使ってます。Markdown とテンプレートからウェブサイトを生成します。GitHub に push すると GitHub Actions でビルドして AWS CLI で S3 にアップロードされるようにしています。

最近は(語感があまり好きじゃないのだけど)Jamstack というアーキテクチャのツールのひとつとして扱われてるっぽい。TypeScript + React の Next.js が気になるんですが、移行のコストを払えていない感じです。

開発マシン

Windows デスクトップ(Ryzen 9 5950X 機)

Unity 開発をしているとアセットのインポートや IL2CPP ビルドの待ち時間がボトルネックになるので、自分が入手できる最も速いマシンを使うのが進捗を生み出す重要な手段だと認識しています(真面目な話だよ)。

「今は時期が悪い」という自作 PCer の警句がありますが、今は逆に滅多にない最高の時期ではないでしょうか。というわけで Core i7-9700K から更新したのですが、とても満足しています。SSD も M.2 最速クラスに。

Geekbench スコアはシングルコア 1700、マルチコア 17000 くらい。

M1 MacBook Air

VR の仕事をしているためここ5年ほど開発機は Windows で、Mac は滅多に使ってなかったんですが、M1 は文字通りゲームチェンジャーだし、もし Apple グラスが出たら開発に使うことになるのでさっさと買って慣れておくべきと判断しました。

お布団の中でもデスクトップ級の性能を発揮して無音で冷たいままというのがすごく気持ち悪くて(誉め言葉)まだ落ちつかないです。Node.js とかいろいろ正式対応していないので本領発揮していないですが、徐々に使っていくようになりそう。

Geekbench スコアはシングルコア 1700、マルチコア 6500 くらい。

タイ米をはたいて Windows も Mac も更新してしまいました。早くVR刺身タンポポを出して元を取りたいです。

(書いた人: こりん

ブログトップへ