LoginSignup
3
2

More than 3 years have passed since last update.

Corgi Engineの使用方法メモ2~キャラクター能力設定~【Unity】

Posted at

キャラ操作を設定しよう

コーギー君にたくさんついてるコンポーネントを紐解いていく試み。

もくじ

  1. 設定する能力の選定
  2. 事前準備
    1. 動ける範囲を広げよう
    2. 足場素材の設定
    3. コライダーの設定
  3. 能力の基礎
  4. 能力①:ジャンプ
    1. Character HorizontalMovement とは
    2. 歩行速度変更
  5. 能力②:ダッシュ
    1. CharacterJump とは
    2. ジャンプ設定変更
  6. おまけ
  7. 総括と今後

設定する能力の選定

コーギー君がどんなふうに動けるかを選定する。
ひとまず下記のとおりに可愛いコーギーを目指すこととする。
こんな能力が欲しい!.png

事前準備

動ける範囲を広げよう

フィールド境界を広げる.png
LevelBoundsの範囲をx50、y20、z5ぐらいまで広げる。
欄はLevelManagerコンポーネントの一番下にある。
画面中央の黄色い枠はコーギー君の動ける範囲、白い枠はカメラに写る範囲なので比べながら良い感じに調整するのも楽しい。

足場素材の設定

いい加減白い棒の足場は寂しいので草原を用意してみた。Oh!なんて美しい!
下記の画像を保存し、プロジェクトウィンドウにドラッグ&ドロップ。
※画像は練習など自由にお使いください。
地面.png
地面のスプライトモードを「複数」にしてから保存し、そのあとスプライトエディターを開く。
地面設定1.png
スプライトエディターで画像を切り分ける。
地面0.png
切り分けたらさっそく配置だァ!

ドラッグ&ドロップで良い感じの場所に置いた地面たちをLevelsの子としてまとめておく。
名前も分かりやすいように「地面右端」「地面中央」「地面左端」とかにするとよい。
レイヤーは8:Platformsに指定する。
三つともPlatformsにするのよ!ちなみに親のLevelsのレイヤーをPlatformsにすれば三ついっぺんに変わります。
レイヤー設定.png

ちなみにだがレイヤーの設定を忘れると、「コライダーがあるはずなのにキャラが足場をすり抜けて死ぬ!」という現象が起こります。
どうやら既存のUnityのシステムを上書きしているようだ。

そんなわけで!
出来上がった三つの地面御をプロジェクトウィンドウにドラッグ&ドロップしてプレハブ化してしまえば、素晴らしい足場をいつでもどこでも使い放題だ!

コライダーの設定

コライダー設定.png
3つの地面プレハブにコライダー(当たり判定)を追加すべし。
値はだいたいこんな感じ。

中央 右端 左端
オフセットx 0 0-0.65 -0.6
オフセットy -0.26 -0.26 -0.26
サイズx 5.45 3.34 3.04
サイズy 3.83 3.83 3.83

そして適度に増やす。
適度に増やした地面.png

能力の基礎

さっそくコーギー君を動かしてみよう!
初期設定のコーギー君は以下のキーで動きます。

動き キー 対応するコンポーネント 注意事項
左右移動 A もしくは D Character HorizontalMovement
ジャンプ スペースキー Character Jump
走り 左右移動 + Sift Character Run
ダッシュ F Character Dash 初期設定だと明後日の方向へ飛んでいく
見下ろす S Character Crouch しゃがみ機能でもある
見上げる W Character Look Up
ダイブ S + F Character Dive 画面が揺れて強そうだが攻撃力は無い
ジェットパック 2 Character Jetpack
壁にしがみつく 壁へ向かって A もしくは D Character Wall Clinging
壁ジャンプ スペースキー Character Walljump

他にも色々能力はあるが今は使えないなり。
念のため、リファレンス用一覧だけ記事の最後に置いとく。

能力①:左右移動

ようやく調整に入るなり。

Character HorizontalMovement とは

