弊社で運営しているVTuber「沖縄生まれのVTuber『はるか』」に関して、声優さんを沖縄等で育成する形で出口企業と連携する「ゆいはるかプロジェクト」始めました。昨日(2019/2/27)琉球新報さんに取り上げていただきました!! pic.twitter.com/vt3ZuV4KSA
— 武田政樹@ご当地VTuber運営したり (@tamanyo) February 27, 2019
これだけの事を成し遂げるチーム、ポッと出ではないとは思ってましたが…
ギャラクシアン3とか、まあリッジレーサーなんかもそうなんだけど、実際にやってる3Dの計算と描画について、やり方を簡単に説明しとこうかな。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
基本的にCPUで計算するのは3Dオブジェクトの位置と角度だけ。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
オブジェクトの番号と位置ベクトル、3軸の回転角度を全オブジェクトに対して計算してDSPボードの間の共有のRAMに書くだけ。
そうするとそっから先のポリゴン単位の3Dのややこしい計算とかレンダリングとか、全部やってくれる。
要はUnityで物体の位置と角度だけ決めたら絵が出るのと基本同じ。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
だから実はCPUのプログラマは今のUnityでもの動かしてるのと同じようなルーチン書けば絵が出る。
これって簡単でしょ。今なら小学生でも一日で作ってるレベル。下回りは全部DSPボード、ポリゴンボードがやってくれるんだよね。
でその下回りのエンジンをハードからファーム含めてマルチプロセッサで、レンダリングハードで全部作ってあげてるんだよね。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
だからCPUはゲームエンジン上のアプリケーションプログラム。こっちがやってるのは、Unityの下回りプラスGPUボードも設計して開発して動くようにして提供してる様なもの。
オマケにテストも全部やって初期化ルーチンとか全部動かして、サンプルのデータとソースもつけて動く状態でプログラマに渡してあげる。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
あとはちょこちょこいじって出すだけだよ。テクスチャとかのハード用データの生成も全部ツールチェーン作ってそれをあげるんで本当に元データあればすぐ絵が出る。
今のPCで言えばUnityからPC、OSからGPU全部こっちの部署で作ってあげてさあどうぞって渡してるわけなんだけど。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
しかもゲーム自体のアイデアから、画像を綺麗にするためのノウハウやら全部あげてる訳で、そこでつまんないゲーム作ったら許さんぞ状態だったりする。
そんな事を実際にはSYS22のリッジレーサーの時で数人で。演算描画部の開発人数は基本的に4人。後で2~3人は増えたけど、それでリッジレーサーまで持ってった訳。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
自分は演算部やCPU側での仕様、アルゴリズム考案、ASIC開発、3D演算とハード、ソフトの仕様から各種ツールの開発、下の人達への指示。
普通の会社でこれ作ろうとしたら数十人体制だと思うけど、その中で演算部分は特に高速化が必要で、最初始めた時は前任者がDSP2個で作ろうとしてて、プログラムだけ書いてたんだけど。その人が途中でめげてやめちゃって。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
それでハードも作る事に。まずDSP早いの1個にして出したのがウイニングラン。
Sun3の60を会社で初めて買ってもらって英語の分厚いマニュアル読みながらGUIのポリゴンエディター作って。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
ボードのスピードを上げるために、DSPを5つ使うアーキテクチャを考えて、ASICと合わせて開発して、それでHDSPボードって名前にして、ギャラクシアン3とかスターブレードにとかに使って貰って。
テクスチャマッピングとグーローシェーディングのハードをもう1人のレンダリングエンジン開発の人Mさんと仕様決めながらもっと超高速な3D演算用のチップセットの設計をして。それがSYS22の演算部。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
DSPは1個に減ったけど開発したチップの計算性能は実質数十倍になって、安定して60fps出せるように。
いわゆる3D的なクリッピングも行うハードも設計したので大きなポリゴンも自由に出せるようになって、テクスチャや法線含んだポリゴンを扱っても速度が落ちないような回路にした。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
これはデータフロー型のプロセッサシステムでフォンノイマン型じゃないアーキテクチャで作った。
そのおかげで実際にはあまり使わなかったんだけど、並べれば並べるだけ、その数分性能がちゃとそのまま上がる、並列直列のマトリックス状にチップを配置できる形になった。今ならCUDAコアみたいなイメージかな。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
でも比較的安価な低速プロセスのチップでやってたけどね。0.8ミクロンぐらい。
だからクロックも10MHzで動いてた。10!笑うよね。数十万ゲートを手で入れてねwww(SYS22まで)
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
演算回路も浮動小数点回路も設計して使ったけど仮数部18~20ビットぐらいにしたりして回路極力削って。
並べるだけ早くなるので、今なら余裕で規模も速度も何千倍にも出来るような設計にしてた。
今同じもので作ったらプロセスは100分の1近く、速度も数百倍でるから、1チップでも実際に当時の100万倍ぐらいの性能にはすぐなるとは思う回路。まあ今のGPUとかに近いような話。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
実はSYS22の後に開発も数年してて、最後作られなかったシステムがあって。それはSYSTEM33と内部で呼ばれてたけど。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
作り切れなかったのは、開発の規模が大きくなりすぎて、プロジェクトとして遅れてて、そこにソニーがPS2をぶつけてきて、言っちゃうと「潰された」感じ。
と言うと怒られるかもだけど、まあ、ソニーはそういうやり方をしてたよね。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
でもこちらも数人でやってたので、そこから規模化をするのに、プロジェクト管理のノウハウなんぞ誰も持ってなくて、人だけ課長やらがどんどん突っ込むんだけど、練度が足りなくて教育と尻拭いでますます遅れて大変すぎて。
自分の部下も数年かけても回路ブロック作れないでやめちゃった人間とかでて。自分でその後1ヶ月で作ったけど。泣くよね。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
でも自分も人の管理出来ないのを身にしみた。プロジェクト管理は特に新規開発だと本当に難しい。1人でやる様なものでもない。今みたいにチャットツール見たいのあればねえ。
最後はVHDLとかフルで使ってたり、特定の回路合成を自動でやるツールとかもだいぶ自分でも作ってたけど、まあそこから先がNVIDIAとかとの差にはなってたよね。お金と人(できる人)が圧倒的に少ないので最後は竹槍で戦ってる感が強くなって。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
そこは日本の会社と社会の限界にも突き当たった感。
今考えたらああすれば良かったかなとか色々あるけど、当時の自分には結局予算と人事の権限も与えられなかったし、自分の仕事もしながらそこまで上に掛け合いながらいじるのはやはり厳しかったな。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
社内的にも遅れで風当たりが強くなって、批判も高まって、メンバーも私も精神的にも厳しくなって。
なので最後は自分で開発を止めると言って止めたよ。そのままいけば死人もでたかもだけど。幸いそこまで行く前にストップ出来たのは良かったと思う。
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
自分は2ヶ月ぐらいはその後記憶が飛んでる(^_^;まあ、廃人寸前w
でもまあ、普通に戻っては来たので、まだ大したことは無かったんだろう。
どうも夜中に書いてるので大脱線してるww
— 武田政樹@ご当地VTuber運営したり (@tamanyo) May 2, 2019
色々貴重なお話ありがとうございます~。参考になります^^
— Erwin (@Erwin_uk) May 2, 2019
映画「シン・ゴジラ」にもそういう側面が垣間見られたけど 「気の合う仲間だけが集まった少数精鋭チーム」は世界最強なのに、最後は必ず管理者の冷徹な判断も要求される「組織力」で敗北していく…日本ってこのパターン多過ぎじゃね?