フライトシューティングを作る

戦闘機の3Dシューティングゲームを作っていくブログです。無料で遊べる予定。

機体のグラフィック向上

f:id:Interb:20210303165333p:plain

これまでサボっていた機体のテクスチャをよりリアルな感じに変更しました。(ver.2モデル)

尾翼、ラダー、エアブレーキが可動します。エルロンについては一部の機体で導入し(ver2.5モデル)、余裕が出来れば他の機体にも適応していこうと思います。

 

f:id:Interb:20210303165839p:plain

ちなみに、実際のゲーム製作の進捗状況よりもこのブログの方が圧倒的に遅れています。
例えば、プレイヤーが操作可能な機体は過去に紹介した架空機(ver1→2.5)とF-4(ver1→2)の他に、F-20(ver2)、F-15(ver2.5)、F-16(ver2.5)、F/A-18(ver1)、MIG-25(ver2)、SU-27(ver2.5)が既にあったりします...

これらの機体もそのうち紹介すると思います。

それでは今回はこの辺で。

グラフィックの進化

グラフィックの進化について...

時間のある時に試行錯誤して、なんとか低負荷でリッチに見える背景を作ろうとしてます。f:id:Interb:20210221230756j:plain

上の画像は開発初期の段階。まだサンプルの床とブロックしかありません。

ちなみにこのブロックめちゃくちゃ大きく、一つにつき長さ100mくらいあります。

f:id:Interb:20210221230834j:plain

地面のデータを製作してインポートしたところ。

表面のテクスチャはまだ作ってなかったので砂漠っぽい色と雪で誤魔化しています。

f:id:Interb:20210221230908j:plain

これが最新版。

前に投稿した記事で作成したテクスチャはそのままですが、新たに大気をシュミレートするシステムを導入。

大気の影響を受けて遠くの方は青っぽくなってます。パラメーターはまだ改善の余地あり。

今のところ、結構負荷は軽いですが、スマホで起動すると地形がバグります。なんででしょ。

 

新機体:EFA-04

f:id:Interb:20210130233934p:plain

新たな機体をモデリングしました。ファントムです。

現実の機体名称はそのまま使うと商標とかで危なそうなのでこのゲームに登場する機体は全て架空の名称になります。

このEFA-04はゲーム初期から登場する戦闘機で、プレイヤーはまずこの機体に乗ることになる予定です。

f:id:Interb:20210130234443p:plain

低い機動性と加速性能が弱点ですが、酷使に耐える機体強度と武装の搭載量はゲームに慣れていない人にとって大きな助けとなるはずです。

f:id:Interb:20210130234849p:plain



地形とそのテクスチャを製作

f:id:Interb:20210127232554p:plain

 

3Dゲームを作るにあたって避けては通れない問題、それは地形(ランドスケープ)。 特にフライトシューティングを作るには非常に広いマップが必要になります。

今回は出来る限り自動で製作する方法を試します。

f:id:Interb:20210127232843p:plain

まずTerreSculptor(無料ソフト)などで地形の標高データを生成します。いくつかパラメーターを設定すると自動でそれっぽいデータを生成してくれます。

しかし、これはあくまで標高に関するデータのみなので、そのままではグレー一色になってしまいます。

f:id:Interb:20210127233455p:plain

ここから色を塗っていくのですが、いかんせん広いマップなので手動で塗っていくと日が暮れるどころじゃなくなります。なのでここはプログラムを組んで自動化させることにします。

まず地形を標高ごとに雪・雪+山・山+平原・平原+砂というように4パターンに分け、境目がシームレスに切り替わるように設定します。そしてそれぞれの階層について、例えば斜面には崖のテクスチャを張り、平面は草と砂をランダムに混ぜ合わせるなど設定していきます。

f:id:Interb:20210127232554p:plain

こうして出来上がったのがこの写真になります。

どうでしょうか。人の手を全く加えていないにしては自然に仕上がっているのではないかと思います。

また、タイリング感(テクスチャの繰り返しのパターンが見えてしまうこと)を軽減するためにカメラからの距離によってテクスチャの貼り付けスケールを動的に変更していたりしています。

 

この方法ならば簡単にステージを作成できるので作業の迅速化やステージ数を容易に増やすことができそうです。

【技術的Tips】UE4.26 のAndroid起動時に rungradle.bat でエラーが発生する

これまでUnrealEngine4は4.24を使ってきましたが、どうしてもボリュームメトリッククラウドが使いたくなったので4.26にアップデートしました。

そうしたらゲームがAndroidで起動しなくなった・・・

Intermediate/Android/APK\gradle\rungradle.bat

でエラーが発生するようです。

 

調べてみたところ、GooglePlayのライセンス関係やAndroid NDKを設定し直せば良いとの記事を多く見かけましたが、残念ながら治りませんでした。

Enable Gradle instead of Ant のチェックを外してAntでビルドする方法を試そうとしたものの、そもそも4.26にはその項目がない・・・

 

結果いろいろ試してみたところ、Android Studioの設定で SDK Platforms のAndroid 10.0(Q) とAndroid 11.0(R) にチェックしてインストールすることで解決しました。

もともと9.0にしかチェックが入って無かったんですね・・・

f:id:Interb:20210126000633p:plain

 

4.25からAndroidでビルドする仕様が結構変わったようなので(CodeWorksを使わなくなったり)、アップデートを考えている方は注意してください。

もし誰かの参考になれば・・・

Fusion360で戦闘機のモデリング

f:id:Interb:20210124192853p:plain

これまで電子工作をやってきたのでモデリングソフトはFusion360しかまともに扱うことが出来ません。

しかしFusionはテクスチャの編集が出来ない・・・

なのでBlenderを一旦経由してUE4にインポートしています。

 

f:id:Interb:20210124193534p:plain

最終的にはこんな感じ。

実際には尾翼やカナードが動いたりするのでそれぞれ別のモデルとしてインポートしていますが。

 

これは仮の機体のつもりですが、かなり時間が掛かったので多くの機体の実装にはかなりの労力が必要そうですね。後々この作業が全体的なボトルネックになってきそうです。

PCとスマホ向けのフライトシューティングを作ります。

f:id:Interb:20210124005759p:plain


という訳でこのブログではフライトシューティングを作っていきます。

ゲームの製作進捗の報告や技術的Tipsなどを共有したいと思います。

目標としては

エースコンバット などに似たカジュアル指向

・PCとスマートフォン両方に対応するクロスプラットフォーム

・低スペックなPCやスマホでもプレイ可能にするための軽量化

・2パターンに分岐するストーリー

・実在、架空含め多くの機体と武装を選択できる

・このブログやツイッターを見てる方には無料ゲームとして提供

を目指していきます。

 

2021年現在、PC向けのカジュアルなフライトシューティングは結構増えてきており恵まれた環境にありますが、低スペ勢やスマートフォン向けのモノはまだまだ少ないような気がします。なんとかその隙間を突くことができれば・・・という感じですね。

画像にある通り、実は基本的な戦闘システムは既に完成してたりします。暫くはそれらの要素についての解説がメインになるかと思います。

 

それでは、これからよろしくお願いします。