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

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

Unity

Unityで簡単にシールドっぽいものを作る

ゲームでよく敵の攻撃を防ぐシールドを見かけます。きれいに光って形も美しく、いかにも敵の攻撃を防げそうです。ちゃんとエフェクト関係の勉強をすればいいのができそうですが今回、簡単に何となくそれっぽい効果を実現します。まずは動画をどうぞ。シール…

Unityで、ゲームにランキング機能を入れる

今書いているゲームにランキングの機能を入れようかな、といくつか試しています。PlayFabを使うか、GAS(Google Apps Script)と使うか両方実験しました。ランキングについては前にブログで触れていますがあまり憶えていません! 復習のつもりです。 www.omo…

Unityで、バーチャルカメラをスクリプトでコントロール!

バーチャルカメラで「カメラワーク」を実現します。前回の記事より少しだけ難しいことをやります。前回の記事 ↓ www.omoshiro-suugaku.com 前回のようにカメラを動かすと、いわゆる3D酔いをしてしまうかも知れません。画面がぐらぐら揺れる感じのゲームだと…

Unityで、バーチャルカメラをスクリプトでオブジェクトに追従させる

バーチャルカメラを3Dの空間内を動き回るキャラクタ(クエリちゃん)に追従させます。つまり、カメラがクエリちゃんの後をついて回ります。これ、実はスクリプトなしで、バーチャルカメラの機能を使えばすぐできます。前に近い実験も紹介しました。 www.omo…

WebGLでクエリちゃんの影が消える

WebGLで動くようゲームをビルド(ブラウザゲームとしてビルド)したところ、エディタで実行しているときは表示されているクエリちゃんの影がブラウザでは消えていることに気づきました。「あれ?」と思い、ネットをあれこれ調べていて、一応解決。 影が見え…

3Dアクションゲーム「InuosanFall」公開。GooglePlayへも公開申請しました

unityroomで3Dアクションゲーム「InuosanFall」を公開しました。ブラウザ版です(インストールなしで遊べる)。いろいろ勉強になりました。 InuosanFall | フリーゲーム投稿サイト unityroom InuosanFallを遊ぶ! フリーゲームのPLiCy [プリシー] Android版…

雑記。ひとつ前の記事、Google Playでのアプリ公開について

開発したアプリ、InuosanFallを午前中、グーグルに送りました。審査に何日かかかるらしいです。審査を通れば公開です。Google Play でアプリを公開するにはいろいろ面倒な手続きがあって、気が重かったです。何年か前に3Dシューティングゲームを公開したとき…

Unityでパーティクルを複数選択しておくとFPSが下がる話

キャラクタに弾が当たったときなど、パーティクルで「キラキラキラー」とか演出します。 ↓ こういうやつ シューティングゲームなどでは短い時間内に立て続けに弾が当たることがよくあります。用意するパーティクルを1つだけにしておくと、弾が当たった直後に…

Unityで、ひとつのコルーチンを2回呼ぶとどうなるか

ゲームの開発作業中、必要があって実験しました。コルーチンを実行中に、同じコルーチンを呼んだらどうなるのでしょうか。例えばStartCoroutine(test());StartCoroutine(test());のように。 実験のため、コルーチンtest()を以下のように定義しておきます。//…

Unityで背景の上にキャラを配置したら表示がおかしい!

