ORK Framework 3で作ってみよう!(1)〜マップを作成する〜

ORK Framework 3”を使ってみる”、改め、”で作ってみる”シリーズ。
基本情報と目次は以下。


マップを作る

  • そろそろ中身を作っていきたい

  • まずはマップから

    • といっても、マップ自体はUnityの基本機能で作っている

      • 3Dならオブジェクトを配置して、2DならTilemap機能を使って、Collider設定して、という感じ

  • ORKの機能としては、BGMの設定、マップ移動用のイベント設置、カメラの移動範囲の設定などする

マップ画像を配置する

  • サンプルには屋内のマップがないので、練習がてら作ってみる

  • 新しいシーンを作って、Tilemap機能を使ってマップを作る

    • サンプル用のマップ画像がTilePalleteに登録済みなので活用する

      • 各種グラフィックはCC0なので、そのまま使っていいらしい

    • Tilemapの使い方は適当にググって

ORKのマップ画像は室内のグラフィックがちょっと寂しい

マップに音楽をつける

  • マップに限らず、全てのシーンのおけるBGMの付け方

    • ↑のチュートリアルではバトル画面やスタート画面のBGM設定もしてる

  • まずはMakinomで使う音源を登録する

    • Game > Musicから設定できる

    • 新しいBGMを追加したり、ループを詳細に設定できたりするが、今回は登録済みのものを使う

難しい操作はなさそう
  • HierarchyのメニューからMakinom > Music PlayerでシーンにMusic Playerオブジェクトを追加できる

これ
  • Music PlayerコンポーネントのPlay typeからFade toを選択

    • 再生方法の指定。既に再生中の音楽とクロスフェードさせる

    • BGMを止めたい時にはStopも指定できる

  • Music Clipから0: Townを選択

    • Townマップの音楽と同じなので、設定しなくてもいい

町のBGMと重複しても問題ない

場所移動を設定する

  • ツクールでいうところの場所移動は、ORKではScene ChangerとSpawn Pointの2つがセットになっている

    • Scene Changerが移動元のイベント、Spawn Pointが移動先の座標になる

    • Spawn Pointはゲーム開始時の初期位置の指定にも使える

    • ツクールみたいにVector3で座標を直接指定することもできるので、Spawn Pointを使わない方法もあるが、使うのをオススメ

      • オブジェクトとしてシーンに表示されるから、視覚的にわかりやすい

      • 迷路みたいな複雑なマップを作る場合も、移動先の調整がしやすそう

  • HierarchyメニューからMakinom > Scene Changer (2D)でシーンにScene Changerを追加する

これ
  • Scene ChangerオブジェクトのTransformを調整

    • 入り口の前あたりへ移動

  • Scene ChangerコンポーネントのTarget SceneにTownと入力

    • 移動先のシーン名を指定、綴りを間違えないように

  • Position TypeからSpawn Pointを選択

  • Spawn IDのValueに1を入力

    • Townには既にID:0のSpawn Pointが設置されている

      • 町の入り口にあたる

    • 後で家の前に設置するので予約

場所は壁際でいい
  • デフォルトだとCircle Collider 2Dがついているので削除して、Box Collider 2Dを付け直す

  • Box Collider 2DのIs Triggerを有効化し、Sizeを調整

    • Colliderの範囲に入ると場所移動するようになる

    • 地形に合わせて広めに設定したり、狭くもできる

ツクールと違い、サイズを大きくできるのが簡単
  • 次に屋内マップのSpawn Pointを設置

  • HierarchyメニューからMakinom > Spawn PointでシーンにSpawn Pointを追加する

    • 2つ作っておく

    • 追加した時に自動でIDが割り振られる

      • コピペだとIDもそのままなので注意

これ
  • Spawn PointコンポーネントのUse Rotation: Zを有効化

    • これでSpawn Pointの向きと移動時のキャラクターの向きが一致する

    • Z=0だと右、90だと上、180だと左、270(-90)だと下に向く

    • 移動時に逐一向きの指定をしなくていい

  • Spawn PointオブジェクトのTransformを調整

    • ID: 0はドアの前に、ID: 1は部屋の真ん中に移動

      • ID: 1はゲーム開始時の初期位置に使う予定

    • ドアの前はRoationをZ=90、部屋の真ん中はZ=-90に設定

ドアの前ポイント
  • 次にTownに家に出入りする時のScene ChangerとSpawn Pointを設置

  • 同じ要領で家の前にScene ChangerとSpawn Pointを設置

    • Spawn PointのIDが1になっていることを確認

  • Scene ChangerコンポーネントのStartSettings > Interaction > Start TypesのInteractionを有効化

  • StartSettings > Trigger > Start TypesのTrigger Enterを無効化

    • これでドアを調べると中に入る、という処理にできる

    • めんどくさいならTrigger Enterのままでもいい

      • ドアの前を通っただけで入室しないように範囲の設定に気を付ける

  • この設定だとドアを開けて入るモーションは作れない

    • ツクールではお馴染みだがORKだと一手間かかりそう

    • そもそも半開きのドアのグラフィックがないので、そこから準備が必要

    • イベント設置の際にできるかどうかは調べてみる

ドアを調べて入るための設定

カメラの移動範囲を設定する

  • カメラはプレイヤーキャラが画面中央に来るように追従する設定になっている

    • マップの端までくると画面外が見えてしまう

    • 画面外が見えないようにマップ端を広めに作ってもいいが、面倒な時もある

    • 狭いマップでいちいちカメラが動き回るのも煩わしい気がする

ブルーバックが見えちゃう
  • Camera Borderを使ってカメラの移動範囲を制限する

    • 空オブジェクトを作成し、BoxCollider2DとCamera Borderコンポーネントを追加

    • BoxCollider2DコンポーネントのIs Triggerを有効化

    • マップが収まるぐらいのサイズに調整

設定項目は少ない
  • ちなみに、Camera Borderは複数個設置できる

  • Townマップは橋を挟んで右側と左側にCamera Borderを設置している

    • 橋を渡ると区画が切り替わるような演出になる

カメラをぬるっと動かすには別の設定が必要そう

GameStarterを追加する

  • ORKのシステムでゲームを起動するのに必要なもの

  • これがないとそもそも動かない

    • じゃあ最初に入れとけよ

  • ORK Framework > ORK Game Starterで追加

これ
  • ORK Game StarterコンポーネントのStart Gameを有効化

    • これを入れとかないとプレイヤーキャラが配置されない

      • 外しとく意味はあるのか?

これだけだが、大事なもの
  • 最後にBuild Settingで屋内のマップシーンを追加しておく

    • じゃないとシーン移動でバグる

  • テストプレイで確認

家の中に出入りができるようになった


この記事が気に入ったらサポートをしてみませんか?