いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

さあ、次はプログラミング!

立体の復元実験もケリはつき(よくない結果でしたが……)、夏休みもそろそろ終わりです。次はまたアプリでも作るかな……と1週間くらい前から勉強を再開しました。本も購入。『たのしい2Dゲームの作り方 第2版』(STUDIO SHIN2023翔泳社)です。

この本ではUnityで2本、2Dゲームを作ります。説明は丁寧です。何年か前とは言えやっていたことなので、ぼくは実際にアプリを作りながら読む……ということはしませんでした。オブジェクトの配置やカメラのセット、ボタンを使えるようにする、シーンの切り替え、押しているキーやタップ位置の取得、アニメーション、サウンドなど、ゲーム作りで基本的な部分を実験を繰り返しながら読んだ、という感じ。実験には書籍で使われているアセット(ダウンロードできます)のキャラなどを使いました。2本目のゲームのところはまだ読んでいませんが、ゲームに使いそうな技術は復習できた感じです。残りは自分のアプリを作りながら並行して勉強するつもりです。あ、この本には直接には実機テスト(スマホでプレイ)については書いてありません。付録PDFというのがあり、そこに説明されているようです。翔泳社へ会員登録すれば手に入るらしいです。実機テストのやり方については、ぼくは前に読んだ本↓で勉強しました。今回もこれに従っています。

新しい版が出ているので、こちらがいいでしょう。↓

 仕方ないことですが、すでにいろいろトラブルが起こっています。この1週間で何かの拍子に画面に配置したボタンが効かなくなることが何回かありました。原因はいくつかあるようですが、毎日バックアップしていたのでそれで切り抜けました。スプライトを表示しようとしたとき、その余白(透過部分)になぜか他のスプライトが一緒に表示されるという現象もありました。これはぼくが複数の書籍のサンプルデータを混ぜて使っており、その中にスプライトアトラスを使っているものがあったのが原因でした。スプライトアトラスとは、複数のスプライト(画像)をまとめて1枚に収めたものです。これを使わない設定にしたら解決。これはもちろん実験なので、自分で書くアプリで使う絵は別に手配します。アニメーションは前回は自分でコーディングしていました。指定秒数毎に使う絵を変えればよいのですから、まあ理屈は単純です。しかし今回はUnityが用意している機能(Animation)を使ってみました。印象では大げさな感じで違和感もありますが、全部の機能を使うわけでもなく、慣れれば使いやすいのかも知れません。スプライトはシーンに直接配置できますが、Imageオブジェクトを配置してそこにスプライトを入れる、という風にもできます。画面のタップ位置の取得の際、後者のようにするとうまく行きます(ImageオブジェクトはRectTransformというコンポーネントを持つが、単に配置されたスプライトにはこれがない。タップ位置の取得にはRectTransformが必要)。これにはハマって数時間悩みました。……と、慣れている人には笑われそうなことかも知れませんが、もう何でも起こっています……。