TAの備忘録: 映像制作、デジタルヒューマンのツール選定

直近、TAとしてプロジェクトを複数経験したり、副業でCG系の業務をやったりして、リードするときに必要な思想のTAの備忘録としてめも

基本方針

映像制作チームは大体小規模のチームで工数も限られてる体制が多いという前提で、効率化に寄せてツールなどを提案する。

ゲームエンジン、DCC選定

リアルタイムCGの出番というときに真っ先にあがるのはUEとUnityで、自分はUnityの経験の方は強いから先にUnityを軸として考えるけど、少数体制が多い映像やバーチャルヒューマンを制作するときにはUnreal Engineの方が効率良く低予算で作れると思うので、そちらを選択する。アニメ表現やVTuber的なのはUnityに優位がありそうだけど。

映像プロジェクトでUnityエンジニアを採用するコストも高いと思う。映像系で欲しいのはどちらかといえば、プログラマというより、テクニカルディレクター的な立ち振る舞いを求められるからミスマッチが起こり得そうなのと Unityだと綺麗な思った絵を出すまでパイプラインを整備するのに専任のグラフィックエンジニア、TAの手がいる。UEも知識ある人は必要だろうけど。

モデリングはMaya, BlenderでもMaxでもいいけど、リギングシステム、モーションはMayaかBlenderとかどれかに固定させる。Blender使うなら自分でアドオンとかで頑張ってもらうとか

デジタルヒューマン

現実の人間をデジタルにするだけなのか、リアル寄りのオリジナルキャラクターを作るのかでアプローチや工数は結構変わる。

デジタルヒューマンの要素そして、メッシュ、テクスチャリング、スキン、ヘアー、ブレンドシェイプリギングでそれぞれ高度な工程を追求できるけど、各工程でどの程度品質を求められるのか確認した後、先にMeta HumanやZivaの導入を検討したほうがいい。フェイシャルの開発は機械学習で自動生成するのが主流となってきていて、MetaHumanのようなパイプラインが必要になる。ブレンドシェイプが自動で生成できるのはいい。

Character Creator4、Headshot2を使っても高品質なキャラクターを生成もできる。Unreal Engine5にも持っていける。 人物の場合スキャンか静止画を元にベースモデルを生成、オリジナルキャラの場合ZBrushでスカルプト、これらのツールに変換すると効率化が捗りそう。Unityは一応Zivaというツールをサポートしているんだけど、事例をあまりみないのとMeta Humanほどのパイプラインには育ってはなさそうなので様子見...

特にヘアグルーミングはそれぞれのツールでエクスポートして、UE5などで取り込めるか確認したほうがいい。

xGenからの変換方法 XGen によるヘア作成のための操作ガイド | Unreal Engine ドキュメント

3DCGアニメーションの経験のあまりないチームでCharacter Creator4, Unreal Engineを使って映像を制作した事例もある。KPOPでのバーチャルヒューマンでのUE5, Meta Human採用の事例もあるみたいなので安心感はある。

Filmmaker uses Character Creator and iClone to enhance MetaHumans and Unreal environments - Reallusion Magazine

20230414

組織って、ソフトウェアって作るの大変で、それが自分の幸福には繋がらない。作るのやめたいと思ったのが2018年くらいのこと。

社会的に影響力あるものを作ろうと思うならそれは避けられないけど、どうしても感覚的に巨大なソフトウェアを作ることが100万人使うサービスを作ることが自分の幸せに繋がると思えない。

自分はソフトウェアエンジニアだと自己暗示して、アーキテクチャ・言語・サービスの作り方色んなパターンに拘ったり自分は一人前だなと思うことが、視野が狭くてちっぽけなんじゃないかと思うようになった。そういうエンジニアリングみたいなのはもう必死に取り組むんじゃなくて肩の力を抜いて、呼吸をするように自然なものとして使いたい。

一度そういうものから離れてコンテンツの方に行きたいと思い3DCG・ゲームの仕事に変えたりした。

コンテンツ作りはそれはそれで大変なことも多いし、宮崎駿のように社会のために作品作っているような感じでそういう自己犠牲的なハードワークが存在するのも知ってるけど、自分の幸せとか充実感を満たす働き方として可能性あるなと思っていて学びがある。

CG周辺は幅広い分野に使われていて、技術自体面白いのでそこをやりつつ、コンテンツ作りに関われたらとりあえず数年はこれで大丈夫だと思う。

