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

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

2Dシューティングゲームで立体っぽいキャラクタを使う

2Dシューティングゲームでも、主人公が立体に見える方がいい場合もあります。今回はモデリングなど大変な作業はせず、地味な努力で一応立体っぽい雰囲気を出す話です。あまりうまく撮れていませんが動画をどうぞ。 www.youtube.com ぬいぐるみを16方向から写…

Unityで、自作クラス内でコルーチンを呼ぶ

自分で作ったクラス(特に継承はしていない)の中でコルーチンを呼ぶ必要があり、試してみました。次のコードではエラーが出ます。 //---------------- class testclassA { public IEnumerator test1() { Coroutine cr; cr = StartCoroutine(test2());//① yi…

Unityでパーティクルを使ってシールドを表現する

2Dシューティングゲームで、例によってシールド(敵の弾を防ぐバリア)を考えていました。いかにも「シールド!!」という感じにしたくて、最初は丸い球のα値を変化させ、主人公を囲っていました。こんな感じ。 明るさが揺らぐようにしているので、写真より…

Unityで、スクリプトを編集後Sceneビューに移ってもコンパイルが始まらないようにしたい

前はあまり気にしていなかったんですが、なぜか今回の開発作業ではストレスになっていました。エディタはVisualStudioを使っていますが、スクリプトを編集後、シーンやヒエラルキーなどを見られる画面に移動するとコンパイルが始まってしまい、場合によって…

教員不足! 出ました「特別免許状」!

