Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

UE4とBlenderでランニングコストを抑えるモダンなワークフロー

9,575 views

Published on

講演動画:https://youtu.be/P1U7XkhB6VM

2019年10月6日に行われた「UNREAL FEST EAST 2019」における「UE4とBlenderでランニングコストを抑えるモダンなワークフロー」の登壇資料です。
●公式サイト
https://unrealengine.jp/unrealfest/
===
このセッションでは小規模でモダンなゲーム開発に興味があり、ツールの導入コストやランニングコストを抑えたい方を対象に、UE4とBlenderを実戦に投入した開発フローについてご紹介します。現場で問題になりがちなテクニカルな問題への対処や、UE4とBlenderを駆使した高速なイテレーションについても解説いたします。UE4やBlenderを現場で導入したい!という方にぜひ聞いていただきたい内容です。

Published in: Engineering
  • Be the first to comment

UE4とBlenderでランニングコストを抑えるモダンなワークフロー

  1. 1. #ue4fest#ue4fest UE4とBlenderでランニングコスト を抑えるモダンなワークフロー 株式会社 Indie-us Games 代表取締役 中村 匡彦 アートディレクター 坂井 真
  2. 2. #ue4fest#ue4fest 株式会社Indie-us Games 関西でUE4を使ったゲーム、映像、建築、VRなど、 ありとあらゆるプロジェクトをやってます! 最近関わったプロジェクト ・ドラゴンクエストVR ・ガールズ&パンツァー 最終章 第2話 ・FUJI ROCK`19 EXPerience 会社紹介
  3. 3. #ue4fest#ue4fest 名前 : 中村 匡彦 株式会社Indie-us Games 代表取締役 ゲーム業界歴 12年。UE4の何でも屋。 UE4だけでなく、Blenderも推進中! 自己紹介
  4. 4. #ue4fest#ue4fest #UE4forB3D ぜひ実況お願いします!
  5. 5. #ue4fest#ue4fest なぜUE4とBlenderなのか?
  6. 6. #ue4fest#ue4fest 昨今ではツールを維持するだけで相当の費用がかかるように。 サブスクリプション形式のツールが増えて、値上り傾向。 特に3Dアーティストの年間ソフト維持費は4,50万程度とも。 仮に100人のアーティストに全て与えると年間5000万もかかる計算。 これは経営者にとっても頭の痛いお値段! 開発ランニングコストの増加
  7. 7. #ue4fest#ue4fest UE4もBlenderも基本的には無料で使えます。 UE4はゲームを販売するまでは完全に無料! ※ライセンシー企業さんは別 導入までのハードルが低い! とりあえずの検証がしやすい! UE4とBlenderは無料
  8. 8. #ue4fest#ue4fest 取引先企業さんに合わせてDCCツールを選択。 Mayaや3ds Maxも必要に応じて使用していますが、 ライセンスはあくまでも最低限に。 ワークフローがBlenderで完結する部分はBlenderオンリー。 本来でのサブスクの利点を活かしつつ、コストを削減。 小規模スタジオでは非常に大きなコスト削減効果があるはず! Indie-us Gamesでの導入例
  9. 9. #ue4fest#ue4fest マーケットプレイスで販売中アセット もちろん全てがBlender製! 現在キャラ中心ですが、背景アセットも少 しずつ増やし、ブループリントアセットも 計画中! Indie-us Games 作成アセット
  10. 10. #ue4fest#ue4fest 『無料のツールなんて機能は対したことがない』 『無料だからサポートがない』 全然むしろ、そんなことはなく! オープンソース故の強みがあります。 無料だから機能が弱い?
  11. 11. #ue4fest#ue4fest UE4もBlenderもコミュニティがオープン。 開発自体も非常に進化が速く、問題への対応も迅速。 バグがあれば開発者に直接報告が出来ます。 またオープンソースなので、自らがコントリビューターに! 世界的にもオープンソースは非常に大きい影響力となっています。 コミュニティが開放的
  12. 12. #ue4fest#ue4fest UE4ではアセット&プラグイン、Blenderではアドオンがあります。 これらを使いこなすことによって、開発コストを大幅に削減。 UE4のアセットはBlenderで利用することも認められています! もちろん自分で開発することも可能。 強力なプラグイン&アドオン
  13. 13. #ue4fest#ue4fest UE4の開発元である、Epic Gamesが助成金プログラムであるEpic Mega Grantsにより、Blenderに120万ドルの支援。 現在BlenderにとってもEpic Gamesは最大のパトロンに。 Blender Development Fund https://fund.blender.org Epic GamesがBlenderを支援
  14. 14. #ue4fest#ue4fest 名前 : 坂井 真 株式会社Indie-us Games アートディレクター デザイナー暦30年… 3D CG暦25年くらい… UE4で結婚したひと 自己紹介
  15. 15. #ue4fest#ue4fest • 90年代にオランダのCGスタジオにてAmiga向けのレイトレーサーとし て開発された。SGI IRIXなどに移植されBlenderと名称変更される。 • その後Ton Roosendaalが設立したNaN社(Not a Number Technorogies)がWindows版を開発(98年)当初は有料版があった。 • 2001年にNaN社は経営破綻…しかしTonは「ソースコード開放!」を合 言葉にBlender Foundation(Blender財団)を設立した。 • ※AmigaとかSGIに反応するひとは… Blenderの歴史、知ってますか?
  16. 16. #ue4fest#ue4fest なぜ、今Blenderが注目されるの?
  17. 17. #ue4fest#ue4fest • OSS(オープンソースソフトウエア)なのでUE4と同じく、何か問題が 生じたときにソースに当たれるのは強い • 基本的なポリゴンモデリング機能において、各DCC間の圧倒的なアドバ ンテージというものを探すのは難しいほど、これらの機能は枯れて(成 熟して)いる • 最新版2.8xにおいては、懸念だった右クリック選択などの独特すぎる操 作性が刷新され、他のDCCからの移行コストが大幅に削減された。 • Python周りについては後の解説で! なぜBlenderなのか?
  18. 18. #ue4fest#ue4fest というような 環境的な良さは以後紹介しますが…
  19. 19. #ue4fest#ue4fest なんといっても 導入コストが無償であること!
  20. 20. #ue4fest#ue4fest CGを専門に学ぶ機会がなかった 多方面の人材が Blenderなら今すぐはじめられる!
  21. 21. #ue4fest#ue4fest これがなにを意味するのか?
  22. 22. #ue4fest#ue4fest 3D CGの開放!
  23. 23. #ue4fest#ue4fest 社会的には 3D CGが一部の特殊な技能では なくなっていくのかも知れない
  24. 24. #ue4fest#ue4fest 3D CGという文化の底辺が広がり 様々な方面での サスティナビリティの向上が得られる
  25. 25. #ue4fest#ue4fest 以上が、 なぜBlenderなのか?への IUGからの回答です。
  26. 26. #ue4fest#ue4fest Blenderを主軸に据えたIUGのワークフロー
  27. 27. #ue4fest#ue4fest ワークフローでBlenderが担うパート
  28. 28. #ue4fest#ue4fest ZbrushとBlenderの連携:GoB • Zbrush to Blenderをワンボタンで実 現するソリューション • 2.8対応版は改良され、スムージング グループなどのエクスポートが可能 • 使い心地はGoZと変わらない https://github.com/JoseConseco/GoB
  29. 29. #ue4fest#ue4fest Substance PainterとBlender • 2.7x時代からSPで作成 したPBRテクスチャを利 用できるシェーダーはあ ったが、2.8xでは Eeveeで手軽にルックを 確認できるようになった • IUGの場合、Liveリンク は利用していないがむし ろそのほうがやりやすい
  30. 30. #ue4fest#ue4fest Blenderを普及させるために Indie-us Gamesの取り組み
  31. 31. #ue4fest#ue4fest Udemy講座が2.7x対応で配信されています! https://www.udemy.com/course/blender-unreal-engine- 4/learn/lecture/10994522#content 【超初心者向け】Blenderでキャラクターをモデリングしてアンリアルエンジンで動かす講座【ハンズオン】
  32. 32. #ue4fest#ue4fest 受講者数2200人突破。そろそろ2.8対応も…???
  33. 33. #ue4fest#ue4fest 機能検証1: Blender2.8で改善されたアレコレ
  34. 34. #ue4fest#ue4fest UIが劇的に改善。モダンで合理的な外観になった。
  35. 35. #ue4fest#ue4fest Blender2.8のEeveeビューポート表示(ルックDev)
  36. 36. #ue4fest#ue4fest 特筆すべき機能:グリースペンシル
  37. 37. #ue4fest#ue4fest Blender2.8グリースペンシルの強化機能 • アノテーション(注釈)とグリースペンシルが分離 • バケツツールが追加。閉領域の塗りつぶしが簡単になった • 従来からあるストロークのスカルプトや変形が分かりやすく高速に • グリースペンシル専用のモディファイヤ(ミラーなど)が用意された • アニメーション機能も強化。リグを組んで動かせる! • 専用の作業スペースが用意された。 • グリースペンシルの機能だけで講演できるほど多機能…
  38. 38. #ue4fest#ue4fest スカルプトモードも大幅強化
  39. 39. #ue4fest#ue4fest Blender2.8スカルプトの強化機能 • EeveeによるPBR表示のままスカルプト作業ができる! • 2.7xからあるDyntopoも高速化。さらにパフォーマンス向上される予定 • 全体的にスカルプトブラシの操作性・手触り感が向上 • スカルプトにマスク機能が標準で入った • モーフ(シェイプキー)の作成がはかどる! • 2.81ではさらなるスカルプトモードの機能強化が進行中 • 自動リトポまわりのアドオンも続々整備されつつある
  40. 40. #ue4fest#ue4fest 機能検証2: Blenderの基本的な特長・良さ
  41. 41. #ue4fest#ue4fest Poly Build
  42. 42. #ue4fest#ue4fest Blenderで法線のコントロール • 3つのCubeはすべて同じポリゴンモ デルで、エッジにベベルをかけている • それぞれに「重み付き法線モディファ イヤ」を付加し、法線をコントロール • この他にも「法線編集モディファイ ヤ」で放射状法線や他の形状からの法 線転写が行える
  43. 43. #ue4fest#ue4fest カスタム分割法線データ • 法線編集系のモディファイヤ を適用するとメッシュの頂点 データに「カスタム分割法線 データ」が付加される。 • ハードサーフェース・モデリ ングやブーリアンを多用する ようなモデリング、ローポリ モデルでベベルエッジの見栄 えを向上させるのに便利!
  44. 44. #ue4fest#ue4fest Blenderのボーンシステム「Armature」の特徴 ボーンチェーンの途中を接続解除してもチェーンとしての機能が保たれる。 これを利用して二重関節を自在に作成することができる。
  45. 45. #ue4fest#ue4fest 関節の接続を解除した「ずらしボーン」の動き リムの接続が自由なので通常は回転しかしない関節に移動のキーやエクスプレッションを 導入することで変形を補完したり自由度の高いアニメーションを作成できる。
  46. 46. #ue4fest#ue4fest UE4のアンリアルスケルトン互換を考えると… • ボーンの接続を解除した場合、中間にリンクが生じる。 • そのため、アンリアルスケルトン互換とは言えなくなる。 • 一種の二重関節になるので便利ですが自社案件などで… • マーケットプレースのキャラクタアセットでは使えません。 ※「と思われます」の解釈でお願いします。
  47. 47. #ue4fest#ue4fest ボーンと頂点グループの対応 • メッシュとアーマチュアのバインデ ィングを行うと頂点グループがボー ンに対応して作成される • バインディング後にボーンの名称を 変更すると自動的に頂点グループの 名称も変更される。 • バインディングの前後で自由にシェ イプキー(モーフ)の作成が可能
  48. 48. #ue4fest#ue4fest ボーンと頂点グループの対応:2 例:Rootの名前をYasaiに変えたら頂点グルー プ名も自動で変更される。
  49. 49. #ue4fest#ue4fest Blenderでスケルタルメッシュを作る・編集する • メッシュをアーマチュア(スケルトン)にペア レントする際「アーマチュア変形」を選択する ことで各ボーンに対応した頂点グループが作成 され、自動でウエイトを振ることができる。 • 頂点グループを自動で作成するかどうか、ウエ イトを振るかどうかは任意で選択可能。 • ボーン変形は「アーマチュアモディファイヤ」 が行うが、ウエイトデータはメッシュ自体が保 持しているのでアタッチ・デタッチを自在に行 える。
  50. 50. #ue4fest#ue4fest アーマチュアモディファイヤ • アーマチュアモディファイヤは「メッシュのボ ーン変形」だけを制御している • 頂点グループとウエイトはメッシュそのものが持っている。 • デュアルクオータニオンは「体積を維持」で実 装されている(ゲームエンジンにはもちろん持 っていけませんが) • バインド対象を頂点グループとボーンエンベロ ープで選択できる
  51. 51. #ue4fest#ue4fest Blenderのモーフ(シェイプキー) ↑の例ではポリゴン編集モードで頂点をプ ロポーショナル編集している • Blenderのモーフはシェ イプキーと呼ばれている • メッシュをボーンにバイ ンドする前後で自由にシ ェイプキーの追加・編 集・削除が可能 • もちろんモーフターゲッ トを使ったシェイプキー も作れるが、Blenderな ら直接編集したほうが便 利だと思われる
  52. 52. #ue4fest#ue4fest シェイプキーとドライバ • Blenderでは「ドライバ」という機能で ボーンのトランスフォームとモーフをリ ンクさせることができる(エクスプレッ ションの一種) • これによりフェイシャルや関節変形の補 正にシェイプキーを利用することが楽に なっている • スクリプトやプラグインの支援なしにこ れらを実現できることは個人制作者や小 規模スタジオにとっては激しくありがた いことである。
  53. 53. #ue4fest#ue4fest Blenderのモーフとスカルプトモード • モーフの作成には当然スカ ルプトモードも利用できる • シェイプキーを作成し 「値」を1に設定してから スカルプトモードに入れば 良い • ハイディティールのモーフ も作成できるので映像分野 では特に便利 • アドオンでVATにも対応で きる。
  54. 54. #ue4fest#ue4fest Action Constraintについて • 左のGIFでキーを打っているのは spineとIKだけ • FootとToeはエクスプレッションで はなく、別のアクションをコンス トレイントで再生している • 一種のモーフターゲットの要領で 別のアクションをコンストレイン トとして利用できる
  55. 55. #ue4fest#ue4fest Action Constraintの使い方 • 足のボーンFootとToeに上記の3つ(任意)のキーを打ち動きを作成 • この動きを「foot」というアクションとして登録 • アクションコンストレイントを追加 • IKターゲットボーンのX回転(45度)でfootを再生させる
  56. 56. #ue4fest#ue4fest 基本機能検証 Blender to UE4でアセット制作
  57. 57. #ue4fest#ue4fest Blenderで作ったアセットをUE4で利用するために • スタティックメッシュでは何も問題なし • スケルタルメッシュでは経験と知識が必要。 • UE4はセンチが1単位→Blenderではメートルが1単位 • 座標系も違うのでスケルタルメッシュでは注意。 ※Blender側がすごい勢いで改良されているので1年後には解消されているかも…
  58. 58. #ue4fest#ue4fest UE4用スケルタルメッシュの座標軸とスケール調整 大前提としてUE4はZupのXfrontという特殊な座標系です。 BlenderはZupで-YがFrontという、ちょっと稀な座標系です。 左:正面図 右:上面図
  59. 59. #ue4fest#ue4fest スケルタルメッシュの座標軸とスケール調整 BlenderでFBXを出力 する際、設定が間違っ ているとrootボーンに 回転のトランスフォー ム 値 が 入 っ た 状 態 で UE4にインポートされ てしまう。
  60. 60. #ue4fest#ue4fest Armatureの名称とrootボーンの設置 UE4はFBXの情報として 「Armature」という名称 でスケルトンが存在し、最 初の階層に「root」ボーン があれば、UE4のrootボ ーンとして認識してくれる。 ※Armature.001というように修飾子がつくとダメです。ここ大事。
  61. 61. #ue4fest#ue4fest Armatureとメッシュのスケール合わせ メッシュはトランスフォームのスケールが1になるように設定する。 アーマチュア(スケルトン)は0.01(1/100)に設定する。
  62. 62. #ue4fest#ue4fest UE4用スケルタルメッシュのスケール設定手順 1. 通常の手順でアーマチュアとメッシュをスキニングする。 2. アーマチュアのスケールを100倍に巨大化(数値入力) 3. アーマチュアのスケールを適用(フリーズ)する 4. アーマチュアのスケールを0.01倍にする。(元の大きさに) 5. メッシュのスケールを適用する→スケールが1になる。 6. アーマチュアは0.01スケールのままでOK ※現在IUG社内でこの手順を自動化しようとしています。
  63. 63. #ue4fest#ue4fest Blender標準FBXエクスポーターの設定 FBX出力の際、rootボーンがワー ルド座標系でどこを向いているか? を指定する。BlenderはZupなの でプライマリにZ軸を指定し、セカ ンダリには正面から見たときの水平 軸になるX軸を設定すれば良い。 ※ここの設定がもう少し分かりやすければ…とは思いますが2.7xからの伝統です。 注意:タンジェントとスムージング(グループ)の説明は割愛します。
  64. 64. #ue4fest#ue4fest アドオンでこれらの設定を自動化することもできます! • BlenderからキャラクターをUE4に持って行くのが面倒! • スケール合わせもスケルタルメッシュでは「まだ」必要… • キャラクタアセットならAutoRigProでほぼ問題解決! • 総合的UE4アセットはBlender-For-UnrealEngine-Addons ※アドオンの個別紹介は後のスライドでも行います。
  65. 65. #ue4fest#ue4fest 機能検証3: 厳選!Blenderを拡張するアドオンたち
  66. 66. #ue4fest#ue4fest Animation nodes Blender2.7x時代から存在するノードベース アニメーションを実現するアドオン。非常に 強力なプロシージャルアニメーション環境を 実現。2.8対応は現在「試験的」だが、そこそ こ安定して使用できる。 https://github.com/JacquesLucke/animation_nodes/releases
  67. 67. #ue4fest#ue4fest ちょっとAnimation Nodes 1. 簡単なステージを用意。背景とライ トを置いたらメタボールをひとつ作 成して中央に配置 2. Animation nodesの専用エディタで ノードを追加。→Object Instancer 3. ノードでインスタンス数に20を入れ ると複製(インスタンス)が20個作 成される 4. Object Transform Outputを用意し ておく
  68. 68. #ue4fest#ue4fest もうちょっとAnimation Nodes 1. Vector Wiggleノードを追加 2. 各ノードをこんな風に接続 3. 結果↓
  69. 69. #ue4fest#ue4fest さらにもうちょっとAnimation Nodes ↑最終的なノード構成 • Time Infoノードを Evolutionに接続すれば アニメーション開始
  70. 70. #ue4fest#ue4fest Auto-Rig Pro 有償アドオン。IUGの人型キャラクタ制作を支え るアドオンと言って過言はない。UE4をはじめ、 ゲームエンジン向けの独自FBXエクスポーターを 搭載しており、めちゃくちゃ多機能。 作者による更新も恐ろしく活発で、2.8向けの新機 能の実装やバグFixも頻繁に行われている。 https://blendermarket.com/products/auto-rig-pro
  71. 71. #ue4fest#ue4fest Fluent 有償アドオン。主にハードサーフェース系のモデ リングを支援する、ブーリアン、配列複製、ベベ ル処理、法線制御などに特化したアドオン 。 これ単体で何かを作ることはあまりないが、モデ リング工程を合理化したり非破壊的にメッシュを 加工する強力なツール群となっている。 https://blendermarket.com/products/fluent
  72. 72. #ue4fest#ue4fest Meshmachine 有償アドオン。ハードサーフェースツールキット とキットバッシュモデリングのツールを統合した アドオン。Fluentと似た部分はあるが強力なブー リアン最適化機能やベベルエッジのコントロール、 ポリゴンフローの改善ツールなどが搭載されてい て手放せない。めっちゃ便利! https://blendermarket.com/products/MESHmachine
  73. 73. #ue4fest#ue4fest Curves To Mesh 有償アドオン。いわゆるカーブモデラーの機能を Blenderで実現するアドオン。標準でもベジェや NURBSは扱えるがこのアドオンがあればサーフェ ースモデラー並みの機能拡張が実現できる。カー ブからのメッシュ変換を最適化する機能更新がア ナウンスされている。 https://blendermarket.com/products/curves-to-mesh
  74. 74. #ue4fest#ue4fest Quick Draw 有償アドオン。グリースペンシルのストロークを 直接押し出したり、囲み領域をポリゴン化するこ とができる。ターゲットポリゴンのブーリアンに も対応しており、3Dコンセプトアート作成の高速 化を支援する。 https://blendermarket.com/products/quickdraw
  75. 75. #ue4fest#ue4fest Lazy Weight Tool 有償アドオン。3dsMax風の頂点ウエイト設定ツ ール。かゆいところに手が届く系。他のことはな にもできない代わりに低価格で必要十分な機能を 満たしている。便利なアドオンの見本。 https://blendermarket.com/products/lazy-weight-tool
  76. 76. #ue4fest#ue4fest 制作事例紹介: Blenderで UE4物理ビークルを作ってみよう。
  77. 77. #ue4fest#ue4fest 最近、社内制作でこれを作ったり…
  78. 78. #ue4fest#ue4fest こんな乗り物?を個人制作していました。
  79. 79. #ue4fest#ue4fest まず、UE4の物理ビークルについて
  80. 80. #ue4fest#ue4fest UE4物理ビークルはプラグイン機能です。
  81. 81. #ue4fest#ue4fest サンプルコンテンツは2種類用意されていて… 今回セットアップするサンドレーサーもサスペンションの仕様は この「青いクルマ」と基本的に同じ仕組みです。
  82. 82. #ue4fest#ue4fest UE4物理ビークルの「個人的な」感想:初見 • 良くある「物理的な挙動」のクルマ • そのままだと「あーアレ!」って感じ • あくまで「物理的な感じ」で、リアルとは言えない • 現実のパラメーターに縛られ過ぎで、それが爽快さを阻害 • 設定も色々面倒くさそうで、本気で触る気になれなかった…
  83. 83. #ue4fest#ue4fest UE4物理ビークルの「個人的な」感想:現在 • 実はセッティングを詰めると激しく面白くなる • 非物理なキャラクタアセットでは実現しづらい動きが可能 • 工夫すれば四輪車をベースに「見た目n輪車」もできそう • 設定できる項目が実車に基づいていて分かりやすい • 本気で触る機会があったので、かなり詰めて研究した! 超いーじゃん!
  84. 84. #ue4fest#ue4fest 超いーじゃん!
  85. 85. #ue4fest#ue4fest UE4の物理ビークルを作成する上でのポイント • 基本はBoxと円柱が4つ、あとは骨を入れれば動きます。 • ビークルの場合、XフロントでFBX出力する必要がある。 • サスペンションをきちんとセットアップするには知識が必要。 • 四輪車が基本。二輪車や多輪の場合は工夫が必要。
  86. 86. #ue4fest#ue4fest Unreal Festでデモになるアセットにしよう! 伝統的スーパーカー要素 マッチョなV8的要素 オフローダーがいいな! やっぱオーバーフェンダー
  87. 87. #ue4fest#ue4fest よし!モデリングしちゃう!!! 考えるより先に作っちゃう派なので、あっと言う間に試作の クルマ素体が積みあがっていく…若干迷走する…
  88. 88. #ue4fest#ue4fest うーん…だが…だがしかし 基本に戻って考えよう…
  89. 89. #ue4fest#ue4fest 脳内を整理する(あまり考えていない)
  90. 90. #ue4fest#ue4fest あっ…これ?この感じええんとちゃう?
  91. 91. #ue4fest#ue4fest ここで、実車だったら?という設計を考える。 • 駆動方式は四輪駆動(All Wheel Drive) • エンジン+電気モーターのハイブリッド型 • エンジンとモーターはリヤ・ミッドに搭載している。 • 過給機への冷気導入はフロントバルクヘッドのICで行う。 • 重たいバッテリーもフロントに搭載して重量バランスさせる。 • フロントサスペンションは変形ダブルウイッシュボーン • リヤサスペンションはストラット式
  92. 92. #ue4fest#ue4fest なぜ、そこまで考えるかというと… 現実に、こういうクルマの設計や走行イベントの主催に関わっていたからです。 ※2017年にお手伝いしたイベントでの撮影
  93. 93. #ue4fest#ue4fest 以上を踏まえて、詳細を モデリングしていきます。
  94. 94. #ue4fest#ue4fest できました。(土日の作業でした)
  95. 95. #ue4fest#ue4fest テクスチャ、よし!
  96. 96. #ue4fest#ue4fest ディティールチェック… あって良かったSubstance Painter
  97. 97. #ue4fest#ue4fest それでは、UE4でビークルとして 走れるようにボーンを組みます。
  98. 98. #ue4fest#ue4fest できました 寝ている間に無意識のうちにスケルトン完成!
  99. 99. #ue4fest#ue4fest 足回りだけにするとこんな
  100. 100. #ue4fest#ue4fest フロントサスペンション 見えない部分なのでドライブシャフトとタイロッドはオミットしました。
  101. 101. #ue4fest#ue4fest リヤサスペンション モデリング時もリグ入れ時も常にEeveeでルック確認できる!
  102. 102. #ue4fest#ue4fest 物理サスペンション・リグの設計 物理ホイールと表示用ホイールでボーンを別々に用意
  103. 103. #ue4fest#ue4fest 物理サスペンション・リグの設計:2 作例ではphys_wheelがレイキャストで上下動するので、そのチャイルドに lowerarm_targetボーンを設置し、ロワアームのボーンがそれをLook at(注視点)ノード で追跡することで円弧の動きを作り、ロッカーアームやハブの位置決めを行うことにした。
  104. 104. #ue4fest#ue4fest デザインアイディア:インナーホイールモーター 従来はホイールとタイヤが一体になって駆動方向に回転していたが、インナーホイール型の駆 動装置を想定するとホイールが駆動装置と操舵装置を兼ねるような設計が可能。一部のEVでは 実用化もされている。ハブ位置の自由度が向上するので近未来的なレイアウトが可能。
  105. 105. #ue4fest#ue4fest リアルタイム向けプロシージャルリグの特徴 • キーフレームアニメーションを使わないのでアニメーション用 コントローラーが不要(ぶっちゃけ骨だけあれば良い) • 動作を検証・確認する場合、DCC側ではコンストレイントの設 定だけを行う • UE4にはBlenderのコンストレイントは持って行けないので、 アニメーションBPで動作を再構築することになる
  106. 106. #ue4fest#ue4fest ダンパー(ショックアブソーバー)のウエイト ダンパーについては、上下にボーンを設置し同軸上に配置する。(分割して方向反転) その上で、フォーク部分とケース部分に1.0のウエイト値を設定してスキニングする。
  107. 107. #ue4fest#ue4fest 【重要】ビークルをFBX出力する 通常のキャラクターはBlender標準の-Yフロントのまま先述のFBX設定を行えば良いが、物理 ビークルの場合は+Xが前方になるようにアーマチュアの向きを変更する必要がある。
  108. 108. #ue4fest#ue4fest DCCツールからUE4ビークルを出力する際の注意 • 公式ドキュメント「ビークル(乗り物)アートの設定」 • https://docs.unrealengine.com/ja/Engine/Physics/Vehicles/VehicleConte ntCreation/index.html • ビークルのメッシュはX軸上に沿って正のX方向を向く • ジョイント(ボーン)もX軸が前方向(ロール)、Y軸が縦回転 (ピッチ)、Z軸が左右回転(ヨー)になるように設定する。
  109. 109. #ue4fest#ue4fest アーマチュア(スケルトン)の調整:1 キャラクターであれば、rootボーンは直立(Z軸に沿う)した状態が扱いやすいが、物理ビークル の場合はY軸に沿った状態で「寝かせる」と正常に動作する。 1. アーマチュアを回転 2. RootボーンをX90度回転 3. ロール角を0に
  110. 110. #ue4fest#ue4fest アーマチュア(スケルトン)の調整:2 左側のボーンはrootに合わせてロール角を0に。右側のボーンは-90を設定する。 なお、スケルタルメッシュのスケール合わせについてはキャラクタアセットと同様に行う。
  111. 111. #ue4fest#ue4fest FBX出力の設定(アーマチュアのタブ) BlenderからFBX出力する際のアマーチュアの項目にあるプライマリとセカンダリのボーン軸の設 定は、rootボーンがワールド座標でどこを向いているのか、を設定すれば良い。 • パーツの位置決めをするための非デフォームボーンが 大量にあるので「デフォームボーンのみ」を外す • プライマリボーン軸はrootボーンがY軸に沿っている のでYになる。 • セカンダリボーン軸はX • その他の設定は通常のキャラクタと同じ • UE4キャラクタ、UE4ビークルという風にオペレータ ープリセットを保存しておくと楽
  112. 112. #ue4fest#ue4fest ビークルFBXのUE4インポート 特に特別な設定はありません。 普通にFBXをD&Dすれば読み込める。 かんたん!
  113. 113. #ue4fest#ue4fest ビークル用スケルタルメッシュのインポート確認 • Rootボーンを選択してトラン スフォームを確認 • 左のスクショにある程度の誤 差は問題ない • 位置・回転は0、スケールは1 になっていること ←のスケルトンツリーで、グレー表示されているのは非デフォームボーン。物理ビーク ルではソケットが使えないようなので必要になる。
  114. 114. #ue4fest#ue4fest ここからはUE4でビークルを セットアップしていきます。
  115. 115. #ue4fest#ue4fest できました!
  116. 116. #ue4fest#ue4fest とばしすぎの スピード違反や!
  117. 117. #ue4fest#ue4fest 反省して手順を解説します。
  118. 118. #ue4fest#ue4fest UE4にビークルのスケルタルメッシュをインポート まずはスケルタルメッシュとして正しい状態になっているかをチェックし、 物理アセットについてはビークル用の設定を行わなければなりません。 • スケルタルメッシュ • スケルトン • 物理アセット ※なお「SKL_」や「PHYS_」はIUGのアセット命名規則に従っています。
  119. 119. #ue4fest#ue4fest 物理アセットをPhATでセットアップ この手順を間違えると物理ビークルは動かない
  120. 120. #ue4fest#ue4fest 物理アセットの設定は揺れモノと同じように行う • Rootの骨に物理アセットを作成 • Physics TypeはDefaultで • Angular Dampingを適時上げる • Inertia Tensor Scale超大事!
  121. 121. #ue4fest#ue4fest メッシュは見た目だけやりましょう いい感じにマテリアルを設定してください! マテリアルのネタは別の機会にじっくり やりましょう!
  122. 122. #ue4fest#ue4fest UE4ビークルアセットに必要なBPとデータ • タイヤデータ • Vehicle Wheel BP • ビークルアニメーションBP • Wheeled Vehicle Pawn (BP) ※物理ビークルは基本どれでも同じなのでサンプルコンテンツをDLすれば同じモノが用意されています。
  123. 123. #ue4fest#ue4fest 最もシンプルなビークルアニメBP とりあえずこれだけあれば動きます。 でも、せっかくなので…
  124. 124. #ue4fest#ue4fest 物理ビークルの動きはアニメーションBPで決まる! スケルタルのプロシージャルな動作はアニメBPで制御する。
  125. 125. #ue4fest#ue4fest ただし、使うノードはほぼ3つだけ! 物理ビークル専用のVehicle Anim Instanceが親クラスになります。 • 「Wheel Handler」が物理ビー クルのタイヤの動きを決定する。 • 「ボーンをコピー」で移動and or回転を別のボーンにコピーする。 • 「注視点(Look at)」でターゲ ットとなるボーンの方向にジョイ ントを「回転追尾」させる。 スケルトンの位置と親子関係(ツリー構造)さえ 適切なら、サスペンションのプロシージャルアニ メーションはこの3つのノードだけで作成できる。
  126. 126. #ue4fest#ue4fest 物理ビークルのサスペンション設定ガイド • 公式ドキュメント「ダブルウィッシュボーン式サスペンション」 • https://docs.unrealengine.com/ja/Engine/Physics/Vehicles/DoubleWishboneVehicle/index.html • 『つまり、表示される車輪とシミュレーションされた車輪は実 は全く別の 2 つオブジェクトであり、後者は全く表示しなくて もよいのです。』
  127. 127. #ue4fest#ue4fest シミュレーションタイヤと表示されるタイヤ • シミュレートされるタイヤは上下移動だけ行う(レイキャスト) • シミュレートされるタイヤは必ずしも表示する必要がない • リアルさを求めるビークルでは、表示されるタイヤはサスペンションに拘 束されて円弧の運動を行う • シミュレートされるタイヤ(phys_wheel)と表示用のタイヤ (vis_wheel)の位置をボーンのコピーとLook atで制御する。
  128. 128. #ue4fest#ue4fest ロジックを整理 物理ホイールが 回転・上下運動 Visホイールが物 理ホイールの回 転をコピー 物理ホイールにロ ワアームがLook at ロワアームの先端 でハブposが移動 ハブposの位置に ハブとvisホイール が移動コピー ハブがハブTarget をLook at ダンパー下部がダ ンパーposの位置 をコピー ダンパー上下がそ れぞれをLook at ※この物理ビークルを駆動しているのは表示されていない物理ホイールで、表示されているVisホイールはあくまでア ニメーションをプロシージャルに再生しているだけ。
  129. 129. #ue4fest#ue4fest 実際のアニムグラフ:1(全部見せ)
  130. 130. #ue4fest#ue4fest 実際のアニムグラフ:2 • たったこれだけ。超かんたん! • 制御する骨の数がちょっとだけ多いのでノ ードで参照する時間違えないように注意 • その他に物理で動く揺れモノなどがある場 合はRigid Bodyノードで制御する ■やろうと思ったけどやめておいたこと →速度で可変するリヤウイングのフラップや エアダムをやろうかと思ったのだけど、工期 の関係で今回は見送った。
  131. 131. #ue4fest#ue4fest Vehicle Wheel Blueprintで設定するもの • ホイール(タイヤ)の大き さと重量 • ステアリング操舵角度 • 縦と横のグリップ力 • 減衰力 • ブレーキング係数 • サスペンションストローク 実車を知っていれば分かりやすいが、知らな いとけっこう大変な設定作業になるかも…
  132. 132. #ue4fest#ue4fest Vehicle Wheel Blueprintの最重要ポイント • Lat Stiff Max Load • 速度に対する操舵応答性 • Lat Stiff Value • 横方向のタイヤグリップ力 • Long Stiff Value • 縦方向のタイヤグリップ力 ドキュメントを見ても分かりにくいが、だいたいこういう捉え方で設定ができる。
  133. 133. #ue4fest#ue4fest Tire Config(タイヤデータ)で設定するもの • タイヤのグリップ力 これだけです。 ただし、前後のタイヤに違うデータを持たせることができるので、こだわってもOK
  134. 134. #ue4fest#ue4fest Wheeled Vehicle Pawn (BP_SandRacer) • 基本的な構成はキャラクタBPと同じ • Movementコンポーネントが物理ビークル 専用のものになる。 • メッシュやカメラのコンポーネントは通常の Pawnやキャラクタと一緒 今回のデモ用アセットはサンプルコンテンツの中身を改造して作成
  135. 135. #ue4fest#ue4fest VehicleMovementコンポーネント:1 • エンジン出力(トルク)と回転数 • ディファレンシャル(差動装置) • 駆動方式(FF、FR、4WD) • トランスミッション(変速装置)のギヤ比 Mechanical Setup項目 • 欲を言えばLSD(差動制限装置)のトルクバイアスレシオだとかロック比 などを設定できると嬉しい。 • クラッチ強度の項目がちょっと繊細すぎる感じ • ギヤ比だけでなく段数が設定できればなお良い
  136. 136. #ue4fest#ue4fest VehicleMovementコンポーネント:2 • 速度に応じたハンドル切れ角 • ホイールとボーンの対応 • Vehicle Wheel Classの設定(参照) • 車体の重量やサイズの設定 • Deprecated Spring Offset Mode(重要) SteeringとVehicle Setup項目
  137. 137. #ue4fest#ue4fest BP_SandRacer:イベントグラフ1 インプットイベントからビークルを動かす。空中制御を加えました。
  138. 138. #ue4fest#ue4fest BP_SandRacer:イベントグラフ2 ハンドブレーキのインプットからスピンターン用の関数を追加
  139. 139. #ue4fest#ue4fest BP_SandRacer:関数「Air Control」 ビークルの空中制御用関数。通常だとメッシュコンポーネントに物理力を働 かせたくなるが、物理ビークルでは囲みにあるUpdate Primitiveに対して Angular Velocityを付加している。
  140. 140. #ue4fest#ue4fest BP_SandRacer:関数「Is Air Check」 なんの変哲もないレイキャスト。「body」のボーンが300単位なににも触 れていなければ「Is Air」のフラグを立てるだけ。関数はシンプルだが数値 が敏感すぎるとちょっとした跳ね上げでIs Air判定してしまうので注意。
  141. 141. #ue4fest#ue4fest BP_SandRacer:関数「Hand Brake Turn」 サイドブレーキターン(スピンターン)用関数。空中制御の関数と内容はほ ぼ一緒。DirectionZ(ヨー回転)だけに作用する。キモは最後のAngular Velocityを「in Radian(ラジアン)」で付加していること。 (360度=2πRad)
  142. 142. #ue4fest#ue4fest ビークルが暴れすぎるときは? みんな大好きInertia Tensor Scale(慣性量倍率)を調整。 タイヤやサスペンションをセッティングしているよりてっとり早くコーナ リングを落ち着かせたり、ドリフト風セッティングも可能
  143. 143. #ue4fest#ue4fest 以上がUE4ビークル制作の解説でした。 それでは物理ビークルの デモンストレーションをご覧ください。
  144. 144. #ue4fest#ue4fest
  145. 145. #ue4fest#ue4fest 今後の展望 • 四輪車だけではなく二輪車(バイク)も作りたい • Wheeled Vehicle Pawnは四輪車用のクラスなので、工夫をかなり行わ ないと二輪車やn輪車は実現できない。 じゃぁやろう!
  146. 146. #ue4fest#ue4fest BlenderでのPython
  147. 147. #ue4fest#ue4fest Blender 2.8でのPythonのバージョンは3.7.0 ほぼ最新バージョンのPythonが利用可能。 Blenderのインターフェースなどのガワ部分はほとんどPythonで記述され ており、C/C++部分はコア機能部分に留まっています。 逆を言えばビルドなしでありとあらゆる部分を変更可能。 BlenderでのPython
  148. 148. #ue4fest#ue4fest
  149. 149. #ue4fest#ue4fest 2.79bのPythonのバージョンは3.5.3。 2.80ではPythonのバージョンだけでなく、API自体も大きく変更されてお り、より合理的になっている分、過去のアドオンとの互換性がありません。 Blender 2.80: Python API Changes https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API 2.79までと2.80のPython
  150. 150. #ue4fest#ue4fest とりあえず使うまで
  151. 151. #ue4fest#ue4fest Scriptingタブを開いて、『+ 新規』ボタンでテキストを追加し、スクリプトを書く。 ファイルを追加する
  152. 152. #ue4fest#ue4fest 『スクリプト実行』から現在のスクリプトを実行。Alt+Pでショートカット可能。 スクリプトを実行
  153. 153. #ue4fest#ue4fest 別のDCCツールを使ったことがある人なら、おそらくすぐに慣れます。 値のデバッグ表示はシステムコンソールから確認。 APIをワンライナーで実行でするPythonコンソールもあります。 Python使いならすぐに慣れる
  154. 154. #ue4fest#ue4fest IUG内でもいくつかの既存アドオンを2.80に対応させています。 Vertex Animation Texture https://github.com/t-sumisaki/unreal_tools/tree/dev_blender280 ネットのリソースも参考に、独自でカスタマイズしています。 Blender 2.79 のスクリプトを 2.80 にアップデートする https://dskjal.com/blender/script-279-to-280.html 既存アドオンの2.80対応
  155. 155. #ue4fest#ue4fest Blenderのライセンス
  156. 156. #ue4fest#ue4fest 企業で扱う上で非常に厄介なGNU Public License Version 3。 じゃあ作ったアセットも全てGPLだから公開? いいえ、違います。 BlenderのライセンスはGPL v3
  157. 157. #ue4fest#ue4fest GPLの効果があるのはあくまでもソフト側。 そこで作ったアセットに対しては一切制限がありません。 ただし作成したアセットに別のライセンスが含まれているような場合、そ ちらの影響を受ける可能性はあります。 Blender is released under the GNU General Public License https://www.blender.org/about/license/ あくまでもソフトウェアに対して
  158. 158. #ue4fest#ue4fest ただし、スクリプトやアドオンは別。 Blender Python APIを利用した時点でGPLが強制されます。 公開するスクリプトコードは必ずGPLにしておく必要があります。 有料販売する場合、DL販売に限定され、必ずコードを含むようにします。 Sharing or selling Blender add-ons (Python scripts) https://www.blender.org/about/license/ スクリプトやアドオン
  159. 159. #ue4fest#ue4fest いいえ。 内々で作成されたスクリプトはGPLでも公開する必要はありません。 判断材料はパブリックに公開されているものかで、異なります。 仕事の中で作成したものは公開の義務はありませんので、安心して作成し たものを利用しましょう。 公開した場合は必ずGPLを付与しておきましょう。 作ったものは必ず公開?
  160. 160. #ue4fest#ue4fest Blender to Unreal Exporter 面倒な設定をせずにワンボタンでUE4へインポート! BlenderからUE4へのトライ&エラーを高速化。 IUG内でも独自のアドオン開発中!
  161. 161. #ue4fest#ue4fest BlenderとUE4をリアルタイムに繋ぐ、Live Link機能 まだまだ検証段階。出来ればやってみたい。 UE4側に機能は用意されているので、仕組み上は可能なはず。 Live Link プラグイン https://docs.unrealengine.com/ja/Engine/Animation/LiveLinkPlugin/index.html 最終目標
  162. 162. #ue4fest#ue4fest BlenderマテリアルをUE4上で再現 PBRマテリアルをそのまま持っていけるようにしたい。 FBXにはPBRの情報がないので、独自フォーマットが必要。 glTFベース? まだglTFがUE4では上手く扱えないため、もう少し時間がかかりそう。 最終目標2
  163. 163. #ue4fest#ue4fest いいもの出来たら公開したい! GitHubから誰でもアクセスできるようにする。 特にワークフロー改善は多くの人にとって有用。 UE4もBlenderもコミュニティの善意で成り立っているものが多い。 少しでもコミュニティに貢献したいです。 最終目標3
  164. 164. #ue4fest#ue4fest UE4とBlenderを使うことで、ランニングコストが抑えられる! 導入のハードルは非常に低く、どちらも無料で使える! 別のDCCツールはサブスクで必要なだけを確保し、基本的にBlenderでも 可能な部分は全てBlenderでなんとかする。 浮いたコストは別の部分へ投資!(できればみんなのお給料へ) まとめ
  165. 165. #ue4fest#ue4fest Blenderコミュニティは非常に活発。 開発者との距離が近く、問題があれば報告することで解決することも多い。 2.8で非常にフレンドリーとなったので、キーマップ含め、他のDCCツール からの移行もしやすくなっています。 Eevee、グリースペンシルなど先進的な機能が盛り沢山! まとめ2
  166. 166. #ue4fest#ue4fest Blender 2.8のPythonは最新バージョンの3.7.0。 Pythonを他のDCCツールで書いたことのある人ならすぐに慣れる。 2.79bとはBlender Python APIが色々と変わっているので、修正が必須。 ライセンスはGPLだが、必ずしも公開は必須ではない。 まとめ3
  167. 167. #ue4fest#ue4fest UE4とBlender 相性はとてもいいので、 ぜひ使っていきましょう!
  168. 168. #ue4fest#ue4fest ご清聴ありがとうございました!

×