凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

| PAGE-SELECT | NEXT

≫ EDIT

UE4 Game Mode と Game Mode Base について(Game Mode、Game Mode Base、Get Game Mode)

「Game Instance」について調べていて、「Game Mode」なるものを見つけました。

こちらですね。

・GameMode、GameInstanceなどの違いについて
http://imoue.hatenablog.com/entry/2016/05/24/223150

GameMode マップ切り替えまで レベルごとに1つ サーバーにだけ存在 プロジェクトのデフォルトとは別にレベルごとの設定も出来る


あまり「Game Mode」の使い方がわかっていないのですが
バージョンが更新され「Game Mode」「Game Mode Base」というものに分離されたようです。
この更新によって、「Game Mode」の扱いが少し変わったみたいですね。

「Game Mode」と「Game Mode Base」の違いについてはこちらに詳しく書いてありました。

・UE4 Game ModeとGame Mode Baseの違いについて
http://unrealengine.hatenablog.com/entry/2017/01/30/220000

Get Game Modeで取得できるのはGame Mode Baseクラス
表題の通り、問題は"Get Game Mode"ノードを使った時です。4.13以前はこのノードで"Game Mode"クラスのリファレンスを取得できました。が、4.14からは"Game Mode Base"のリファレンスになっています。

これが扱いとしては一番あれ?ってなるところですね。

実際こんな感じのことが自分の方でもありました。

原因としては今まで「Get Game Mode」が「Game Mode」を返していたのに
今は「Game Mode Base」を返すようになったので、実行できないノードがあったようです。

というわけで、解決法としては「Game Mode」を継承した「Game Mode」クラスを作成し、
継承したクラスにキャストしてから実行する。といったもののようです。

よく使うクラスに存在する「Game Mode Base」ではなく、
「Game Mode」クラスを継承
して新しい「Game Mode」クラスを作成しましょう。
GameMode000.png

そうすると、「Get Game Mode」で取得した「Game Mode」をキャストすることができ、
「Game Mode」を入力に使ったノード(今回は Restart Game ノード)を実行することができます。
GameMode001.png

「Game Mode」自体まだまだ理解できてないので、徐々に理解していきたいですね。
スポンサーサイト

| UE4 | 16:09 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 データやパラメータなどの値をレベルを変更しても保持して扱う(Game Instance、Get Game Instance、Cast To Game Instance)

ゲームを通して変数や値などを保持したい場合、何を使ったらいいかがわからなかったので調べてみました。
最初は「Game Mode」かなと思ったのですが、
「Game Mode」はレベルが変更されると失われるのですね。

こちらのブログをみてて違いがわかりました。

・GameMode、GameInstanceなどの違いについて
http://imoue.hatenablog.com/entry/2016/05/24/223150

「GameInstance」はゲームを起動している間でプロジェクトごとに1つ。
「GameMode」はマップ切り替えまででレベルごとに1つ。


ということみたいですね。ためになります。

というわけで、パーティーのデータやパラメータなどの保持に向いてそうな
「Game Instance」について調べてみることにしました。

いつもお世話になってるこちらのブログを参考に。

・UE4 レベルを跨いで値を保持するGameInstanceについて
http://unrealengine.hatenablog.com/entry/2014/08/28/203638

まずは「Game Instance」を継承したそのゲーム独自の「Game Instance」を作ります。
アセットの新規作成のブループリントクラスを選択し、
GameInstance000.png
「Game Instance」を継承して「Game Instance」ブループリントを作成します。
GameInstance001.png
そうするとこんな感じで「Game Instance」が作成されます。
GameInstance002.png

このままではアセットとして作成されただけで、
プロジェクトには設定されていないため、使えるようにします。
「編集」の「プロジェクト」設定を選択し、
GameInstance003.png
「マップ&モード」の中にある「Game Instance Class」
作成した「Game Instance」を設定します。
GameInstance004.png
こうすることで、独自の「Game Instance」がゲーム中で使えるようになります。

実際に使う場合はこんな感じでしょうか。
GameInstance005.png
「Game Instance」を使う場合は「Get Game Instance」で取得したものを
「Cast To Game Instance」で独自の「Game Instance」にキャストを行って使います。

