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

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

Unity

100日で50弾! Day 22/ Bullet11:バラ弾

100日チャレンジ『100日で50弾!』第11回、バラ弾です。バラ曲線というのを使い、弾を移動させます。バラ曲線は次の式で定義されます。r = a *(float)Math.Sin(k * s)aは大きさを表し、kは花びらの枚数に関係します(kが奇数ならk枚、偶数なら2k枚)。これは…

100日で50弾! Day 20/ Bullet10:リフレクトショット

100日チャレンジ『100日で50弾!』第10回、リフレクトショットです。直線に沿って進む弾が見えない壁で跳ね返ります。動画をどうぞ。 原理自体は単純で、弾の位置をUpdate()内で点検し、指定した範囲から外に出ようとしたとき進行方向を変えればよいのです。…

100日で50弾! Day 18/ Bullet9:スウェイショット

100日チャレンジ『100日で50弾!』第9回、スウェイショットです。発射した弾をゆらゆら揺らしましょう。パーリンノイズというのがあります(パーリンは考案者の名前)。これを用います。 例えば地形など、急に高くなったり低くなったり、というのはあまりあ…

100日で50弾! Day 16/ Bullet8:トレイルショット

100日チャレンジ『100日で50弾!』第8回、トレイルショットです。 この弾は、撃つと軌跡が残ります。ちょうど、UnityにTrail Rendererというコンポーネントがあり、これを弾のプレファブにAddすることで軌跡が表示されるようになります。軌跡用のマテリアル…

100日で50弾! Day 14/ Bullet7:パスショット

100日チャレンジ『100日で50弾!』第7回、パスショットです。パスとはpath、つまり「道、通り道、進路」。弾を撃つとき、空間内で通過点を何点か決めてそこを通るようにします。「パスショット」としました。 前、自分で近い機能を実現してゲームを書くとき…

100日で50弾! Day 12/ Bullet 6:ブランチショット

100日チャレンジ『100日で50弾!』第6回、ブランチショットです。 100日チャレンジ、まだ楽しんでやっていますが、いずれ常在戦場みたいな感じになりそうです。ぼくは結構頻繁に授業で数学通信(数学をテーマにした新聞みたいなもの)を配布します。面白いこ…

100日で50弾! Day 10/ Bullet 5:トルネード弾

100日チャレンジ『100日で50弾!』第5回、トルネード弾です。 飛んでくるクエリちゃんが3発ずつ、回転する弾を続けて発射します。弾全体はサインカーブに沿って移動します。そのサインカーブの周りを3発がぐるぐる回りながら動きます。gifをご覧ください。 …

100日で50弾! Day 8/ Bullet 4:パターン撃ち

100日チャレンジ『100日で50弾!』第4回、パターン撃ちです。 画面手前に向かって縦3×横3=9発が何回か発射されます。弾は敵機から発射されるのですから、撃ったあとはだんだん広がっていくのが自然です。だから9発は移動の方向はすべて少しずつ異なっていま…

100日で50弾! Day 6 / Bullet 3:sin(サイン)弾

100日チャレンジ、『100日で50弾!』、第3回sin弾です。三角関数のsinを使い、サインカーブに沿って弾を移動させます。ここでは空間内でz方向(画面の手前向き)は一定の速さとし、x方向(画面の左右)、y方向(上下)に振幅をいろいろに変えたsinを用い…

100日で50弾! Day 4 / Bullet 2:ラウンドショット

100日チャレンジ、『100日で50弾!』、第2回です。弾自体は直線に沿って移動しますが、30発が少しの時間差でグルッとキャラの進行方向からズレた方向に発射されます。表現が難しいですが、要するに円形に発射するラウンドショットです。撃ったあとは円になっ…

100日で50弾! Day 2 / Bullet 1:直線弾

始まりました。100日チャレンジ、『100日で50弾!』。100日でシューティングゲームの弾を50種類作ります。100日だけれど2日毎なので50弾です。Dayは2日ずつカウントアップしてゆきます。どうなるか、楽しみです!! 書きかけのプログラムを一部流用しました…

Day 0 / Bullet 0:100日で50弾! 始めます

2、3日前に書いた記事です。 www.omoshiro-suugaku.com 『#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった』(大塚あみ2025日経BP)の説明の動画を見ました。なるほど、こういうの、面白い!! 自分でも何かやろう、と思いました。ここふた…

DOTweenでタイマを

DOTweenで簡単にタイマを実現できます。ちょっとした動作を定期的にやらせたい、といったことはあるものです。あるオブジェクトを1秒ごとに表示したり非表示にしたり、……とか。コルーチンでも簡単に実装できます。しかし当たり前ですがそういうコルーチンを…

DOTweenでUIを移動する、ルーズリーフ使い始め

DOTweenの.DOAnchorPos()を使って、画面の外に隠れていたUI(ここではパネル。FPSを表示している)を画面内に移動して見えるようにします。動画をどうぞ。 youtu.be 次のコードでgoはUIのゲームオブジェクトです。画面の外、元の位置から座標で+150だけ右に0…

Unityで「バーチャルカメラ」がなくなった!?

Unity6(6000.0.32f1)でバーチャルカメラを使おうとしました。カメラが特定のキャラクタの動きを追うとか、複数のカメラを切り替えながら使うとか、いわゆる「カメラワーク」を簡単に実現できるようになります。Unityの前のバージョンで初めて使ってみて便利…

