本日のテーマは『スイカゲーム』風の落ちものパズルを作ろう です
URSuika UnrealEngine製のスイカゲーム風3D落ちものパズルゲーム – BOOTH
無料です(Windowsのみ)遊んでみてください。
ブループリント
スタティックメッシュもゲームのプログラミングで位置を動かしたり回転させたりはできるので、骨と皮の結び付けやアニメーション準備が大変なスケルタルメッシュではなく、今回はスタティックメッシュを動かしましょう
Simulate Physicsを有効にしたスタティックメッシュを空中に配置しておけば、重力で落下するので、あとは位置を指定して出現させるプログラミングができればよさそうですね
ただし、同じものがくっついたら合体するみたいな機能はすべてのメッシュの状態を監視しているゲームマスターみたいな役が担当するのではなく、ぶつかったら合体する能力をもったメッシュがいたほうが管理が楽そうです
そういうふうにある程度自立して動く機能をもったアクターをつくるのに使う仕組みがブループリントです
下図右側のゲームモードはそのステージ全体管理役で、選択中の左がプレイヤーが操作するキャラクターのブループリントです
プレイヤーキャラクターは直接ゲーム画面(UE用語ではレベルといいます)上にはおかれていませんが、ゲームモードがプレイヤースタート位置にスポーン(出現)させています
このアセット(ファイル)はクラスといういわゆる設計書で、ダブルクリックで編集画面を開くと
ビューポートタブが見た目の設計です
コンポーネントタブで、アセット名の直下にあるCapsule Component カプセルコンポーネントというのが、このキャラクターの本体です
その下に矢印で前方向が確認できるようになっていたり、プレイヤーが操作しているつもりの3Dモデルはさっき見たやつです
そして伸び縮みする自撮り棒の先にカメラがついていて、ゲーム中はこのカメラからの映像をみています
もう1個の「Character Movement」は見た目には現れませんが、歩いたり走ったり飛んだり泳いだりといった機能を付ける部品です
滅茶苦茶多機能ですが、現在さらにこれの進化版が開発されています(;^ω^)
Mover in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Community
このツリーに部品を追加していけば、帽子かぶったり武器を持ったり魔法使えたりとそのキャラクターの設計ができます
そしてブループリントといえばこのイベントグラフがおなじみで、プログラミングしなくても箱に線をつないでゲームが作れる。という機能を作りこむ画面です
英数字記号だけで書く一般的なプログラミングと本質は同じです
プレイヤーキャラクターにはあらかじめキーボードやマウス操作入力を受け取って移動やジャンプする機能が用意されています
ジャンプは押したときと離したときで開始と終了が別になっていてキャラクター移動の設定次第で押しているあいだずっと浮いていたりジェット噴射みたいな動きをさせたりもできます
カメラ操作やキャラクターの移動部分は基本的に触らなくていいと思います
玉のブループリント作成
では、落ちものの設計図をつくってみましょう
コンテンツドロワーかコンテンツブラウザで右クリックからブループリントクラスを選びます
親の能力を引き継いだ強い子が作れる仕組みがあり、キャラクターはポーンの子で、ポーンはアクタの子だったりこの下のほうに隠れているところも開くと自分で作ったクラスも含めたたくさんのクラスの中から親を選んで子を作れたりもします
が、今回作るぶつかったら合体する機能はデフォルトにはないし、歩いたりもしないので、もっとも単純なアクタクラスでよいです
まず名前をつけましょう
BluePrint ブループリントの頭文字「BP_」を最初につける慣習があります
Unreal Engine プロジェクトにおけるアセット命名規則の推奨事項 | Unreal Engine 5.5 ドキュメンテーション | Epic Developer Community
これに倣わなくてもゲームは作れますがつけておくと相談するときに相手に伝わりやすいのでなるべくつけましょう
チームで開発する人はチームのルールに従いましょう
実際作るのは玉ですが、スイカゲームなので「BP_Fruit」にしてみました
アセットをダブルクリックで開くとさっきのキャラクタとは違ってほぼ何にもありません
本体は必須なので仮のものが置かれています
ではここに玉の見た目を追加しましょう
追加に球(Sphere)があります
これ1個だと大きいのか小さいのかわかりませんが直径1メートルあります
コンパイルして保存しましょう。
ブループリントクラスをゲームに登場させよう
また、当たり前といえばそうですが、作っただけではゲームに登場しません
設計図であるこのクラスをメイン画面にドラッグして配置してみましょう
BPフルーツという型のアクターができました
ほかのスタティックメッシュなど同様にアウトライナーに載っていますね
これでゲームにも登場しました
実質スタティックメッシュ1つと同じです。物理計算を有効にしていないので重力落下もしません
仮の本体があるまま球を物理シミュレーションすると、本体は動かず体だけ落ちるというおかしな動きになるので、ドラッグして親を入れ替えます
これで球自体がこのブループリントクラスの本体になったので、おかしな挙動をしづらくなります。
詳細欄で物理のシミュレートフィジックスを探してチェックを付けましょう
多すぎてたまに迷子になります(;^ω^)
パラメタ名がわかれば上のメニューで検索もできます
ここにチェックを付けましょう
重さは10キロぐらいですが100にしておきましょう
ちょっとだけバウンドしてボテッとした印象ですね
重さや反発の強さなどパラメタ調整できるものもいろいろありますが、とりあえず玉転がしゲームができました
設計上の重さは100キロでしたが、アクタ個体の設定を上書きすることができます
下だけ1トンにしてみたら、丸いので転がるものの、こっちのほうがゆっくりになります
このように設定を変えられる仕組みをつかえば、柿クラス・りんごクラス・スイカクラスとそれぞれ設計図を作らなくても見た目だけ違って同じ機能をもったフルーツクラスという大きなくくりで開発ができます
できる というだけで、そうしなければならないということはありません
コメント