文科省が、教員免許がなくても専門的な知識などがあれば教員に登用できる「特別免許状」の活用など具体的な取り組みを回答するよう、教育長たちに要請したそう。コレハヒドイ……。ついこの前、教員免許の更新制を導入して(アッという間に消えてなくなりまし…

Unityで2Dのライトの明るさをスクリプトで変化させる

タイトルの通りです。今、2Dシューティングゲームを書いています。2Dでもライトが使えるそうで、ゲームに入れてみることに。こんな感じで、よさそうです! しかし、スクリプトから明るさを変化させたかったのですがなかなかうまくいかず、サイトもあちこち見…

『体育館の殺人』紹介、共通テストの長文問題

『体育館の殺人』(青崎有吾2015創元推理文庫)を読みました。 体育館の殺人 (創元推理文庫) 作者:青崎 有吾 東京創元社 Amazon 風ヶ丘高校の旧体育館で殺人事件が起こります。被害者は高校の放送部部長。警察が調べ、体育館を出入りしていた生徒に容疑がか…

Unityで、複数のコルーチンの終了を待機する

前回の続き、今回は複数のコルーチンの終了を待ちます。例えばBGMをフェードアウトしつつキャラクタのα値を0にジワジワ変化させ、音量もα値も0になってから何かをしたい、などというときに使えます。例によって最短のコードで説明します。まず、前回と同じく…

Unityで、コルーチンの終了を待って別のコルーチンを起動する

タイトルの通りです。ゲーム製作で、例えばキャラクタをコルーチンでどこかへ移動し、続いて別のコルーチンでα値を0に変えたい(透明にしたい)、などというときです。最も単純なコードで説明します。まずコルーチンを2つ、定義しておきます。単純に、それぞ…

大学入学共通テストの志願者が減少!

大学入学共通テストの志願者が6年連続で減少しているそうです。(名前は変わっていますが)今回は1992年以来32年ぶりに40万人台になったとか。理由のひとつに「問題が難しくなった」というのがあるらしいです。受験生としては避けたくなるでしょう。ぼくが受…

Unityで、スクリーンをタップしてそこへキャラクタを移動させる

Unityで、スクリーンをタップしてそこへキャラクタを移動させる、などしたいことがあります。電車で、となりのおじさんがカラフルなたくさんの丸いボールの映ったスマホの画面を指でパーッと撫で、キラキラ光って多分それが得点になっている……というゲームを…

Unityで画像から画像データを取り出し、他の画像にコピーする

Unityで、オブジェクトの持っている画像データを他のオブジェクトにコピーしたいことがあります。シーンに配置した単なる画像(ビットマップなどの画像ファイル)にもUIのImageにもスプライトが含まれており、このスプライトに画像データが入っています(UI…

新年のご挨拶

新年、明けましておめでとうございます。 昨年、夏休みの最後くらいに「またアプリを作ろう!」と思い立ち、リハビリのつもりでシューティングゲームを書き始めました。音を出すためにはこうする、キャラクタの画像を入れ換えるにはこう、……といちいち復習し…

平面で5点を与え、その近くを順に通る曲線を描く

シューティングゲームなどで、敵機に図のような軌道を描かせたいときにどうしたらよいか、考えます。 これだけなら、適当な式を定義してそれに沿って移動させればできるかもしれません。ネットで「いろいろな曲線」などで検索してみてください。「バラ曲線」…

Excelで2つの範囲の内容が完全に一致しているか調べる

Excelの表で、価格×個数の総和を求めます。 方法はいくつもありますが、今回はこれ。 使っていないセルに上の式を入力します。価格の列と個数の列で、対応する値をかけています。そしてそれらを総和する、の意味です。……が、ここでENTERを押してもダメです。…

Unityで、パネルと(配置してある)ボタンのテキストのα値を同時に変える

パネルにボタンが配置してあるとします。ボタンはパネルの子になっています。何かの事情でこのパネルのα値を変えたいとします。以下のコードではうまくいきません(goはパネルのGameObject)。ボタンのテキストはそのままで、パネルの地だけが半透明になって…

Unityでゲームのスコアを表示する

次のように表示したいとします。先頭の”000”は色違いです。この"000"はなくてもいいとも言えますが、地味な色にすればいい感じ。実践では桁数を固定したいことが多いかも知れません。そのときは"00000000000"といった文字列からスコアの桁数を引き算した分の…

Unityでゲームオブジェクトが存在するか確認する方法

あまり見かけないなあ……と思った話です。ゲームオブジェクトがアクティブかどうか、ではありません。存在するかどうか、つまり削除されていないかどうかの確認です。 Unityで2Dシューティングを書いています。敵に0.1秒間隔くらいで弾を撃たせるのにコルーチ…

Unityで書いているゲームのFPSがだんだん下がった話。ミステリ関係の書籍紹介。

学校はようやく期末試験の期間に。まだ採点、成績処理があるけれど、正月にかけてある程度まとまった時間が取れるので開発作業に注力します。 今日はいくつか仕事しながらゲームを書いていました。目指す動作になっているか確認しながらプログラミングするん…

書籍『六人の嘘つきな大学生』、『半沢直樹 アルルカンと道化師』紹介

久しぶりにワクワクする小説を読みました。『六人の嘘つきな大学生』(浅倉秋成2023角川文庫)です。 六人の嘘つきな大学生 (角川文庫) 作者:浅倉 秋成 KADOKAWA Amazon 6人の大学生の就職活動、IT企業スピラリンクスの採用試験が舞台です。6人にディスカ…

waveモジュールを使ってwavファイルのサウンドデータを逆順にする

前回の記事の続きです。wavファイルのサウンドデータを逆順に並べて保存するのですが、以下のPythonのwaveモジュールを使ったコードでできます。逆順に並べ替えているのは for i in range(buf.size): #bufの内容を逆転してbuf1へ格納 buf1[i] = buf[buf.size…

Unityでアセットバンドルを使わずにアセット(wavファイル)を暗号化する

Unityでアプリを書くときの、サウンドファイルの暗号化の方法です。少し前の記事で書いたように、最初ぼくはサウンドファイル、画像をアセットバンドルとして扱い、アセットバンドルを暗号化する方法でやってみたのですが、PCではうまく行きましたが実機(ス…

教員をやめたくなるとき……

あります。……というか多いです。数学が好きなら、それを教えてお金になるのですからこれほどいい職業はありません。しかし世の中、うまい話はありません。 生徒に「定期テスト(中間テスト、期末テスト)と授業中にやる小テスト(10点満点とか)の1点に差は…

Unityでアセットバンドルを使わずにアセット(画像)を暗号化する

Unityでゲーム作成時に使う画像(pngファイル)を暗号化する話です。ゲーム作者でない人間がゲームに含まれるアセットを取り出すことは可能で(そういうソフトウェアがある)、それを防ぐための手段です。 ゲームにはアセットバンドルという形で画像などを含…

Unityのマップで、どのタイルと当たったのか判定する

前回紹介した、『たのしい2Dゲームの作り方 第2版』(STUDIO SHIN2023翔泳社)にひと通り目を通しました。スプライトなど、アセットはダウンロードして使わせてもらい、あれこれ実験をやりました。大変勉強になりました。 たのしい2Dゲームの作り方 第2版 Un…

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

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

立体の復元、結果報告(泣)

立体の復元、一応ここまでで書いた理屈は全てプログラムで試してみました。しかし、結果は×でした……。結構時間かけたのに……。写真3枚から内部パラメータ行列Aを求めようとするとき、次の式を使います。 ブログではBを(測定によって)求めてからこの式を使…

写真からチェスボードを使って立体を復元(14)(手順のまとめ)

ここまでチェスボードを使ってカメラの校正をして写っている立体を復元する方法を説明してきました。長かったですし、毎回「なるほど!」と納得していたつもりでも、いざ「さあプログラミング!」というとき「あれ、何をすればいいんだっけ?」と必ずなりま…

写真からチェスボードを使って立体を復元(13)(2枚の写真から空間内の点の座標を求める)

ここまでで3枚の写真からカメラの内部パラメータAを求め、基礎行列Fを求め、基本行列Eを求め、回転行列R、平行移動ベクトルtを求めました。ここからは3枚のうちの2枚を使えば立体の頂点などの(空間内の)座標を計算できます。この部分を説明します。 …

写真からチェスボードを使って立体を復元(12)(基礎行列Fから回転行列R、平行移動ベクトルtを求める(2))

続きです。今回まででR、tが求まります。全体、『写真から作る3次元CG』に従っています。あちこち「あれ?」と躓いたところがあり、後で読んですぐ理解できるよう、かなり詳しく説明をつけておきました。1回引っかかったところは次回も必ず引っかかるもので…