tanaka's Programming Memo

プログラミングについてのメモ。

LEGO MicrogameのBUILD YOUR OWN GAME!コンテストに応募しました!

子供の時に遊んでいたLEGOがUnity上で動く!

そんなUnity Hubからインストールできる学習プロジェクトの一つLEGO Microgameを使ったゲームコンテストがLEGO IDEASで開催されるということで応募してみました。応募総数は1,150作品!? 盛り上がってます。

コンテストページはこちら。

ideas.lego.com

応募したゲームは以下から遊べます。

ideas.lego.com

日本だと「ブロック」って言ってますけど、英語表記だと「Brick(ブリック=レンガ)」なんですね。今回初めて気づきました。

目次

制作過程

2/1のUnityさんのツイートでコンテストを知りました。

この直後にUnity Learningが日本語化され、LEGOチュートリアルも日本語化されました。

2/18に青木ととさんが解説してくださいましたUnityステーションのLEGO® を使ったゲーム開発コンテスト「BUILD YOUR OWN GAME!」に参加しよう!YouTube動画で概要を把握した辺りから実働開始。

Unity Hubで2019.4.xや今なら2020.3.xで新規プロジェクトを作成する際に、左のテンプレートに注目するとLEGO Microgameがあります。これをチュートリアルでインストールすると、使い方を短い動画などで知ることができるので、それをざくざくやっつけていきました。

f:id:am1tanaka:20210323180546p:plain
LEGO Microgameのテンプレート

この当時は基本的な指示は日本語化されてましたが動画内は英語でした。操作は出ますし今どきはGoogleアプリとかで簡単に和訳できるので大丈夫だと思います。

動画をぼんやり聞いていたため肝心なところを聞き逃していて備忘録的にツイートしたら青木ととさんからお返事いただけました!ありがとうございました!!

LEGO Microgameで作った作品はunityroomにアップできないということで、習作を1週間ゲームジャムに、という野望は潰えました。今回はLEGOを触りたかったのでこちらのコンテストに専念です。

2/19にLEGO Microgameの組み込みチュートリアルとUnity LearnのLEGO® Microgame - Unity Learnは完了。チュートリアルでは分からなかった実行時にブロックをくっつけたり離したりができるかと、プレイヤーやカメラの制御を追加で調査。

一通り把握できたところで、マウスでクリックした場所に歩かせたり、カメラの操作を試作しはじめました。

この時に作ったカメラのシステムをGet the Ship Back!に採用しています。操作の方は動くブロックに乗り降りする操作などが難しそうだったので、元のLEGO Microgameの操作で進めることにしました。

経験を積んでいるうちに良い設定を発見。Hierarchyは荒れますが細かく調整する場合はこの設定は重宝しました。あとブロックの色を変えるパネルが出たり出なかったりしたのはプレハブの解除が必要でした。チュートリアルでプレハブの解除をしていたのはあったのですがその時はピンと来ておらず、試行錯誤しているうちに再発見しました。

こんな問題も発生しました。そのため予定外のものもStudioで組み立てることになりましたが、これがまた楽しくなってしまって時間が溶けました。

ストーリーや設定を導入のムービーとかで伝えたいけど時間が・・・ということで、なんとなくそういう感じのタイトル画面を作って解決!したことにしました。

最後の最後にこんな不具合も。

1つだけWebGLだとエラーになるステージがあって、その原因がこれでした。staticで軽くできるかと思ったのが仇に・・・。

以下のも最終日に発生したやつ。

「エネルギークリスタルを全て取っていたら、レーザー砲に触れるとクリアできる」という条件を作りたいのだけど、トリガーのネストができないのです。追加の条件はVariableで与えられるのでそちらでやったら、なぜか別のステージに前のステージの条件が表示される。なんでだ!?となったやつでした。

以上で公開しました。LEGO Microgameの事前調査2日+企画&制作3週間ぐらいの楽しいLEGO生活でした^^

間に合わなかった要素

時間がものすごくギリギリになってしまったので、いくつか思いついていた要素を省きました。

  • クリアまでのタイムアタックができるようにしたかった
  • 目標物のミニレーダーが欲しかった
  • カメラは上も見られるように調整した方がよかったかも
  • Stage7の4つの黄色スイッチは、押すごとに敵の足場を一つ一つ爆発させたかった
  • Stage7の敵を喋らせたかった
  • 最終ステージの高速化をしたかった

コンテストが終って手を入れてよくなったら追加するかも知れません。

ステージ紹介

あまり遊ばれないならせめてステージ紹介だけでも・・・。これを見て楽しそうに感じたら遊んでいただければ嬉しいです!!

Stage1

チュートリアルステージ。ほぼ死ぬ要素がない練習ステージ。

f:id:am1tanaka:20210325112358p:plain
ゲームスタート!

