2020-09-15

[103] Bevy(ゲームエンジン) - 3D画像簡易表示

Bevy ゲームエンジン
  今回は簡単な3D画像の表示です。前回のようにGitのインストールと「git clone https://github.com/bevyengine/bevy」によってassetsフォルダのコピーが必要になります。
  準備ができたら以下のコードをmain.rsに貼り付け、cargo runを実行します。


  add_resourceによってMsaa{ samples: 4 }を取得しています。数値は1~8で、多いほどマシンパワーを要する分、高画質で表示します。

  PbrComponentsにより2度、3DCGのファイルを読み込んでいます。加えてライトとカメラも追加しています。ライトがないと画像は真っ黒になり、カメラがないと何も表示されないため、どちらも必須の要素となります。
  Bevyは2Dにも3Dにも対応したゲームエンジンです。色々な情報を読んだ限りでは、Bevyは特に3Dに力を入れていくような雰囲気を感じました。もちろんこれは2Dは手抜きにという意味は含んでいません。
  まだしばらくはコード解析の記事を続けたいと思っています。また、詳細なプロパティ設定の仕様などの調査は、まだ後の段階として保留中です。細部を知る前にまずは全体を知っておきたいためです。
  ちなみにこれらのコードは全てexampleにあります。今の時点では、開発版の一番最近のアップデートは「5分前」となっており、現在進行系で開発が続けられています。最新版ではこれらのコードが動かなくなる可能性もあるかと思いますし、部分部分ではまだ試行錯誤中のものもあるかと思うので、まずは全体像を把握してから実践的な部分の学習に入ろうかと思っています。
  バージョンアップの過程を追いながらも、遊べる(形になる)ゲームの作成も並行してやっていけたらそれが理想なのですが……。

※GitHubのコード解説においては、前回までの記事で一度解説している部分についてはその解説を省略しています。もちろん例外的に再度解説している部分もあるかとは思いますが、基本的には「初出」のコードを対象に解説させてもらっています。

  以下はBevyの土台となるコードです。今後も新たなコード知識が加わるに応じて更新されていく可能性があります。小さな知識のブロックを組み合わせるだけで、加えて細部の調整できる箇所を調整していくだけで、ゲームを制作していく……今の段階での試行錯誤の初回目標でもあります。