Engineの簡単なゲーム開発を学んできました。セミナーでPC忘れましたけど。内容は忘れないようにメモ。・知らなかったこと・気になったこと・あとで思い出したいこと・スライドの追加説明などです。ゲームを開発したい人はスライドを見て下さい。・ハイエンドとスケーラブルな3D・2Dの違いについて以下の2つが主な違いとなる。Blur(モーションブラー)についてカメラで撮影したとき、動く物体がブレる現象のこと。Adaptation)について暗闇から光の強い空間にでると目が少しずつ慣れて、周辺が見やすくなるという現象のこと。docs.unrealengine.com2・Anti-Aliasing(アンチエイリアス)について描画されているものが微妙に尖っていたり、ジャギジャギがでているものに対して滑らかに見えるように処理を加えること。NVIDIA,独自のアンチエイリアシング技法「FXAA」「TXAA」をアピール。UE4のアンチエイリアス比較。オリジナルサイズは以下から。FXAAとTemporalAA(TXAA)に関しては以下の記事に詳しく。2014FPSの表示方法ノード名(英語または日本語)の変更についてUE4.8よりノード名が英語と日本語が選択できるようになったとのこと。Pins』のチェックを外す。『デスクトップ/コンソール』→『モバイル/タブレット』にした場合、マウス入力がタッチ扱い』になっている。Touch』のチェックを外す。これで入力が『デスクトップ/コンソール』を選んだ時と同様のものになる。「ビルド」することで消すことができる。画面が緑色になってしまう対処方法アウトライナから「SphereReflectionCapture」を削除する。※FPSが上がっているのは、「動作が重い対処方法」をした後のため。docs.unrealengine.com動作が重い対処方法FPSが10以下になってしまい、画面が緑色になってしまうので、対処する。描画が一気に軽くなる。なってしまうために動的影がなくなる。一部マテリアルの互換がなくなってしまうため、たまに見た目がおかしくなってしまう。『ParticleSystem』コンポーネント『ProjectileMovement』コンポーネント・「コンポーネント」についてコンポーネントとは既に1つ以上の機能を持った、ブループリントクラスに追加できる汎用パーツのこと。生まれた瞬間に設定された速度で飛び出していくということ。「ProjectileMovement」=「発射物の移動」となる。docs.unrealengine.comマテリアルの項目がないときの対処方法コンパイルしたら、表示されるようになる。一度、ウィンドウを閉じてから開き直すと反映されている。炎(Particle)が表示されないときの対処方法ツールバーの「設定」→「エンジンの拡張機能設定」レンダリングの品質を選択できる。(品質は「低」から「Epic」まで選択出来る。Epicが最高画質)「エディタパフォーマンスをモニタリングしますか?」のチェックを外す。エンジンの拡張機能についてレンダリングの品質を簡単に変更できる。敵側の当たり判定について・「OnComponentBeginOverlap(CapsuleComponent)」についてCapsuleComponent(つまりEnemyCharacter)と何かが重なると、その実行ピン(白いピン)につながるノードを実行するイベントノードのこと。PlayerShotWeapon」についてこのブループリント(EnemyCharacterのブループリント)にはないアクタ(この場合、PlayerShotWeapon)のための変数や関数を呼び出して使用する時に使うもの。エミッタは、パーティクル(粒子状のもの)を発生させるもの。爆発のエフェクトが得られる。Locationは、アクタの位置を取得する関数。Target(対象)が「self」になっているため、このブループリントの主である「EnemyCharacter」が対象となる。Location」に供給している。Span関数を使用することによって、アクタ(Target)に生存期間を設定することができる。設定期間が終わると、Destroy()がアクタ上に自動的に呼び出される。「設定期間が終わるとDestroy()がアクタ上に自動的に呼び出される」というようなランタイムシステムは、アクタの最初の位置と回転を設定する必要がある。Location」でアクタの位置を取得している。Span」は、EnemyCharacter(Target)を0.2秒後に破壊する。docs.unrealengine.comアクタのライフサイクルのイメージは、ロードされ、存在し、やがてレベルにアンロードされ、破壊されるもの。ナビゲーションメッシュについてアクタに通ることができるところを示すもの。「p」キーで表示切替。流れが複雑になりがちなAIをスッキリとさせることができるようになる。ビヘイビアツリーは以下の要素で構成されている。Play」についてイベントを開始するためのノードのこと。アクタがワールド内で破壊されると、このイベントが実行されます。Tree」についてBTAssetで設定したビヘイビアツリー(EnemyBT)が使えるようになる。ブラックボードについて各ノード間で受け渡しが可能な変数を保持するためのデータアセット。キャラクターのターゲットとなるアクターや座標などを保持することができ、タスクなどの各ノードに受け渡すことができる。AIにとっての記憶領域(メモリー)にあたる部分のこと。今回のキー(TargetPoint)は、AIが移動する際に使用する移動対象地点となる。タスクについて実際にキャラクターに対して処理を行うノード。このノードによってキャラクターを指定の場所へ動かしたり、止めたりできる。再利用性を高めていけば様々な状況に対応するAIが作れる。Execute」は、このTaskに入った際に1度だけ呼び出される。Execute」で終了となる。Execute」が呼ばれない。完了すると「Success」を返し、次のタスクへ遷移する。タスクはその繰り返し。Vector」に供給している。Vector」についてKey(TargetPoint)に、Value(PlayerCharacterの位置)をBlackboardに書き込む。ルートについてビヘイビアツリーの実行開始ノードのこと。各ビヘイビアツリーに必ず一つのみ存在し、ツリー構造での根ノードに当たる。コンポジットについてSelectorノードやSequenceノードなど、ツリー構造でのブランチの実行ルートを制御するノードのこと。以下の1~3を繰り返す。Movementコンポーネントのあるポーンを、NavMeshを使ってベクターブラックボードキーへ移動させる。・「Wait」ノードについてビヘイビアツリーは、待ち時間が終わるまで、このノード上で待機する。Objectピンに供給されるオブジェクトを「PlayerCharacter」という型にキャストする。この「Object」が「PlayerCharacter」という特定の型であるかどうかを、まずチェックする。Failed(キャストの失敗)となる。ThirdPersonCharactorの変数やプロパティや関数にアクセスすることができる。PlayerCharacter型であることが確認できたら「ReturnNode」する。Point」変数の値を渡す。docs.unrealengine.comまたは、ニコニコ動画で分かりやすい説明があった。