作成者別アーカイブ: malony

UE4.14 GameModeBaseとGameStateの併用はNG

UE4.14で追加された(というより機能分けされた?)
GameModeBase/GameMode
GameStateBase/GameState

この2つ、GameなんちゃらBase(以下「Base付」)の方はシングルプレイ用、そうでない方(以下「非Base付」)はBase付のクラスを継承しマルチプレイ用の機能が搭載されております(詳細な機能は未確認)。

(ややこしいのであえてカタカナで)ゲームモードが非Base付の場合、ゲームステートはどちらでもOKですが、ゲームモードがBase付の場合はゲームステートは必ずBase付にする必要があります

要は機能限定版であるGameModeBaseを使用するなら、その上に載るゲームステートも機能限定版である
GameStateBaseを使用する必要がある、という事です。
GameModeBaseの中でGameState継承(非Base付)のゲームステートを使う設定をしてしまうと、
強制的にデフォルトのGameStateBaseを使用する設定に上書きされてしまいます。
その場合、警告などの表示も無い為、ゲームステートへのアクセスがうまく行かなくなる恐れがあります。
(別アクタでGetGameStateしたらなぜか使用してないGameStateBaseが返ってきた)

 

まとめると
GameModeBase + GameStateBase = OK
GameMode + GameState = OK
GameMode + GameStateBase = ?? (このパターンなら両方Base付が良さそう)
GameModeBase + GameState = NG

 

エディタ上ではゲームモードの設定の際、本来GameModeBaseならGameStateBase、GameModeならGameStateを選ぶべきだと思いますが現状は設定出来てしまうのでゲームモードをいじる場合は十分注意しましょう。

 

広告

UE4で放物線LineTrace(っぽいもの)

※(17/05/17)エンジン標準でPredict Projectile Pathという
放物線落下の計算をしてくれる機能が追加されてた模様。
公式ドキュメント

基本的なFPSやTPSのゲームでは、プレイヤーが撃った銃弾は重力などの影響を受けず直進します(影響を受ける物も勿論ありますが)。このような場合で銃弾の経路と当たりを処理したい場合は「①発射地点から②狙う方向に③一直線に④射程距離の長さだけ」壁や敵などに当たるかどうかをチェックする事になると思います、いわゆるLine trace(もしくはRay trace, Ray castなど)です。

で、UE4にはこのLineTraceの機能がブループリントであるので簡単に使えるのですが、重力の影響を受ける発射物の飛ぶ経路はどう取るんじゃい?というわけで、作ってみました。

 

①準備

まず弾の飛ぶ経路は、発射速度と発射角度から”斜方投射の公式”を使って求めます。当たり判定のチェックにはLineTraceを使用しますが、これだけですと直線の判定しかとれません。弾の飛ぶ経路は曲線の為、これを再現するために「1秒に描く曲線をx分割して点(座標)をとり、点と点を直線で結んで擬似曲線を作る」という方法をとります。若干ややこしいですが・・・曲線はSplineコンポーネントで管理します(重くなりそうですが都合上)。精度と長さが増すとかなり重かったので最後で修正した物を記載しました・・・

 

②斜方投射の公式

発射地点からの距離及び高さをそれぞれxとy,発射速度をv0,発射角度をθ,重力加速度をg,任意の時間をtとします。斜方投射の公式から

x=v0*cosθ*t

y=v0*sinθ*t-(1/2)*g*t^2

これで任意の時間の弾の位置が分かります。これをBPで作ります。空のアクタ(名前をParabolaLineTraceとします)にSplineコンポーネントを追加し、関数を作成した物がこちら↓。

get_dist

距離の計算

get_height

高さの計算

get_xy

Vector2Dで出力

だいぶ簡素ですが・・・これを元にSplineを作ります。

 

③Splineの作成

コンストラクションスクリプトに処理を書きます。

construct.png

画像一枚にまとめてます

これで放物線を描くSplineが出来ます。初速、重力加速度、発射角度はデフォルトで3000,980,30にしてます(スポーン時に設定出来るようにしてあります)。

viewport.png

こんな感じ

 

④2点間のLineTraceを繰り返す

event1event2

これまたこんな感じに・・・ごめんなさい特に書く事が・・・

 

⑤作ったアクタをスポーンする

例としてFPSテンプレートを利用しています。FirstPersonCharacterのBPで、定間隔にParabolaLineTraceアクタをスポーンします。

FPSchara

 

⑥プレイ

