チュートリアル / 3ds Max & UnrealEngine4で建築ビジュアライゼーション ~データフォーマットDatasmithを使ったワークフロー~
第9回:ゲームモードで歩き回ろう
- 3ds Max
- VR
- コラム
- チュートリアル
- 中級者
- 学生・初心者
- 建築・製造・広告
こんにちは、スタジオ・デジタルプラスの磯野です。
前回はUnreal Engine 4 のシーケンサーを使い簡単なムービーを作りました。
今回はパッケージングに向け、ゲームモードを作成し空間を歩き回れるようにしましょう。
Unreal Engine 4 のバージョンは4.21を使用していきます。
ゲームモードを作る
プレイを開始すると、動画のように自分で操作しながら空間内を歩き回れるようゲームモードを作ります。
今回作るゲームモードの操作方法はキーボードとマウスで行います。
前進 | W |
後退 | S |
右移動 | D |
左移動 | A |
目線移動 | マウスのX軸(左右に動かす) |
では、始めましょう。
時間短縮のため、一からゲームモードを作成するのはではなく、コンテンツパックを利用します。
「コンテンツブラウザ」の「新規追加」から「機能またはコンテンツパックを追加」を選択。
「プロジェクトにコンテンツを追加」というウィンドウが出てきます。
「サードパーソン」を選び「+プロジェクトに追加」をクリック。
サードパーソンを追加したら、これを変更していきます。
00:05 追加したサードパーソンのフォルダ「ThirdPersonBP」の「Blueprints」フォルダを開き、右クリックか ら「ブループリントクラス」を選択。
00:11 ブループリントクラスをクリックすると「親クラスを選択」というウィンドウが出てきます。
00:14 下にある「すべてのクラス」の検索に【archvischaracter】と入力(archでも出てきます)
00:21 検索結果で出てきた「ArchVisCharacter」を選択。
00:29 ブループリントクラスの名前を入力(ここでは〔MyArchVisChara〕とします)
作った〔MyArchVisChara〕をダブルクリックで開きます。
左上の「コンポーネントを追加」から「Camera」を選択。
ここで一度コンパイルします。
次は「ワールドセッティグ」の設定をします。
「ワールドセッティグ」が画面に出ていない時は「メニューバー」の「ウィンドウ」から表示できます。
ワールドセッティグが表示できたらゲームモードを設定します。
00:00 ワールドセッティングのGameMode/GameMode Overrideを「ThirdPersonGameMode」に指定
00:10 Default Pawn Classを先程作った〔MyArchVisChara〕に変更
これでプレイすると〔MyArchVisChara〕でプレイできるようになります。
00:24 実際にプレイします
プレイすると、床を突き抜けてしまいました。
次は、床や壁を突き抜けてしまわないように、コリジョン(衝突)を設定していきます。
コリジョンを作成する
まず現状のプレイヤーに対してのコリジョンを確認してみましょう。
ビューポートの「ライティング」をクリックし「Player Collision」を選択。
これをみると、建物にはコリジョンが無い事がわかります。
では、床や壁にコリジョンをつけていきます。
コリジョンを追加
床のStaticMeshActorを選択し、「詳細パネル」から「StaticMesh」をダブルクリックで開きます。
開いたらコリジョンを追加します
メニューバーの「コリジョン」から「ボックス単純化コリジョンを追加」を選択。
床のStaticMeshにコリジョンが追加されました(グリーンのフレームで表示されます)
このままでは床の上にコリジョンが作られることになるので、Pivotアイコン(XYZ軸)をZ軸を下げて床と合わせます。
保存して、プレイしてみます。
床を突き抜ける事は無くなりました。
この方法で壁にもコリジョンを作成しましょう。
今回は、プレイヤーが壁を突き抜けたりしないようにする為のコリジョンなので、メッシュに対して正確にコリジョンをつける必要はありません。
00:39 コリジョンボックスをCtrlを押しながら移動させると複製できます。
コリジョンメニューから再度「ボックス単純化コリジョンを追加」でも増やすことができます。
01:24 今回プレイヤーがジャンプしたりする事は無いので、ドア上部のコリジョンは無くても良いです。
UseComplexAsSimple
少し複雑な形状の物にコリジョンをつけます。階段を例にやってみましょう。
この階段のスタティクメッシュの形状をそのままコリジョンに設定することができます。
※この方法は、オブジェクトの面を使用して作られるコリジョンのため負荷が高いです。
スタティクメッシュを開き、「詳細パネル」の「コリジョン」にある「Collision Complexity」を「Use Complex Collision As Simple」に変更。
すると、メッシュと同じ形状のコリジョンが適用されました。
コリジョンの確認はツールバーにある「コリジョン」で確認できます。
一旦、プレイヤーコリジョンを表示して見てみます。
床と壁にコリジョンがつきました。
家具や2Fへの階段も同じ方法でコリジョンを作成したら完成です。
AutoConvexCollision
今回必要はありませんが、スタンドライトのコリジョンに自動で凸型コリジョンを生成してくれる「オートコンベックスコリジョン」(AutoConvexCollision)を使います。
00:00 スタンドライトのメッシュを開き、メニューバーから「コリジョン」の「オートコンベックスコリジョン」を選択。画面に「凸型分解」というウィンドウが出てきます。
00:13 一旦「適用」して、上手くいかなければ数値を変更して再度「適用」してみてください。
00:17 自動で凸型コリジョンが生成されました。
ここまではUnreal Engine4でコリジョンを作成する方法をご紹介しました。
コリジョンは事前に3ds Maxで作成する事もできますが、ここでご紹介するのは割愛させていただきます。
詳細は、Unreal Engine 4 公式のONLINE LEARNINGで紹介されていますので、そちらをご覧ください。Epic Gamesアカウントを取得すればどなたでも閲覧できます。
DATASMITH PIPELINE(コリジョンについてはClassStructureの15.0:Collisionにて紹介されています。日本語字幕付。)
コリジョンが作成できましたので、プレイしてみます。
プレイヤーのスタート位置はレベル上にある「Player Start」を移動させてください。
ブルーの矢印が指している方向が進行方向になります。
プレイヤーの目線が低いですね、スピードや登れる高さ等も調整しないといけませんね。
前半で作った〔MyArchVisChara〕から変更していきます。
キャラクターを調整
まずはキャラクターのカプセルを変更します。このカプセルが作ったコリジョンに衝突します。
〔MyArchVisChara〕を開き「ビューポート」を表示してカプセルをクリック。(青枠のコンポーネントからも選択できます)
「詳細パネル」にある「Shape」の「Capsule Half Height」を【80】にします。
カメラの位置もこのままだと低いので、変更します。
ビューポートまたはコンポーネントから「camera」を選択。
「詳細パネル」の「トランスフォーム」にある「位置」のZ値を【70】に。
次に、キャラクターの移動速度などを変更します。
ビューポートまたはコンポーネントから「Character Movement」を選択。
「詳細パネル」を変更。今回は以下のようにしました。
この状態でもプレイして歩き回れますが、今回は「キーボード」と「マウスのX軸」だけでキャラクターを操作するので、「マウスのY軸」は使わないように設定します。
「メニューバー」から「編集」の「プロジェクト設定」を開きます。
「プロジェクト設定」の「インプット」を選択し、「Axis Mapping」の「Look Up」「マウスのY軸」を削除します。
プレイしてみましょう。
今回はゲームモードとコリジョンを作り、プレイできるところまで出来ました。
次回は、プレイ中にドアを開け閉めしたり、シーリングファンを回したり等のブループリントを組んでいく予定です。
最後まで読んでいただきありがとうございました。