最近は自分が作りたいと思ったものを数日、数週間で公開できるくらいのスケールで生きるのが気持ちいいなと思ってる。自己満足というか自分本位に生きてる感じがしていい。ChatGPTに作り方書いて半日で作ってみたいな没頭するような時間とか、ゲームのアイデアが浮かんでそれについてのメカニクスを考えたり、プロトタイプ作ったりするのが結構楽しい。こういう自分が楽しいと思える瞬間がもうちょっと言語化できて日常に取り込めると最高なんだけどな。

CGを始めた振り返りとTAの仕事

前の記事では3DCGを始めたということを書いたような気がしたので振り返ります。

一年前デジタルハリウッドに通い始めて3DCGを一から勉強始める一方、業務はゲーム会社でクライアントエンジニア(Unity)をしてました。

デジハリではCGに関わることMayaを中心に触っていき、何となく3DCGを作ることが分かってきたタイミングで、テクニカルアーティストにジョブチェンジすることになりました。 元々3Dを扱う業務(TAっぽい業務)を希望していたんですが、TAという職種は希少でUnity(リアルタイムCG)とMaya(DCC)などのCGの基礎が一通りできる必要があり、TAになりたいという人も少ないです。ゲーム会社にはゲーム作りたくて入ってくるクリエイターがほとんどなので、業務内容的にやりたい人もなかなか少ないようです。そこで自分にやってくれないかという話がきました。その後色々あって3Dを扱う横軸の3Dのチームが出来て、会社での一人目のテクニカルアーティストとなったのがこの1年の簡単なハイライトです。

今はMayaのツールをPythonで書いたり、3Dの仕様について決めたり、PlasticSCMを導入してデータ管理を整備したり、クリエイターをサポートするのがメインの業務です。

当初の目標だったTAになった時点でCGクリエイターみたいな方面へ取り組むのを中断し、新しい案件にアサインされ業務が忙しくなりデジハリも途中で行かなくなったりしたんですが、3DCGへの熱量は無くなってはなくてモデリングや映像制作などクリエイターとしてもやっていきたいなと思います。時間や場所、組織に縛られず、自分から発信する働き方したいなとは常々思っているのとメタバース方面でもクリエイターとしての経験の蓄積がいるからです。

本業のTAとしてはUnityやUnreal Engineでの開発に加えて、今後Houdiniのツールを開発したり、キャラクター制御やリギングなどの専門性を開拓するなど色々選択肢があるので今後そういうことをやっていきます。

ぼっち・ざ・ろっく!の5話の演奏シーンとかめちゃくちゃ良かったんですが、ああいうのをリアルタイムで演奏できるようなモーションの制御作れないかなと妄想したりします。製作陣が音楽に本気で向き合ってる感じが伝わってとても良かったです。ギターヘッドにカメラ取り付けたような揺れるモーションのカットとか最高でした。

アニメ「ぼっち・ざ・ろっく!」より

話逸れましたがプログラマ経験あってCG技術を極めたい人はTAは大事にされると思うのでおすすめです。TAの役割は一括りにできなくて、中でも描画を専門にやってる人がいたり色んな専門スキルが必要とされます。

今後ゲームエンジンの利用は色んな分野で増えてくので必要とされる役割になっていくだろうなと思います。知らない事多すぎて時々発狂したりはあります。なりたくてすぐなれるような職種ではないので難しく、会社がTAになるために色々サポートしてくれているので有り難い限りです。 今後腰を据えて取り組める技術としてCGを選んだので世の中の需要がある限りは頑張りたいなと思ってます。

CGクリエイター

SHIROBAKO Advent Calendar 2021 - Adventar 23日目です。SHIROBAKO Advent Calendarは2015年に一度書かせて頂きましたので、6年越しに書かせていただきます。ここまで続いていることに作品への愛を感じます。

前は、「みーちゃんから学ぶ新人ソフトウェアエンジニアの心得」というタイトルで書かせて頂きました。 残念ながら既に記事は消してしまったようなのですが、2015年は僕の人生の転機で、仕事を辞め独学で勉強したプログラミングだけを武器に上京して、ソフトウェアエンジニアへ入門を果たした年です。この当時は仕事に対する気持ちで、新人の3Dモデラーのみーちゃんを見たときにとても心を動かされた記憶があります。そして、6年後の今同じような感情をフラッシュバックできるかもしれないと思いました。 僕がやろうとしてることがみーちゃんやSHIROBAKOの世界に近づいたからです。

