オッサンはDesktopが好き

自作PCや機械学習、自転車のことを脈絡無く書きます

blenderとUnityでミクを歩かせてみる(物理演算付き)

 こんにちは.changです.

 最近公私でmetaverseを勉強しています. その延長でblenderとUnityの開発環境を作ったり*1*2トラックボールを買ったり*3しました. 一応動かせそうなので使っていきます. 今回は第1段として初音ミクを歩かせてみます.

突き抜けまくってますが,ギリギリ見えて無いかな...

Note:
ザッと作ってしまって未整理なところがあるので,細かな手順等をまとめるのは別途にします.

1. blender

 フリー & オープンソースで公開されている3Dモデリングソフトです. 3Dモデリングというのは,(僕自身の解釈ですが)アニメやゲームのキャラクターやシーンを,PCを使って3D空間に構築する作業です. 紙と鉛筆(或いはペンタブ)を使って描かれたた絵は2Dです. これを3Dに変換する作業になります.

 ”変換"という言葉を使いましたが,2Dの絵を元にせずに直接3Dモデルを作る場合もあると思います. 直接3Dを描ければ良いのですが,特に人物の様に複雑で曲線的なモデルを作る際には,2Dを下絵にする事が多い様です.

 3Dモデリングにおいてグローバルスタンダードな地位を築いているのがAUTODESK Mayaです. blenderはこの競合になります. 僕自身は半分趣味でやっている事もあり,無料で使えるblenderを選択しました. ただ,blenderがホビーユースかと言うと決してそうではありません. エヴァンゲリオンの制作にblenderが使われているのは有名な話です*4

2. Unity

 プロ・アマを含む多くのクリエイターに支持されるゲーム開発ツールになります. 個人利用(制作したゲームを売って一定以上の収入を得る前のフェーズ)は無料です.

 Unityは.Net Frameworkベースで動くので,基本環境はWindowsです. 準じて,開発言語はC#になります. でも,MacLinux向けのインストーラも提供されています.

 ちなみに,僕は長年”UnityはMacで使うもの"という固定観念を持っていました. 実際,昔はMac向けの開発環境でしたし,(記憶が曖昧ですが)無料で使えるのがMacに限定された時期がありました. それが.Net上に乗った(?)という事なので,大改造を経て現行になっているのでしょう. 浅はかな知識で申し訳ありません.

 Unityが画期的だったのはクロスプラットフォームをいち早くやってきた点かと思います. 古い話で恐縮ですが,ポケモンGoiPhoneでもAndroidスマフォでもプレイ出来ますよね. スマフォ世代の若者からすると当たり前かもですが,OSを隔てたGUIアプリを構築するのは大変なのです.

3. ゲーム & 動画制作

 僕自身を含めた初学者が理解し難いのが,多くの制作現場においてblenderとUnityが併用される事です. Visual StudioやX Codeの様な完成度の高い統合環境を使っているプログラマからすると,複数の環境を組み合わせるのが非効率な感じがしますよね.

 Unity単独でもゲームは作れます. ただ,Unityが備えている3D モデリング機能は陳腐シンプルで,人物の様なモデルを描くのが難しいのです. 一方,blenderではゲーム制作に必要なプログラミングが出来ません. コントローラやキーボードからのイベントに応じてキャラクターを動かす,といった処理を作れないのです.

 動画制作であればblender単独で出来ます. 僕自身はゲーム制作に興味がある訳では無いので,blender単独で済ませられるならそうしようと思っていました. 今後の記事で触れる事になるかと思いますが,blenderの物理演算が著しく不安定で使い難い為にUnityを導入しました.

 余談ですが,複数のソフトウェアやOS,更にはハードウェアまでを組み合わてシステムを構築するのは現代のトレンドでしょう. データ解析等をやっていても感じます. 一つの環境や言語を使いこなせれば事が済む様なソフトウェア開発はどんどん減っていくでしょう. アメリカ大統領選挙にも見られる様に,(特に永続的に)特定の何かが圧倒的最強といった状況は年々発生しにくくなっていると感じます. 面倒ですが,日々情報を集めながら,役に立ちそうなツールを取り入れていく必要がありそうです.

3. 初音ミクを動かす為に必要な事

 やっと本題です. ざっくり言うと,以下の工程がありました.

(1) モデルを入手する
(2) リギングする
(3) Unityにインポートする
(4) 物理演算をつける
(5) モーションをつける

 長くなってしまったので,詳細は別記事で書きます. 一応クレジットだけ明記します.

・モデル:キオ様*5
・モーション:UnityChan*6

4. まとめ

 半端な内容になってしまいました. 「別記事で書く」が嘘にならないように頑張ろうと思います. ただ,僕の興味はゲーム&動画制作では無く,物理エンジンです. 動画を綺麗にしたり,キャラクターを可愛くするといった方向性には行かないかと思います.

 今まで得意にしていた技術がどちらかと言えばプログラミン系だったため,特にblenderは新鮮な感じです. データ解析に飽きて来たので,良い刺激になりそうです. 何かのキッカケになればと思っています.