Unityで3Dモデルがピンク色、パーティクルがピンク色になる!

Unity(Unity6(6000.0.32f1))で新しくプロジェクトを作成し、前に使っていたプロジェクトから必要なアセット(3Dモデルやスクリプト、プレファブなど)をコピーし、必要なところを修正して新しいアプリを作ろうとしていました。そうしたら3Dモデルがピンク…

Unity+DOTweenでパネルとテキストをフェードアウト、3Dモデルを一瞬小さくする

DOTweenでいろいろ実験しています。なかなか面白く、確かにいろいろゲーム製作に使えそうです。ここではUI部品(Panelと、その子にしたTextMeshPro。テキストを表示している)をフェードアウトするのと、3Dモデル(ブラッククエリちゃん)を一瞬小さくする効…

1学期の仕事の感想、夏休みの目標

ようやく1学期が終わりました。疲れた……。数学科である時期から始まったみたいで、頻繁に宿題を出さなければなりません。クラス(理系、文系、細かなタイプ)によって違うんですが、一番多かったクラスでは25回。これを評価して成績に入れろ、と。ものには限…

DOTweenのSetLookAt()でQuadを使ったときのトラブル

UnityでDOTweenを使っています。なかなか便利そうなんですが、「あれ?」と思ったことが。コルーチンやその他の仕掛けを使わず、オブジェクトの生成時に1回、次をコールするだけで指定した座標の点を通り、しかも(SetLookAt(Camera.main.transform)によって…

Debug.Log()で出力した日本語が文字化けする

Hot Reloadを導入しました。ゲームを実行中に変数の値を変更して動作がどう変わるか確認したりできます。凄い……!! 変数の微調整を繰り返すことは多いので、便利になります。それとUnityはスクリプトを少しでも書き換えると、エディタからUnityの画面に戻っ…

DOTween、Studyaid D.B. 導入!!

DOTweenというアセットを導入しました。あれこれ試している最中ですが、凄く便利です。アニメーションをスクリプトで簡単に実装できます。キャラクタを動かす(キャラクタ自身が手を上げたり……は対応してないみたい)、テキストを動かす、カウントアップする…

3Dシューティングゲーム『3D-Qシュート・ハイ』を公開しました

新しいゲームを公開しました。3Dシューティングゲーム『3D-Qシュート・ハイ』です。前のゲームで地上を走り回って敵を撃っていた主人公のクエリちゃんが今回は飛びます! アイコン画像はこれ。 次はプレイ動画。 youtu.be 例によってPlicy、unityroomに公開…

ゲームの広告をスクリーンの決まった位置に表示する方法

ゲームに広告を入れます。Ad-Virtuaです。動画をどうぞ。 youtu.be 虹色の長方形のところに広告の動画が配信されます。スマホゲームによくあるバナー広告などに比べ、導入は遙かに楽でした。自分のゲーム3本に入れています。 その長方形の部分は広告のための…

ひとつのオブジェクトに複数の弾が当たったときに出た不具合

ひとつのオブジェクトに向かって、下の絵のように弾を発射して当てます。1発ずつ発射するだけでなく、「ブースター」みたいな感じでガンガン撃つこともあるでしょう。 このとき、的は1つなのに複数の弾から「当たったよ」と通知がくることがあるのです。この…

古いアニメを見て。開発作業の中間報告

今年度の教員の仕事はもう終わりです。学校の様子も成績のつけ方もいろいろあるもんだと勉強になりました。絶対おかしいだろ……ということもあったけれど仕方なし。学校が特色を出そうとして、それがいい方向に働くばかりとは限りません。いろいろ大変でした…

Unityでクエリちゃんがキューブに当たった後、動きがおかしい

ふと気づくとクエリちゃん(3Dモデル)がジリジリ上へ動いているので「??」と思っていましたが、時々なので「ま、あとで考えるか」とのんきにしていました。動画をどうぞ。 youtu.be あれこれ実験した結果、開発過程で作ってそのまま残しておいたキューブ…

ゲーム製作の中間報告、年度末に向けて

今書いているゲームは、前のゲームで作った仕組みなど、流用できる部分も多くて結構早く仕上がりそうです。まだまだやらなければいけないことはありますが、ある程度のバランス調整をしてみました。バランス調整というのは……プレーヤが極端に有利だったり不…

Unityで、クエリちゃん(3Dモデル)を半透明にしようと挑戦した話(2)

なんとかなったので報告です。次のサイトの説明に従って新たにシェーダを作ります。 nn-hokuson.hatenablog.comシェーダの名前は(どう決めてもよいのでしょうが)、サイトでは「SemiTransparent.shader」としています。これをブラッククエリちゃんの各パー…

Unityで、クエリちゃん(3Dモデル)を半透明にしようと挑戦した話

写真はクエリちゃんでなく、ブラッククエリちゃんですが理屈は同じです。 写真ではボディの部分だけが半透明になりました。この調子で、3Dモデルの全体を半透明にしたいのです。 ブラッククエリちゃんはヒエラルキーでは次のようになっています。 親のQuery…

3Dシューティングゲーム 「3D Q-Shoot」公開!

さっき公開しました。公開したサイトはunityroom、Plicyです。どんな具合か、見てみてください! unityroom.com plicy.net 動画はこれ。ご覧ください。 youtu.be