前回AdventCalendar書いたときはWebエンジニアだったのですが、今はUnityエンジニアとしてゲーム開発をしています。業務外では都内のデジタルハリウッドというスクールに通い日々CGを勉強しています。元々Webエンジニアになる前はゲーム会社を志望していたのですが、3社お祈りされた辺りで生活も苦しく、当時一番自信のあったRubyを使った転職活動に切り替えてWebエンジニアになっていったので、当時得意だった技術をベースにキャリアが積み上がっていくことに焦りを感じていました。改めて自分はコンテンツが作りたいと思い、技術スタックをコンテンツ制作に関連する技術に切り替え、スマホゲームの会社でUnityエンジニアになりました。個人でも作品を制作できるようになりたいため、自身で3DCGやグラフィックスなどにも取り組んでいます。

みーちゃんはキャラクターを作りたいという気持ちでモデラーになったのですが、僕も一番作りたいのはキャラクターで、デジハリの3ヶ月目の静止画課題で制作したのはキャラクターでした

初めてのキャラクターモデリングということもあり、とても時間がかかったのと作りたいモノが全然作れずという感じですが、なんとか人を作りきることができました。60時間以上掛かったと思います。提出前日は寝ずに20時間ぶっ続けで作業したり... あまり業務外で長時間何かに夢中になるということが最近なかったのでとても自信になりました。

みーちゃんが車のアニメーションのクオリティで同僚に厳しい指摘をしたシーンを改めてみましたが、3Dモデラーは常に物事の本質を観察していけないといけなくプロフェッショナル度が高い職です。

みーちゃんは一人でモデラー、アニメーション、リギングなどができるジェネラリストで需要が高くリーダーを任されるのも頷けます。小さい会社だと業務範囲内が広く色々やらされるみたいですが、エフェクトの経験はないのか後輩にまかせてました。エフェクトまでできたら逆に凄すぎるんですが。その辺の成長が劇場版で描かれていたのかと思います。

みーちゃんのようなCGクリエイターとしての能力を身に着け人の心を動かす作品を作ると共に、ソフトウェアエンジニアとして技術で新しい表現を作ることを目指していきます。

暗号通貨のマイニングのハッシュアルゴリズムについて調べてみた

AbemaTV Advent Calendar 2017 の16日目の記事です。

AbemaTV Advent Calendar 2017 - Adventar

暗号通貨で使われるPoWの暗号化アルゴリズムについて書きたいと思います。

まず簡単にマイニングの説明。 ビットコインを通じた取引はビットコインネットワーク(P2Pに参加しているクライアント)に承認されはじめて有効になります。 取引の内容をトランザクションと呼び、インプットとアウトプットと言う形で誰のウォレットから何BTC誰に支払われれるという内容です(前のトランザクションハッシュ値や新しい所有者の公開鍵などを含む)。この未承認のトランザクションをマイナーが見つけ出し、ブロックチェーンに書き込む。

マイナーがトランザクションを見つけ、記載するまでがマイナーの仕事で、ブロックチェーンに記載されるということは、ネットワーク全体に承認されたということになるが、全体に承認するためにProof Of Workという作業がある。

CPUの計算の速さを競わせ、ブロックが有効だという一番近い解を最初に見つけたマイナーを勝者とし、そのブロックをブロックチェーンに組み込み、報酬が貰えるという仕組み。ビットコインではそのアルゴリズムにSHA256という暗号化アルゴリズムが使われていて、提案しようとするブロックのヘッダにnonceを加えてシリアライズしたバイト列をSHA256でハッシュ化し、答えが最小になるまで反復的に計算し続ける。10分以内に計算が終わるように難易度調整されている。

はやく計算を行ったマイナーが報酬を得ることができるため、どのハッシュアルゴリズムで計算を行うかも重要になってきます。電力消費量、一般人でも収益化できるのか、専用の高価な機器を用意しないとマイニングできないかなどに関わってくるので、敢えてASIC(高価な専用な採掘機)でマイニングできないような複雑なアルゴリズムを採用しているアルトコインも存在する。

ビットコインは計算が信用を作り出す仕組みで、善の心を持ったマイナーの計算能力が過半数を割らない限り、健全なネットワークでいられる。そのため51%攻撃やシビルアタックといった悪意のあるユーザーの攻撃などを防ぐ必要がある。 Sybil attack - Wikipedia