3Dの空間内で、Quadに犬の画像を貼り付けたものと、ハートを貼り付けたものを用意します。ハートを高い位置に配置しています。なお、Quadへの画像の貼り付けは次の記事の通りにしています(MaterialのRendering Mode(Quadのshaderの Rendering Mode)は Fad…

空間内を動くキャラクタの近くに常にUI(パネル)を表示する

3Dの空間内をキャラクタが動きます。常にその近くで何かをUI(パネルなど)で表示したいとします。例えばキャラクタの名前とか。サイトをあちこち調べ(それでもなかなかうまくいかなかったんですが)、ようやくなんとかなりました。こんな感じです。 ハート…

Unityのアンカー、ピボットを分かりやすく解説

アンカー、ピボットが分かりにくいです。ここで簡単な例を2つ挙げ、整理しておきます。これなら分かりやすい……はずです。 キャンバス上には座標(ローカル座標と呼びましょう)があります。今、キャンバス上にパネル(UI部品)が配置してあるとします(イン…

コルーチンから起動されたコルーチンは、もとのコルーチンが止まったときどうなるか

コルーチンAがコルーチンBを起動します。Aが止まったとき、Bはどうなるのでしょうか。Aが yield break; で止まったとしましょう。何となく、多分BはAと無関係に動き続けるんだろう、……と考えていました。今までそのつもりでコードを書いていたんですが、思い…

UnityでQuadにキャラクタを表示、α値を変更する方法(ジワッと出現させる)

今回はQuadに貼り付けた画像(キャラクタなどを想定)のα値を変化させ、ジワッとお出現(あるいは消滅)させる方法を書きます。 そもそも、ぼくはQuadにキャラクタの画像を貼り付けて表示したいときは以下のようにしています。マテリアルを作っておき(Rende…

Unityでフォグ(霧)を自前でかける

Unityでフォグ(霧)をかける方法はもちろんあると思うんですが、ここでは自前でどのようにしたらフォグの効果を出せるのか、説明します。例えば遠くから敵が攻めてくるときなど、遠くで敵を生成してこちらに近づける、のようにしたいことがあります。ここで…

ゲームでステージが変わるとき、暗転する方法

ぼくはUnityで何かゲームを書くとき、「シーンの変更」というのをやったことがありません。実験で何回か試したことはありますが、実際のプログラムではステージの進行に伴うオブジェクトの処理(削除、新しいオブジェクトの生成など)など、全部自前です(要…

UnityでCinemachineのバーチャルカメラを使う(2)

⬇この記事の続きです。 www.omoshiro-suugaku.com 上の記事を書いた段階ではバーチャルカメラのAimパラメータの働きがどうもよく分かりませんでした。Aimは「カメラをオブジェクトに向ける」働きがあるということですが、それだけでは説明になってない感じが…

2Dシューティングゲーム「InuoShooting」公開しました

ゲームを書くのも久しぶり……というわけでリハビリのつもりでプログラミングしていました。ようやく1本できあがったので公開。 unityroom.com ブラウザゲームを投稿できるサイト、unityroomです。 当初はスマホで動くゲームにしようと思っていましたが、予定…

クエリちゃん、走った!

前の記事で書いたクエリちゃんが走りました。 今まではまったく使っていなかった、3Dのキャラクタのアニメーションをやってみました。テキストは前の記事でも書いたこれ。 作って学べる Unity本格入門[Unity 2023対応版] 作者:賀好 昭仁 技術評論社 Amazon…

Unityで3Dのキャラクタを使ってみる

とりあえず2Dのゲームは書けたので今度は3Dを……と考え、本を購入しました。3Dのキャラクタを扱う本は持っていましたが、一応、新しい方がいいかと思ってあらためて手に入れました。 作って学べる Unity本格入門 [Unity 2023対応版] 作者:賀好 昭仁 技術評…

UnityでCinemachineのバーチャルカメラを使う

バーチャルカメラというのを使ってみました。ゲームで、例えば主人公が動くのを後ろからカメラが追いかけ、立ち止まるとカメラがビューンと動いて(背景もダイナミックに変化!)正面からアップに……みたいな演出がありますよね。いわゆる「カメラワーク」と…

3つのキーの押下を検知できなかった話

押下は「おうか」と読むそうな。多分そうだろうと何となく考えていましたが、今回調べてはっきりしました。いや、本題はそこではなくて……スペース、矢印(右)、矢印(上)が同時に押されていることを確認しようとしましたがうまくいきません。2つしか検知でき…

2Dシューティングゲーム公開準備中!

久々の更新です。職場が変わり、ドタバタしていました。やはり職場が変わるといろいろ分からないこともあり、特に最初は何が何だかわからず、疲れますよね。細かいことでは印刷機の使い方とか授業の教室の位置とか。ようやくあれこれ自然に動けるようになり…

アドバーチャ(Ad-Virtua)でアプリに広告を入れる

アドバーチャ(Ad-Virtua)というのを導入してみました。↓ ad-virtua.com 自作アプリに広告を入れられます。「①再生単価×②再生数×③再生完了率」で収益が決まるそう。ひろはす氏(https://www.youtube.com/watch?v=jyO9zpESSgo)の動画で見て「面白そう!」と…

Unityでサウンドファイル(mp3)の音量をファイル毎に変える方法

ゲームのBGMや効果音を自分で作れる人は限られています。ぼくにそういう能力はないので、ゲームを作るときは何とか調達しなければなりません。ありがたいことに色々なサイトからmp3などのサウンドファイルをダウンロードでき、ぼくはこれを使わせてもらって…

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でもライトが使えるそうで、ゲームに入れてみることに。こんな感じで、よさそうです! しかし、スクリプトから明るさを変化させたかったのですがなかなかうまくいかず、サイトもあちこち見…