ここまで作っておいてこんな記事が・・・Splineを使わないのでこちらのが軽くていいかも?
ためしにSpline無しにしたら(1秒間飛んだ距離当たりに取る点の数60、長さ10秒の600点でテスト)fpsが
8fps→30fps位に改善しました。今回は無理やりSplineを使ってしまったので(数百のポイントを追加したり座標を取ったりを毎フレーム処理するようなコンポーネントではない筈、というか放物線LineTraceとして作ったコレも取る点は多くて10*10位なのでやり過ぎ)最初からちゃんと作るべきでした・・・
(複雑なBPになると思ったら無い方がむしろすっきり)

修正後の物がこちら(修正箇所のスクショのみ)

get_xyz227

距離と高さの2次元ではなく3次元で座標を取るための関数追加

construct227

コンストラクションスクリプト、作ったVector配列に座標を入れていく

event1_227

この辺はSpline使ったのとほぼ同じ

UnrealFest2015横浜 に参加して

人多かった・・・とはいえ講演ホール自体は一部除きほとんどの人がシートに座っていた為、十分な広さでした。CEDECの時も来ましたが会場全体がやっぱり綺麗ですね。


そういえば開催当日、横浜へ向かう際に両親を乗せて湾岸線経由で移動したのですが、途中休憩でみなとみらい手前の(界隈では有名な)大黒PAに駐車した所、ちょうど定例会(こちら)があったようで、高級スポーツカーや珍しい車が集まってました・・・

365BBは自分が居た頃からありましたがコルベットC2や2000GTは出発後に来てたみたいで・・・(親と「2000GTは流石に来てないかー」と話してたけどまさか来てたとは)

IMG_3244  IMG_3245


話を戻して、講演の細かい内容についてはTogetterまとめ等で書かれているので割愛・・・

ぷちコン展示については、どの作品についてもクリア未到達で終了するプレイヤーの方が多く(並んでいる方を気にしてなのかある程度で終了されてしまう)また投票も1人1作品までなので、そういう点ではグラフィック・サウンド・プレイ上の爽快感・難易度バランスが重要なコンテストだったと感じました。私の作品は難易度がミソなのでそれは除いて他は欠けていたので・・・

とはいえちょっと今回”がちコン”すぎたのでは・・・

そういえばこっそり展示エリアを偵察していた時、男子学生さん?二人組が私の作品をプレイしてくれていたのを後ろから眺めていたのですが(怪しい)、一人がプレイしながらもう一人の方はアドバイスしながら協力してプレイするという姿を見させて頂いて、すごい嬉しい気持ちになりました。何故かたまに爆笑しながらプレイされてましたが・・・

IMG_3269  IMG_3270

chaoz氏に頂いた洋式便座のモデル(光らせすぎた)と展示エリア(一部)

写真だと数人の方しか写っていませんが休憩時間帯は展示エリアも盛況でかなり人が集まります。

投票結果は残念ながら受賞ならず・・・色々反省点もあるので、それをふまえて次回再挑戦したい所

(そういえばユニーク賞などの特別賞は何処へ)


ぷちコン以外の展示で面白かったのが、株式会社ネクストさんのGRID VRICK

情報はどこかで聞いてたのですが、実物を見て触ってみると思いの外楽しい!分かりやすい!

建築関係へのリリースがメインのようでスマホアプリやゲームへの転用などはまだ未定の模様

(これでシムズの建築できたらいいなぁってずっと思ってたのはヒミツ)

あとGRID VRICKとは別にすごい天秤という興味深い物件検索システムも見せて頂きました。


フェスと懇親会も終了し、その晩は一緒に来ていた両親(フェス中は別行動)と山下公園近くのホテルに一泊。朝食のバイキングおいしかったです(疲労で食べまくれなかったのが残念)。

IMG_3281 IMG_3282 IMG_3284 IMG_3285

大さん橋と、氷川丸withベイブリッジ。大さん橋は前回大型旅客船来てたけど今回はなし。

その後は湾岸線からアクアラインを経由、海ほたるで休憩してそのまま北上して茨城へ帰還。

IMG_3337 IMG_3345

屋上からの景色。風の塔(水上の白い構造物)の真下にあるトンネルを通過してきました。1Fは海抜6m(ここでろくでもないレベルデザインを思いつく)


かなり疲れましたが、得たモノも大きかった今回のイベントの報告でした。

ブログのスタイルがなかなか決まらない

[UE4petitcon]Mirror’s eye

現行版(UF2015版)はこちらから

(期限 10/31いっぱい)

現在無期限で置いてあります

明日はUnreal Fest 2015 Yokohamaですね。

というわけで、いまさらながら軽く作品と投稿までの経緯の紹介をしておきたいと思います。

今回のぷちコンはテーマが「反射」。

「反射って言っても色々あるよな、物理的な反射?視覚的な反射?それとも神経的な反射?それとも…?」