blockchain.info https://i.gyazo.com/4fbc2568a4f16453c0e31604273f7e26.png ただ、この分布を見る通り寡占状態になっていて、分散型信用ネットワークとはなんだったのか?という状態になっている。 既に個人でビットコインマイニングは難しく、マイニングプールに参加して貢献度により報酬をもらうという形が一般的。

SHA-256、RIPEND-160

2つを組み合わせることで強固なハッシュを作る。ビットコインビットコインキャッシュなどで使われている。GPUやASICでの計算に向いている。AntMinerというASIC採掘機が数10万から100万円以上で売られている。

ブロック増えていくほど、計算量が増えるため電力消費が増え続ける。ビットコインマイニングで年間28TWh消費しており、環境問題に発展しそう。実際に取引が行われているというより、投機目的が多いため、資源の無駄遣いという現状もある。 5 Best Bitcoin Mining Hardware ASICs 2017 / 2018 (Comparison)

Equihash

ZcashのPoWで使われている。(ビットコインゴールドもSHA-256からEquihashに移行?) メモリ指向型PoW。効率のいい専用のASIC機を作ることを難しくしている。

GitHub - khovratovich/equihash: Equihash: memory-hard PoW with fast verification

論文: https://eprint.iacr.org/2015/946.pdf 人生で一番やる気あるときに読む

他にもxkSNARKSというスマートコントラストの認証コストを抑える技術もあってZCash面白い。 Zcash - イーサリアム上のzkSNARKs

Ethash

イーサリアムのPoWで使われている。 こちらもマイナーの寡占を防ぐためにASICのマイニングが難しくされている。

https://ethereum-japan.net/wp-content/uploads/2017/06/bfnEB.png

Directed acyclic graph - Wikipedia

DAGというグラフの計算をメモリで行うため最適化が難しいということらしい。ビットコインブロックチェーンはブロックが一本でつながっているが、DAGは複数のブロックが同時につながっている。 なんでそうなっているかというと、Ethereumには、Ghost Protocolという技術があり、ハッシュレートが低いマイナーの無駄になってしまう(orphan block)をuncle blockと呼び、報酬を与え、そのブロックはチェーンにぶら下がる。それによって重くなるチェーンをメインチェーンとする仕組みなよう。それによって短い時間でもセキュリティの高いブロックの生成を可能にしている。

ブロック生成時間が15秒、DAGにおいて30,000ブロックごとに1Epochという単位でわけられていいて、1Epoch毎にDAGファイルが増加する問題もある。 Radeon RXにおいて長時間マイニングするとハッシュレートが低下してしまうため、コスパが悪い。

そもそもイーサリアムは、Proof Of WorkからProof of Stakeへの変更を予定(Casperと呼ばれるアルゴリズム)していて、大型アップデートと謳っている「セレニティー」で実装されるらしい。PoSはPoWの欠点を克服したもので、これはこれで説明が長くなるから割愛。

ビットコインは単純がゆえに問題もあるが、イーサリアムは複雑なため難しい。。

scrypt

litecoinなどで採用。メモリ消費が激しい。 litecoinもASIC耐性のあるコインとして開発されたが、現在scrypt用の採掘機が流通している。 AntMiner L3+ Buy The Powerful Antminer L3+ ASIC Litecoin Miner - Bitmain

yescrypt

BitZenyで採用。ASIC耐性あり。CPUのみ対応。 SHA-256が使われている様子。 bitzeny/hash.h at new-bitzeny · onokatio/bitzeny · GitHub

価格が上昇した影響でマイニングプールも賑わっていて、掘るのが難しくなってきている。。

Lyra2REv2

Monacoinで採用。litecoinからフォークされたMonacoinはASIC対策のためLyra2REに変更。 変更後のスレ

Lyra2REv2のASIC - Ask Mona 【マイナー必見】Lyra2REv2を高速化したよ - Ask Mona

CryptoNote

匿名通貨Monero(Cryptnight)で採用。消費電力が少ない。MinergateというプールはCryptnote系のコインが掘れる。

終わり

