今回の内容は、初心者であるオジサンが、Unityをはじめるとどうなるか、東パソで紹介されたUnityで盆場マンほかを作れるかを検証する動画です。(4-003)
恐縮ですが、テレビ東京放送制作の「東京パソコンクラブ」のunityのパートについての考察をはじめました。非公式であります。
1. 環境の変更
これまでの環境はWindows10でUnityのバージョンは2022でしたが、2025年6月時点の現状を鑑みて、今回からWindows11でUnityのバージョンは6000(通称Ver.6)に変更しました。
また、今回は音声合成ソフトAivisSpeech(株式会社Walkers)を採用しました。
なお、YMM4(ゆっくりムービーメーカー4)との連携で、ゆっくりと同様にYMM4経由で使用しています。
2. 「占い」第30回
文字変数をC#スクリプトで採用する際には、今後は従来のテキスト型(Text(Legacy)を採用します。ボタンの上の表示など、ただ表示するのであればTMP(TextMeshPRO)で良いのですが、スクリプトの中の変数として利用する場合には従来のテキスト型が問題なく動作したので、そこで使い分けることになります。
乱数の命令を採用します。Int num = Random.Range(1,4) この場合は整数の変数numに1から3までの乱数を作成させる命令で、引数の1番目(この場合1)は最小、2番前は未満(この場合4)なので4は入らないということです。まあ、つまり、1から3の整数の、3つの乱数ということですね。
実行結果

今回のスクリプト(占い)
Unityの場合、スクリプトのリストだけを完成させても変数や画像の関連付けなどが必要になりますが、紹介しておきます。
第30回 Uranai0_cs

3. 「人生ゲーム」第31回
前回の「占い」からの改造で「人生ゲーム」を作っています。
Text型nokoriTextの宣言は、 int型nokori=10で宣言しておきます。
nokoriText.text=”ゴールまでのこり”+nokori;
これで文字列を変数に応じて変更させます。
その他、いろいろ文字を「人生ゲーム」などに変更していきます。
実行結果

今回のスクリプト(人生ゲーム)
Unityの場合、スクリプトのリストだけを完成させても変数や画像の関連付けなどが必要になりますが、紹介しておきます。
第31回 Uranai.cs

4. 「盆場マン(前半)」第32回
第32回目の作業手順です。
1 ステージの作成
2 爆弾の生成
ステージを作成し、爆弾をスペースボタンで生成されるまでが32回の内容です。
まず、最初に前回のPlayer.csを本編(東パソ第32回)で採用していますが、Ver6へ変更したために、かなり記述が変わりました。ChatGPTに聞いてみると次のような紹介がされました。構造体の直接書き換えの制限ということです。

前回transform.position.xはX座標の位置として解説しましたが、これらの扱いが異なります。
以下に比較して表示しておきます。
まずは、前回Ver2022のPlayer.csです。

そしてこちらが、上記と同じ内容のVer6のPlayer.csです。

1 ステージの作成
壁にはBox Collider2D、PlayerにはCircle Collider2Dの両方のCollider系のコンポーネントで当たり判定を設定します。
壁のオブジェクトをHierarchyからAssetsにドラッグ&ドロップを行い、これを逆にAssetsからHierarchyに持っていくことにより、プレハブ(素材化)という量産が可能となります。量産したものをインスタンスといいます。インスタンスとプレハブにパラメータの差が生じたときは、インスタンスをプレハブにあわせるときはRevert All、プレハブをインスタンスにあわせるときはApply Allボタンで更新ができます。
動画の分秒で登場した壁の各インスタンスのパラメータの表

2 爆弾の生成
まず、GIFアニメをUnityで利用してもできません。

動画の分秒で紹介した爆弾のアニメーションの基となる画像。ちなみにBOMB09.pngは使用しません.

動画の分秒でアニメーションの解説を行っています。
Instantiate(bomb, transform.position, Quaternion.identity)
この文章をif文のスペースキーを押した時に実行するように加えれば、スペースキーを押した時に、爆弾を描くことになります。(本編の放送とは回転しないようにするQuaternion.identityの部分が異なります)
以下はプレイヤーについて回転しないようにする話ですが、これはBOMBについても同様です。

生成したBOMBは壁と同様な設定では不都合ですので、今回はすり抜けられるように設定します。

5. 「盆場マン(後半)」第33回~第35回
第35回の作業手順です。(第33回は後回しで以下の手順4に該当します。第34回は休みです。)
1 プレイヤーが爆風に当たったら消える
2 敵が爆風に当たったら消える
3 (33回の課題)時間が経過してもプレイヤーが消える
4 (33回の課題)マラソンマン
1 プレイヤーが爆風に当たったら消える
前半の設定では、プレイヤーが爆風に当ってもすり抜けてしまいます。まずは爆弾と爆風部分に分けて作り直しをしました。BOMBContoller_csのStartExplosion関数、
ExplosionContoller_csのEndExplosion関数で一連の管理をします。
全体の関係は次の通りです。


すり抜けるかどうか。各コライダー系の設定
| Player | Circle Collider 2D |
| BOMB | 削除、設定しない |
| Explosion | Box Collider 2D |
| Wall | Box Collider 2D |

2 敵が爆風に当たったら消える
敵はPlayerオブジェクトやPlayer.csを基にEnemyオブジェクトやEnemy.csを作成しました。
変更点は以下の通りです。(ちなみに後に登場するGOALの項目も掲げています)
| Player | Enemy | GOAL | |
| 様子 | 白い丸 | 赤い丸 | 黄色い丸 |
| 移動方法 | 移動キー | 1秒後に乱数で方向を決定 | 移動しない。(Goal.csという様なスクリプトも存在しない。) |
3 (33回の課題)時間が経過してもプレイヤーが消える
deltaTime 更新から表示までかかる時間→1秒と決めておけば、どのパソコンでも誤差がでにくくなる
countTime は変数なので、上部にprivate float coutTime;
触れる命令はvoid OnTriggerEnter2D(Collider2D collision)
消える命令はDestroy命令です。
実行結果

4 (33回の課題)マラソンマン
壁を増やして単純にGoal(黄色い丸)を目指す仕様です。GOALオブジェクトにはTagに“Finish”を設定しておいて下さい。
実行結果

今回のスクリプト(盆場マン)
Unityの場合、スクリプトのリストだけを完成させても変数や画像の関連付けなどが必要になりますが、紹介しておきます。
Player.cs

BOMBContoller.cs

ExplosionContoller.cs

Enemy.cs




コメント