コーギー君のプレハブを開いてみると、Character HorizontalMovementというコンポーネントがある。
そこが左右移動の設定となっている。
左右移動設定.png
ちなみに!アイコンのところには英語で

 このコンポーネントは、基本的な左右の動き、摩擦、および地面の衝突の検出を処理します。
 ここで標準の移動速度、歩行速度、およびジャンプ/落下後にキャラクターが地面にぶつかったときに使用するエフェクトを定義できます。

って書いてあるぞよ。
詳細は下記公式リファレンスへ。(英語注意)
CharacterHorizontalMovement Class Reference

歩行速度変更

イッヌは足が速いのでWalkSpeedを12に。
愚鈍な人間と違って慣性など無視できるのがイッヌなのでInstantAccelerationへチェックを入れる。
コーギー君すごい!!!

能力②:ジャンプ

CharacterJump とは

コーギー君プレハブに付いてるCharacterJumpがジャンプの詳しい設定を担ってる。
ジャンプ設定.png
!アイコンにある注釈は

 このコンポーネントはジャンプを処理します。
 ここでは、ジャンプの高さ、ジャンプがボタンの押し込み時間の長さに比例するかどうか、最小滞空時間(プレーヤーがジャンプボタンを離した場合にキャラクターがダウンできるようになるまでに空中に留まる時間)を定義できます。
 ジャンプウィンドウの持続時間(崖から落ちた後もジャンプが可能である時間)、ジャンプの制限、キャラクターが地面に再び触れずに実行できるジャンプの数、すり抜け足場(1-Way Platform)や動く足場を通過するときにコリジョンを無効にする時間など。

とのことです。

ジャンプ設定変更

コーギー君は足腰が強靭なのでJump Heghtを4に。
空中でジャンプはこの世の摂理に反するからNumper Of Jumpsを1に。
同じ理由でJump Restrictionsを「Can Jump On Greound」(地上でのみジャンプ可能)へ変更する。
ただし崖から落ちたとき成すすべなく死んでしまうので、Jump Time Windowを0.5として落下後0.5秒間は空中ジャンプを許す。

おまけ

細かな追加設定が必要だが、他にもこんな動きができるらしい。

動き   対応するコンポーネント 注意事項
はしごを上る Character Ladder Ladderコンポーネントをはしごに付ける
階段を上る Character Stairs
泳ぐ Character Swim
ダイブの拡張版 Character SimpleDive
ぶら下がり Character Dangling
物を掴む Character Grip Gripコンポーネントを物側に付ける
物を掴んだり持ち運んだり投げる CharacterGrabCarryAndThrow GrabCarryAndThrowObjectを物側に付ける
でっぱりを掴む CharacterLedgeHang Ledgeコンポーネント&Collider2Dをでっぱりに付ける
ブロックを押す Character Push Pushableコンポーネントをブロックに付ける
他キャラクターを押す Character Push Corgi Controller PushableとCorgiControllerの両方を他キャラクターに付ける
インベントリを使用 Character Inventory InventoryEngineを用意すべし
武器を使用 Character Handle Weapon
セカンダリ武器を使用 Character Handle Secondary Weapon
決定ボタン全般 Character Button Activation NPCとの会話とかスイッチを押すとかに使えるやつ
飛行 Character Fly
体当たり Character Damage Dash 威力のある版ダッシュ
パラシュートを開く Character Glide
加速する Character Speed
斜面に直立できるようにする Character SlopeOrientation
つぶれる Character Crush Detection 岩が落っこちてきたらダメージ判定、とかに使えるやつ
墜落死 Character Fall Damage 一定以上の高さから落ちたらダメージ判定、とかに使えるやつ
可変の重力方向を受ける CharacterGravity 一部機能は普通の重力方向に沿ってしまう模様
パーティクル処理 Character Particles
複数キャラ使用時の操作入れ替え CharacterSwap、CharacterSwapManager
キャラクター外見変更 Character Switch Model プレハブ語と入れ替えたい場合はCharacterSwapManagerの方を使うようだ
ポーズ(一時停止) Character Pause InputManagerとTimeManagerの二つがシーンに必要
強制移動する Character Auto Movement AutoMovementControlZonesで移動方向を操作する
自動移動 Character Follow Path NPC向け。事前設定されたルートを自動移動する

総括と今後

左右移動とジャンプはできたので、次はパラシュートや頭突きを設定していきたい。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2