どの通貨でどのアルゴリズムが使われているか調べてみました。ブロックチェーンや、ビットコインのネットワークアーキテクチャ、暗号化などまだわからないところがたくさんあるので、また記事を書こうと思います。 個人的に来年はプログラマとして暗号通貨に投資しようと思ってます。マイニングに関しては僕は自作PC作ったり、パーツとか調べるのも好きなので、割りと向いてる方かなと思います。 Radeonのドライバーも仮想通貨向けの機能を追加していたり、しばらく自作PC界隈も盛り上がりそうで楽しいです。 ゲーム内オーバーレイ表示やスマホ連携を搭載した新ドライバ「Radeon Software Adrenalin Edition」 - PC Watch

社内で簡単にビットコインの仕組みについて説明したときのスライドです

www.slideshare.net

2016のこと

今年は環境がかなり変わったので去年の振り返りしようと思います。

引っ越し

上京してから1年以上お世話になったシェアハウスを卒業して一人暮らしをはじめた

初めて一人で手続きなどした

今年は引っ越しすることを年内の目標にしてたので出来て良かった

ニコニコ超会議に行った

こういう類のイベントに参加したのは初めてで、意外に楽しかった。ニコ生でしか見れなかった人達を生で見るのも新鮮だった。あの空間は異常だった。

ゲーム

PS4を買って色々なゲームをやった。ゲームに対するモチベーションが低すぎて心配だったけど、なんとか楽しくやれている。

プログラミング

自分の意識下でRailsエンジニアからフロントエンドエンジニアに転向した。たまたま割当たったプロジェクトがフロントエンドだったというのもあるけど、自分が現時点で価値を出せる領域だった。業務でReact.jsやReduxでWebページをSPAっぽくしたりした。それらの内容をLTで発表した。

すでに動いているRailsアプリケーションにReact.jsを投入する

http://qiita.com/khrtz/items/a43d58cad54af2425ced

仕事

自分の立ち位置や得意なことってなんだろうと考えるようになった。

この会社に入った入り口としてはあくまでRailsエンジニアだったので、求められるスキルセットが足りない気がして焦りがあったけど、自分の得意なことに集中しようと決め、サーバーサイドの開発は極力やらないようにした。

そして関心のあったReact.jsなどのフロントエンド、UIデザインなどに集中できるように。

この分野に関して社内では実力者がいなかったので、一定の裁量と信用が手に入ったと思う。それが実際に新機能開発や改善に役立てたのが良かった。

だけどベンチャーやスタートアップに属してきて思うのは、裁量ややりがいだけでは満足に生きていけなくて、スタートアップに求めるのは全能感やプロダクトの価値の核の人物になれることだと思ってて。自分の実力が伴わなければ、良いモノを作れないし、技術者の経験不足が原因でスピードを鈍化させることになるような環境で、そういうハッカーになるために色々な挑戦をしたり学んでいかなければならないというジレンマの中で、悶々としていたこともあり機会を求めていました。 

そして転職し現職に至るけど、想像してた以上に越えないといけない壁があるなと感じているので、今年はやっていきたい気持ちです。よろしくお願いします。 

引っ越した

引っ越せた。場所は文京区で、最寄りは江戸川橋駅。職場へはチャリで10分くらいの距離。
部屋は鉄筋のマンション、広さは1K

f:id:mhkohei:20160430103333j:image

前エントリ
引っ越したい

去年の11から探していた。1月くらいから引っ越しシーズンらしく物件もほとんど見つからなかった。

問題はお金だったので、敷金、礼金、不動産手数料0円に絞った。敷金礼金0自体はそんなにないけど、探せばある。

不動産手数料については、ノマド nomad-a.jp というサイトを利用した。完全無料ではないんだけど、5000円くらい課金した程度で済んだ。

一人暮らし経験あるけど、社会人として1人で契約するのはじめてだったからわからないことは結構ある。

2015年の1月に北海道から上京してきて、ずっと家賃40,000のシェアハウスに住んでいた。家賃安いことだけが取り柄で他は良いところがない。エンジニアになれて生活が担保されたので、いい加減抜けたかった。シェアハウスは、プログラマの生活を保障するものではないので、すぐに出た方がいい。

昨日IKEAで2人掛けソファとカーテンとラグ買ったくらいで冷蔵庫くらいしかない。よろしくお願い申し上げます。ゲームとか全然出来なかったし、環境作りたくてワクワクしている。
https://www.amazon.co.jp/registry/wishlist/2OMMVG78WHSEG/ref=cm_sw_r_cp_ip_wl_o_iHajxb2824G1Y