2020-09-15

[bevy] TextureAtlas

bevy ゲームエンジン
 今回は複数の画像を1枚の画像として表現するコードの解析です。
 実際に多くの画像ファイルを使用するため、まずはbevyのコードを落とすことにします。Gitが必要になるのでインストールしておきましょう。bevyの開発にも通常必要になります。コンソールを開き、作業したいフォルダにて

$ git clone https://github.com/bevyengine/bevy

を実行します。bevyフォルダに移動し、そこからassetsフォルダを前回のプロジェクトのメインフォルダにコピーします。前準備は以上で完了です。以下のコードをmain.rsにコピペしてcargo runを実行します。

.init_resource

 resourceを初期化して追加します。RpgSpriteHandlesにはDefault traitを実装します。

不具合部分

 起動時、上記のような画像が表示されない場合があります。その際はウィンドウサイズを変更することで表示されます。また、表示サイズをどこまでも小さくすると、縦幅が0になった時点でbevyアプリはクラッシュ(panic)し強制終了します。

コード解説について

 ドキュメントがない分、どの行で具体的にどのような処理がされているかを詳細に示せていない部分もあります。将来的にはこれらがエディタで視覚的にわかりやすく扱えるようになっていることを期待しますが、まだまだ開発途上の段階故、今はこの程度の解説にとどめておくこと、ご了承いただければと思います。

英語(スペル)の扱いについて

 IT系の専門用語には、英語のスペルをそのまま日本語読みにしただけのカタカナ語が数多く存在しています。コンピュータ(computer)やプログラミング(programming)他、様々ありますが、当記事や(特にGitHubのコメント)では、そのような単語は直接spellで示すことがあります。カタカナの方が全角で容量も文字幅も入力手間もかかることが多く、コンピューターとコンピュータ、エディターとエディタなど、統一できていないものも多いため、Aaria.exeなどで扱う場合にも不便が生じることがあるためです。現時点ではbevyに関連した日本語情報は当ブログ記事を除いて皆無のため、用語などは全て英語にて把握している関係もあり、「関数」「変数」「借用」「継承」など、ある程度明確に日本語に翻訳されている場合を除いては、classやgame engine、save/loadなど、直接英単語のまま使うようにしています。どうせ日本語で書くにしてもそのままカタカナに翻訳しただけのもののため、なじまない方もおられるかも知れませんが、その点だけ、ご了承いただければと思います。

|追記) 後にAaria.dbにて上記の「英語spell重視型」から「日本語カナ優先型」に路線変更を行いました。Rustやbevyとは全く関係がない話なのですが、英語に関するイギリスの英文学者の書いた専門本を読み、英語についてそれまで知らなかった様々なことを知った結果、相対的に日本語の利点や特性に気づき、2020年11月半ば当たりから行ったAaria.dbの全情報移植作業において、英語優先型から日本語優先型に趣旨を切り替えた次第です。よって2021年2月28日現在以降の記事においては、programmingはプログラミングと記載するスタンスで行く予定です。