開発備忘録【Unreal Engine 4 編】 Part 1


≪ 前のPart ≫          ≪ 目次 ≫          ≪ 次のPart ≫


おはこんばんちわ。大原です。
では、今回から参考書のサンプルを制作していきます。

開発方法
グレーボクシング と相性の良いBSP
続きを読む

虎参備忘録~輪講編‐002~

 

今回の輪講は前回の続きと前回の内容をセンサー(トリガーボックス)で実装したいと思います。

 

 

今回は、床を開閉式の落とし穴にしたいと思います。

前回とは別の床を選んでクラスブループリント化し、編集画面を開きます。 床のムーバブルは忘れずに。

落とし穴などはトリガーで感知するタイプのほうがいいとは思いますが今回は[Tick]で実装します。 前回の分はトリガーで作り直すのでそれを参考に考えてみてください。

 

[TimeLine]を設置し、トラックを作成します。 今回はfloot trackを追加します。

時間の長さは各自お任せ、高さは-90で下図のような形に作ってください。 最後にループのチェックを忘れずに。 画像はクリックでの表示推奨です。

資料011

続きを読む

虎参備忘録~輪講編‐001~

 

今回の輪講はブループリントでタイムラインを中心に行いたいと思います。今日は途中まで行い、続きは木曜です。

二回通しての目標は横スクロールのサンプルを使用して様々なゲームっぽいギミックを追加することです。

まずはサンプルの2D Slide scrollerを作成してください。 使っていたサンプルがあるならそれでもかまいません。

 

準備ができたなら、新しいレベルを作成します。

新しいレベルを作成したらフォルダを適当に作って、そこに名前を付けて保存します。

次に、次回もこのレベルは使うので、今作ったレベルをエディター起動時に開くレベルとゲーム実行時に最初に呼び出されるレベルに設定します。

資料001

上の画像の場所を開き、下の画像のように行います。 下のほうは見難いと思うのでクリックして大きい画像を表示してください。

資料002

赤の①、②の順にクリックし、先ほど名前を付けて保存したレベルを選択します。 同じように一つ下の欄も行いましょう。

それぞれ上がゲーム開始時、下がエディター起動時の設定です。

変更した後に設定を保存する、なんてボタンはないのでそのまま設定画面は閉じてください。

続きを読む

虎参備忘録~UE4編‐006~

英語版を基準に書いています

箇条書き注意

UE4@5/16-ペーパーニンジャを作る(10章残り)

 


Project Setting > Maps & ModesのDefault Modes > Default GameModeでゲームモードの標準設定がいじれる


Blueprint Editorを開きAdd ComponentからCamera及びSpring Armを追加する

CameraSpring Armにドラッグ&ドロップで親子付けする

Spring ArmのCamera > Target Arm Lengthにプレイヤーとカメラとの距離を入力する

あとはカメラの角度を変えたり、Spring Armをバネのままかただの棒にするかなどを設定する


続きを読む

[UE4]プロトタイピングについてお勉強 Part6

今日からはUnreal Engine 4で極めるゲーム開発:サンプルデータと動画で学ぶUE4ゲーム制作プロジェクトの第8章 「スタティックメッシュを配置する」から勉強していきます!

  • ブラシをブロッキングボリュームに変換する
     [レベル]パネルで[PNStage01_BG]をダブルクリックし、「現在のレベル」に設定
      ↓
     ビューポートまたは[ワールドアウトライナ]パネルで[PlatformBrush]を選択し、[詳細]パネルの[Actor]カテゴリで[Convert Actor]をクリックし、サブメニューから[BlookingVolume]を指定