奥に見える赤い仕掛けのところの爆発に巻き込まれて死ぬ、という想定外の仕様上の死因以外はほぼ死にどころはありません。スイッチを押しながらずんずん進んでください。

f:id:am1tanaka:20210325113533p:plain
マウスホイールでズームアウトしてステージ全体を見る

クリアするとこんな感じで宇宙船のパーツが組み立てられていきます。

f:id:am1tanaka:20210325113440p:plain
最初のパーツを回収!

Stage2

順番がある、と気付くステージ。細いところを渡るスリルなんかもちょこっと入れました。

f:id:am1tanaka:20210325130112p:plain
ここもショートステージ

f:id:am1tanaka:20210325113455p:plain
でも何も考えてないと詰みます

f:id:am1tanaka:20210325113515p:plain
尾翼を回収!

Stage3

ここからが本番。お気に入りの回る足場から、レーザーを避けたり、仕掛けを組み合わせたり。

f:id:am1tanaka:20210325113724p:plain
タイミングよく渡ろう

f:id:am1tanaka:20210325113609p:plain
レーザーを避ける!

f:id:am1tanaka:20210325113638p:plain
左奥に辿り着くための足場をどうやって作ろうか・・・

Stage4

高台からステージ全体を見渡してから飛び降りて、一番下から登っていく高さを意識したステージです。途中の階段や回転足場がお気に入り。

f:id:am1tanaka:20210325114134p:plain
ステージを一望

Stage5

基地にたどり着け!このステージは回収するものがなく、攻撃をかいくぐってゴールを目指します!

f:id:am1tanaka:20210325114254p:plain
いきなりの砲撃!物陰に隠れてタイミングよく飛び出そう

f:id:am1tanaka:20210325114324p:plain
敵の猛攻!あと少しでゴール!!

Stage6

敵基地に潜入。高さ方向にエレベーター中心に作ったステージです。

f:id:am1tanaka:20210325114422p:plain
スタート地点から仕掛けを観察

f:id:am1tanaka:20210325114511p:plain
エレベーターをうまく使って移動しよう

Stage7

敵アジトの本部へ!

f:id:am1tanaka:20210325114619p:plain
レーザーは扉を閉めて遮断!

f:id:am1tanaka:20210325114657p:plain
怪しげな二人組!こいつらが今回の元凶

Stage8

最終ステージ。塔を登りながらクリスタルを集めて、最後のパーツのレーザー砲で巨大砲台を壊そう!

f:id:am1tanaka:20210325114937p:plain
あのどでかいレーザーに撃ち落された。あれを壊さないと同じ事に...

f:id:am1tanaka:20210325115140p:plain
塔を登りつつ、エネルギークリスタルを回収

f:id:am1tanaka:20210325115205p:plain
エネルギーが充填されたレーザー砲に辿り着いた!ついに...

さいごに

開発は3週間程度と思ったよりかかりましたが、ずっと楽しく作れました。実在のレゴブロックのモデルで組み立てられるツールStudio2.0でオブジェクトを作るのは楽しいですし、実在するブロックなので注文すれば実物を作れる可能性があるのも魅力です。

f:id:am1tanaka:20210328211501p:plain
BrickLinkのLEGO組み立てツールSTUDIO2.0

複雑なことをやろうとするとハマりポイントがありますが、シンプルな仕掛けならBehaviourBrickが充実しているので色々できます。カメラはCinemachineなので簡単に調整可能ですし、プレイヤーも調整用のパラメーターが多いですし外部のスクリプトからある程度の制御も可能です。

ちょっと残念だったのは継承が想定されていないクラスが結構あることでした。もとの動作がハードコーディングされていることがあったりして、その部分を変えたい時に難儀しました。もう一つの残念ポイントはUnity Playでしか公開できないことです。これはかなり痛い。ブロックを複雑に組み合わせることができたり、くっつけたブロックが持っている全ての動作を実行するなど手軽に使えるように工夫されていますが、その分、処理が重くWebGLだとパフォーマンス的に結構厳しいです。ネイティブでビルドできれば・・・とか、VRで使ってみたい、とか、可能性が大きそうなだけに発表先の自由度が低いのは残念です。軽量化されるか、発表先の自由度が増すか、今後の展開に期待しています。

テンプレートからプロジェクトを作ればチュートリアルを通して簡単な使い方が分かります。LEGOや積み木が好きな人は楽しめるのではないかと思います。今回は以上です。後日、作り方なども書いていきたいと思います。

ideas.lego.com

おまけ

無事に応募した記念に買ってしまいました。グローグーを組み立ててみましたが、ブロックがぱっちりハマる手応えは楽しいですし、色々なくっつけ方ができることにも驚きました。楽しいですね、LEGO

f:id:am1tanaka:20210326202953j:plain
ご褒美

f:id:am1tanaka:20210329172032p:plain
LEGOグローグー

関連URL