上の画像の場合、「New Game Instance」クラスにキャストして、
「New Game Instance」BPの中にあるBool型変数「New Bool」の値をとってきて表示しています。

こんな感じで値の保持と参照などを結構どこからでもできるので、
ゲーム全体で管理して使うようなものはなんとかなるのではないでしょうか。

もう少し詳しい内容についてこちらのブログにありました。

・【UE4】GameInstanceについて
http://meganeo.blog.shinobi.jp/ue4/%E3%80%90ue4%E3%80%91gameinstance%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

例えば、オプション画面(オプション画面用Level)でゲーム内音量設定をした場合、その設定情報はゲーム内の音量に連動させなくてはならないため、ゲーム中画面(ゲーム用Level)に移行するまで保持しておかなくてはなりません。GameInstanceを使用して設定情報をオプション画面でSet、ゲーム画面でGetすることで、ゲーム内の共通の情報を扱うことができます(グローバル変数のような扱い)。

使い方としてはこういったことですね。

GameInstanceの機能に関して簡潔にまとめると以下の3点です。
 ・レベルを跨いだ値の保持
 ・ゲーム中のプレイヤー管理
 ・ネットワークリプレイの管理

こういった機能がメインのようです。

それと、「GameInstance」の作成タイミングでエディタとスタンドアローンでことなるようです。

PIE実行
 実行の度にGameInstanceを作成
 終了の度にGameInstanceを解放

・Standalone実行
 実行時にGameInstanceを作成
 終了時にGameInstanceを解放

ここらへんは少し気を付けたほうがよいかもしれません。

| UE4 | 16:05 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 モデルを昔風に描画するプラグイン「Oldskooler」

ツイッターでこういうのを見かけたのでメモ。

公式ページはここみたいです。

・Oldskooler
https://gameappmakerco.itch.io/oldskooler

う…英語…_(:3」∠)_
ただ調べてみるとちゃんと日本語の記事がありました。
さすが3D人さん…!

・Oldskooler - ボクセル化&ピクセル化!頂点ライティング!モデルを昔風の表現にするUE4アセット!
http://3dnchu.com/archives/oldskooler-ue4/

基本機能として以下のものがあるみたいです。

ボクセル化
3dピクセル化!
頂点量子化
沸き返るような, 低速のポリッシュメッシュが早く3Dゲームに入ったのを揺らす。
ピクセル化
シーンの特定の部分を他の環境よりも低く表示するようにします。 カスタム深度バッファまたはステンシルバッファを使用して、影響を受けるオブジェクトをマスクすることができます。
スティプル透明度
高周波数の不透明マスクで、ハードウェア上に半透明の錯覚を作成。
フリッカー透明度
即座に認識可能な外観を備えた別の半透明ハック。
頂点ライティング
通常の照明に代わる非常に速い代替物。 モバイルに最適


モデルをボクセル化やピクセル化して描画できるみたいですね。
動画ではこんな感じに。


昔風の味のあるようなグラフィックのゲームを作る場合などに重宝しそうですね。

| UE4 | 12:50 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 レベルを検索して開くショートカット(CTRL+O)

レベルを検索窓で検索して開く方法です。
これもまったくしらなかったのですがUE4のエディタにはショートカットがあったのですね。

レベルを検索して開くにはキーボードの「CTRL+O」を押します。
レベルを開く000
するとこんな感じでレベル一覧がでてきます。
「アセットを検索」と書かれているところに文字を入力していくと、ファイルが絞られていきます。

ファイル名がわかっている場合はツリーから探すよりこっちの方がはやくなりそうですね。

| UE4 | 12:08 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 アセットを検索して開くショートカット(CTRL+P)

アセットを検索窓で検索して開く方法です。
まったくしらなかったのですがUE4のエディタにはショートカットがあったのですね。

アセットを検索して開くにはキーボードの「CTRL+P」を押します。
アセットを開く000
するとこんな感じでアセット一覧がでてきます。
「アセットを検索」と書かれているところに文字を入力していくと、ファイルが絞られていきます。

ファイル名がわかっている場合はツリーから探すよりこっちの方がはやくなりそうですね。

| UE4 | 11:57 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT | NEXT