上記の操作で[PlatformBrush]が、「見えないコリジョン」である「ブロッキングボリューム」に変換されます。
床は姿を消したが、緑で示されてるナビゲーションメッシュの範囲は変化していないので、目には見えないものの「ゲームの床」として機能していることがわかります。

  • ブロッキングボリュームの内側にメッシュを敷き詰める
     [レベル]パネルで[PNStage01_SM]をダブルクリックして、「現在のレベル」に設定([PNStage01_GB]の右横にある南京錠のアイコンをクリックして、鍵をかけると、[PNStage01_GB]をうっかり操作してしまう心配なく、[PNStage01_SM]の編集ができます)
      ↓
     キーボードショートカット[P]を押して一旦ナビメッシュの表示を消します
      ↓
     コンテンツブラウザに移動し、インポートした床アセットをビューポートにドラッグ&ドロップし、三面図をうまく使って、ブロッキングボリュームの左下端に合わせる
      ↓
     床材を複製移動させます。[移動ツール]アイコンをクリックするか、キーボードショートカット[W]を押して、移動ツールに切り替え、[Alt]キーを押しながらドラッグします
      ↓
     [Ctrl]キーを押しながら、選択されてないアクタを選択し、[Alt]キーを押しながらドラッグすると、複数のアクタを複製移動させることができます
      ↓
     [Shift]キーを押しながらドラッグすると、移動させているアクタをカメラが追従します。([Alt]と同時押しでも可)
      ↓
     残りは上面図で作業します。ドラッグで矩形選択ができるマーキー機能を使って、端の4つの床材を選択します
      ↓
     [Alt]キーを押しながら移動させるコピー移動を繰り返して、端まで配置します

  • メッシュを回転させる
     [回転ツール]アイコンをクリックするか、ショートカット[E]キーを押して、回転ツールに切り替える
      ↓
     アクタを選択し、回転ウィジェットをドラッグし、ヨー回転をかける
      ↓
     たくさんのアクタをまとめて回転させるには、マーキーを使用します
     (余計なアクタを選択しないように、[ワールドアウトライナ]パネルで、[RecastNavMesh-Default]の左横にある目玉アイコンをクリックして、エディタ上非表示にします)
      ↓
     上面図でドラッグして、スタート地点付近の床材を一括選択します([PNStage01_GB]はロック中のため、マーキーの範囲に[PNStage01_GB]のアクタが含まれていても選択されません)
      ↓
     複数選択した状態で回転ウィジェットをドラッグすると、選択したアクタすべてをひとつのピボットで回転させていまうので、[詳細]パネルの[トランスフォーム]→[回転]で角度を入力して回転させます
      ↓
     [ワールドアウトライナ]で、[RecastNavMesh-Default]の目玉アイコンをクリックして、再び可視状態にします
      ↓
     ショートカット[P]キーで、ナビメッシュの状況を確認し、特に破壊された感触がなければここまでの作業は完了です
     (再び[P]キーを押して、ナビメッシュを非表示しておきましょう)

今日はここで失礼させていただきます!

次回は

8章の続き「フォルダ機能を使う」

から勉強します!!

UE4のお勉強をしましょ。 part4なのね

こんにちは。今回はレベルストリーミングをやりました。

レベルストリーミング

ゲームプレイ中にまだ読み込んでいないエリアを裏で読み込む機能。これを使えば、広いマップを分割して少しずつ読み込みながらプレイすることができるよ。こうすれば、ロード時間を短く感じさせ、メモリを節約することも出来る利点があるの。

さらに、レベルストリーミング機能は、レベルエディタ上で複数人で作業分担する目的でも使われるよ。

サブレベルを追加するとパーシスタントレベルの子階層として追加される。

パーシスタントレベル

現在レベルエディタに読み込んでいるレベルのこと。サブレベルと異なりアンロードはできない。別のパーシスタントレベルに切り替えるまで永続的に存在する。サブレベルの裏読み/読み捨てを管理したり、複数のサブレベルから共通で使用する芥を配置する時に使う。

Zファイト

マップの所々に黒い染みのようなものが浮かび、レベルエディタ上で視点を動かすとチラつきが起こる状態。パーツを組み合わせていく方式ならではの問題。Zファイトは現実世界のような物理的制約がないため、物体に物体を侵入させて設置してしまうことで起こる現象。

今日はこれでおわり。

虎参備忘録~UE4編‐005~

英語版を基準に書いています

箇条書き注意

UE4@5/13-ペーパーニンジャを作る(8章残り)

 


Window>Layersからレイヤウィンドウが出せる

Shift + Eで選択したものと同じアクタを全選択できる

Zファイトを防ぐにはスケーリングを変える

Ctrl + Gでグループ化/解除を行える


 

続きを読む

[UE4]プロトタイピングについてお勉強 Part5

今日からはUnreal Engine 4で極めるゲーム開発:サンプルデータと動画で学ぶUE4ゲーム制作プロジェクトの第8章 「初めてのレベルストリーム」から勉強していきます!