悩んだ結果、最初は物理反射と神経反射を活かしたゲームを目指しました。

こんな感じのを作りたいなぁ…と思ってたんですが、そんな事を思ってる内に時既に9月末、

時間もないしどうしよう…と思ったところ、そういえば


このようなツイートを見かけたのを思い出し、SceneCapture2DとMirrorVectorを使って

擬似的な鏡を作れる事が分かりました(某パズル系FPSPortalの再現もこれで可能?)。

そしてその頃遊んでいた某ステルスゲームにインスパイアされ、

「見えない敵から隠れて進む、ただし敵は鏡を通して見える」というアイデアを思いつき、

Mirror’s eyeの制作に至りました。


操作感は基本的にFPS、武器は現状近接格闘武器角材と手榴弾(入手したステージのみ使用可)の2つ。

敵は前方に視界を持っており、プレイヤーは敵の視界にはいって約1秒以内に倒せなかった場合、ゲームオーバー(ステージやり直し)。

敵のAIはまだ未実装の為、動くことはありませんが、ステージ配置によっては敵が自動式になるともの凄く難易度が高くなる可能性が…(動かない現状でもステージによっては難易度が高い)

武器の追加も検討中(弾が一定回数跳弾する拳銃、鏡に当てると反射する光線銃など、設置式光線銃トラップ+ミラーシールドetc…


こんなところです。実はおまけステージがUF2015版には存在し、特定のステージで特定の条件を満たす事でEXステージに挑戦出来ます。現地にはマニュアル(今急いで用意中)を置いてもらえれば上記の情報をソコに書いておきますが、ブログを見た人にだけ限定でヒントを書いておきます。6ステージ目は手榴弾は必要ありません。これだけです。正直目立つのでそこまで難しくはないとは思いますが念のため…

では明日の会場で(・ω・)ノシトマトの飾り付けた赤いカバン持ってたら私です

TobiiEyeXforUE4

Tobii EyeXとUE4(4.9)を合わせて使う際の注意(編集中)

要望があったため取り急ぎ、適当に書いてるので注意


1/ [ https://github.com/HogeTatu/EyeXforUE4 のDownload ZIP]と[  http://developer.tobii.com/downloads/ のTobii EyeX SDK for C/C++ 1.5]を落としてくる
2/ githubから落としてきたZIPを解凍して出てきたフォルダ内(EyeXforUE4-master)のPlugins\TobiiEyeX\ThirdParty\EyeXの中に、developer.tobiiから落としてきたZIP内のincludeフォルダlibフォルダの2つを入れる
3/ EyeXforUE4-masterフォルダ下のEyeXSamples.uprojectを右クリしてGenerate Visual studio solution filesをクリック、でEyeXSamples.slnが出来るのでそれをVS2013で起動
4/ VS2013内でビルドしてビルドが正常終了するのを確認したらVSを落とす
そうするとEyeXforUE4-master\Plugins\TobiiEyeX\Binaries\Win64内にdllとpdbが新しく出来ているはず
5/ そのままUE4インストールフォルダの4.9\Engine\Pluginsの中に、EyeXforUE4-master\Plugins\TobiiEyeX\Binaries\Win64の中のTobiiEyeXフォルダをコピー
6/ 後は使いたいプロジェクトの.uprojectと同じ階層にPluginsフォルダを作ってその中にTobiiEyeXフォルダをコピーでそのプロジェクトで使えるはず
Ex/ 手順4/までやってあればEyeXSamples.uprojectを直接UE4で起動し動作確認出来るはず
UE4で使う時はこんな感じもちろんVS2013、UE4 4.9、Tobii EyeXが必要

【失踪しそうな】ブログ開始【初記事名】

まだ書き慣れてないため、見辛い文と編集とは思いますがよろしくお願いします。


ブログは書かないぞと心に決めていた私ですが、

つい先日、株式会社ヒストリアさんの開催している

UnrealEngine4コンテスト、通称「ぷちコン」の第4回にてノミネート(No.39)を頂いたため、

提出作品についての紹介や、活動記録や備忘録などを公開しようと思い、

UE4関連記事(+雑記)ブログ立ち上げに踏み切りました。


現状、UE4制作中のプロジェクトとしては、

  1. Mirror’s eye(鏡を利用したステルスFPS)
  2. Tomatina(トマト祭り系FPS)
  3. ショッピングモール自動生成計画(非ゲーム)
  4. 2.に伴うプロシージャルなエレベーターアセットの開発
  5. 某ゲーム内自機制作システムの模作(HLG設計システム

です。次からは多分各プロジェクト紹介をぼちぼち書いていくと思いますのでよろしくどうぞ。

行間開き過ぎ空白改行無視されてキレそう