※レベルストリーミング・・・UE4にあるゲームプレイ中に、まだ読み込んでいないエリアを裏読みする機能。(広いエリアをサブレベルに分割して、少しづつ読み込みながらゲームプレイを展開していく事が可能)

  • サブレベルを追加する
     メニューバーで[ウィンドウ]→[レベル]と操作し、[レベル]ウィンドウを表示
      ↓
     新しいサブレベルを作り追加するために、[レベル]パネルで[レベル]をクリックし、サブメニューから[新規作成]を選択
      ↓
    [新規レベル]のダイアログが開いたら、[コンテンツ]→[Maps]→[Stage01]のパスに[PNStage01_GB_SM]という名前のサブレベルを追加([レベル]ウィンドウの「レベル」に新規作成した2つのレベルが[バーシスタントレベル]の子階層として追加されているはずです)

  • アクタをレベル間で移動させる
     ※移動の結果をわかりやすくするために、サブレベルに所属しているアクタ数を可視化する設定を行います
      [レベル]パネルの右下にある「表示オプション」をクリックし、サブメニューの[アクタ数を表示]にチェックをいれます。

 [ワールドアウトライナ]パネルに切り替えて、[AtmosphericFog]から[SlopeBrush]までを一括選択
  ↓
 [レベル]パネルに切り替え[PNStage01_GB]を右クリックし、[選択アクタをこのレベルへ移動]を選択
  ↓
 [PNStage01_GB]のアクタ数が増えていれば、アクタの移動に成功していることになります

  • ストリームメソッド
     [プレイ]ボタンを押してゲームを実行すると、エディット中に存在したメッシュがすべて消え、真っ暗な画面が表示され、[レベル]パネルを見てみると、エディット中は左脇に開眼アイコンがついてたはずですが、まぶたを閉じたアイコンに変わっています。これは、目を閉じたアイコンのサブレベルが”読み込まれていない”ことを示します。

 この原因を解決するため、サブレベルが常時ロードされた状態になるように、設定を変更します。

 [レベル]パネルで、サブレベルの[PNStage01_GB]を右クリックし、サブメニューから[ストリーミング方法を変更]→[常にロード済み]を選択
  ↓
 同じくサブレベル[PNStage01_SM]のストリーミング方法を[常にロード済み]に切り替えます

[プレイ]ボタンを押してテストプレイすると、きちんと背景が表示されているはずです。

 
 レベルストリーミング機能は、もともとは広大な広大なレベルを分割読みするための機能なので、サブレベルごとに、裏読み(ストリーミング)を開始するタイミングを設定することが可能です(設定は2種類あり、「常にロード済み」と スクリプトでタイミングを指定する ものがあります)

次回は

8章「スタティックメッシュを配置する」

から勉強します!

虎参備忘録~UE4編‐004~

英語版を基準に書いています

箇条書き注意

UE4@5/09-ペーパーニンジャを作る(8章残り)

 


レベルストリーミングに合わせて、サブレベルのロードタイミングを変えることができる


DetailsのActor>Convert Actorから対象を変換できる

BlockingVolumeに変えると見えないコリジョンとなる


Alt + ドラッグで増やす時にShiftを押しながら実行するとカメラが追従する


ModesのVolumes>Blocking Volumeで一からBlockingVolumeを作ることができる


編集・執筆 小栗  悟

UE4のお勉強をしましょ。 part3なのね

こんにちは。今日はメッシングをやりました。

メッシングとはなんなの?

グレーボックスのBPSブラシとかを本番のメッシュに置き換える工程のこと。

しかし、グレーボックスを削除してメッシュで置き換えをするとゲームを破壊してしまうことがよくあるの。それは本番のアセットはBPSブラシより複雑で現実的な形をしていて、グレーボックスの形状より出っ張ったり、引っ込んだりするからなの。

なんで形が複雑になると破壊してしまうの?

 

例)AIで遊ぶゲームの場合

ちょっと道が狭くなるだけでも移動ルートの判断や戦術が変わり想定していた敵の動きと変わってしまう

 

例のようにAIを使ったゲームではよくナビメッシュ(ナビゲーションメッシュ)でAIが移動可能な領域を判断しているの。でもメッシングするとナビメッシュの破壊が起こることがあるの。これがゲームの破壊につながるの。だからナビメッシュはメッシングの前後で一切変化させたくないのよ。

じゃあ、ナビメッシュをメッシングの前後で変化させないためにはどうするのがいいの?

グレーボックスを削除しないで不可視にして残しておくの。そしてキャラとのあたり判定はこの「不可視の壁」側(ブロッキングボリューム)でとるように設定しておいて、メッシングで追加するメッシュはキャラと当らないコリジョン設定をする。そうすれば移動範囲が変わることはないの。

今日はこれでおわり。次はレベルストリームかな?