■Unity開発メモ用のWiki◎現在扱っていること・Unity全般・MMDからUnityへの変換してインポート・MMDの仕様把握・BlenderでMMDモデルのカスタム

目次


一時メモ

レトロコーギーキャラクターアニメーターコントローラーを参考にする

参考サイト1

◎MASTを使ったマップエディット
  • MASTの描画レイヤーは-5ぐらいがコーギーエンジンのオフセットを重なる?
  • MASTタブ→Tools→「Merge Meshes」を行うとオブジェクトを結合したメッシュが出来る
    • 古い個別のオブジェクトは削除して、コライダーをアタッチして、レイヤーをPlatformにすると地形が出来る

◎「3Dオブジェクト」→「キューブ」で作ったのが当たり判定しない
  • レイヤーを「Platform」
  • 既存のコライダーコンポーネントを削除して「Box Collider 2D」をアタッチすれば出来る?

◎Cinemachineカメラの活用
  • v6.0以降Cinemachineに対応した

◎Character SlopeOrientation
  • 坂道で使う
  • RayCast Lngth:10ぐらい?

タイルセットの作り方

◎準備編
  • Tile Palette の作成
    • 「Window>Tile Palette」→「Create New Palette」
 →プロジェクトにタイルマップができる
    • タイル用の画像を選択、「Sprite Mode」を「Multiple」
    • 「Pixels Per Unit」でタイルのサイズ
    • 「Filter Mode」を「Point (no filter)」
  • スプライトエディタでスライス
  • スライスしたタイルセット用の画像をタイルパレットにドラッグ
    • サブフォルダを作成し、そこに分割されたタイルチップが作成される

◎使用編
  • Hierarchy の「Create>2D Object>Tilemap でタイルマップ使用の準備ができる
  • 当たり判定の注意
    • 「Tilemap」に「Tilemap Collider 2D」のコンポーネントを追加
    • コーギーエンジン使用時は、タイルマップの「タグ」と「レイヤー」の設定を忘れずに
    • タグは「Background」?レイヤーは「Platform」?
    • オートタイル等を実装したい場合はGithubにて拡張する

初期セットアップ

  • Unityの新規プロジェクトを作成
  • アセット「Visual Studio Editor」を削除
    • 削除しないとVisual Studioが起動しない
  • コーギーエンジンをインポートする
  • 3Dオブジェクト→平面を作成
    • Transformで10倍程度引き伸ばす
    • 市松模様のテクスチャを適当なところから用意する
    • 市松模様テクスチャのインスペクター→上級者向け→ラップモードを「繰り返し」にする
  • Directional Lightをシーンに配置する
  • 適当な3Dモデルをインポートしシーンに配置する
  • ディレクショナルライトの向きを調整に3Dモデルに光が当たるようにする
  • 新しく3D確認用のカメラを作成する
    • 3D確認時は最初に作成さえたMainCameraのチェックボックスを切る
    • FOV(視野角)は歪みを低くするため、30に設定する
  • 新しくロック用のレイヤーを作る
    • 地面など、めったに動かさないオブジェクトはロックレイヤーにセットして、レイヤー丸ごとロックする

デモの画面の揺れを切る場合

  • ヒエラルキー「****2DCameras」→「CM vcam1」のインスペクター→「CinemachineVitualCamera」→「Noise」を「BasicMultiChannelPerlin」を「none」に変更する

コーギーエンジン的イベントの発生の仕方

  • コーギーエンジンでプレイヤーが一定範囲内に入った時に、ユーザー定義のスクリプトの関数を呼びたい
  • AIBrain, AI Decision Detect Target Radius, AIActiionUnityEvents, AI Action Do Nothing,自作のスクリプトの5つを用意する
  • AIBrainの設定
    • 上側のStateの「Action」→「AI Action Do Nothing」:「遷移」→「AI Decision Detect Target Radius」
    • True Stateの場合は自身へ Flse Stateの場合は下側の遷移へ飛ばす
    • 下側のStateの「Action」→「AIActiionUnityEvents」:「遷移」→「AI Decision Detect Target Radius」
    • 遷移条件は空白
  • AIActiionUnityEventsの設定
    • ◎の中に自身のオブジェクトをドロップ
    • 先に自作のスクリプトをアタッチ
    • プルダウンメニューから自作スクリプトの中の実行したpublic関数を選択する

キャラクターセットアップ

  • 空のオブジェクトをヒエラルキーに作成し、その子供としてFBXモデルを配置する
  • Characterスクリプトなどは、親のオブジェクトにアタッチ
  • 回転や縮尺は、FBXのオブジェクトのインスペクターで調整する
  • Characterスクリプトの「Character Model」にはFBXオブジェクトをドロップする
  • Box Collider 2Dの大きさを調整する

キャラクターに最低限必要なコンポーネント

◎NPCに必要な最低限のスクリプト
  • Corgi Controller
  • Character

◎プレイヤーセットアップ
  • コーギーエンジンで使う足場は、2Dオブジェクトで「Box Collider 2D」をアタッチしてないと、キャラクターがすり抜けてしまう

2.5D時のキャラクターの向き

  • キャラクターが奥を向くので調整が必要
  • 「XXX3DモデルXXX」→子オブジェクト→「ModelContainer」→子オブジェクト→3Dデータ  の階層構造にする
    • 「ModelContainer」をCharacterコンポーネントの「Character Model」にドロップする
    • Y軸90度回転させる

CharacterのAbilities関連を子オブジェクトにまとめる(階層化)

  • 「Character」コンポーネントのあるオブジェクトの下に「Abilities」オブジェクトを作成する
  • 「Character」インスペクターの「Additional Abilities Nodes」のサイズ「1」、上で作った「Abilities」オブジェクトを指定
  • 「Character」「TopDownEngine」「Health」(「MMhealthBar」)以外のスクリプトは、「Abilities」オブジェクトにアタッチ出来る?

キャラクターの向きを武器の方向と合わせる(ツインシューター方式)

  • 「Character Orientation2D」→「Facing Mode」を「なし」から「両方」に変更する

キャラクターの頭上にHPバーを表示する

  • 「Health」のあるオブジェクトに「MMhealthBar」をアタッチする
    • 「Sorting Layer Name」を「UI」から「Characters」に変更?

ボーンアニメーションのテスト

一番はじめに導入するパッケージ

  • Unity 2D Animation(旧Anima2D)
    • 2D Animation
    • 2D PSD Importer
    • 2D IK(パッケージマネージャ→歯車→アドバンスセッティング→Enable Preview Packagesにチェックを入れると表示される)
→「プレビュー」と書かれている

キャラクターをボーンアニメーションで動かす

  • パーツ分けしたキャラクターの画像を用意
  • フォトショのPSDデータをPSBデータ形式に出力する
 →PSBデータにしなくてもしいが、PSBでインポートすると、UNITY側で勝手にスプライトをスライスしてくれる
  • インスペクターに追加されるPSB関連のオプション
Import Hiddenhidden layersをインポートします
Mosaicレイヤー単位でスライスします
Character RigスプライトをPSBと同じ位置に再配置します
Use Folder GroupingPSBと同じオブジェクト構成で作ります
Pivotキャラクターの中心位置を調整します
  • 「Use Folder Grouping」にチェックを入れる。ヒエラルキーに表示される時にスッキリさせる為

ボーンの設定

  • 「スプライトエディタ」→「」Skinning Editor」→「Create Born」
  • 体の中心となるボーンを作る
    • 下半身ボーン→上半身ボーン→首ボーン→頭ボーン
    • 長髪は工程が増えるので、まずは短い髪のキャラで試す
  • 手足のボーンと体との接続
    • 左右の足のボーンを作るために、下半身ボーンの◎をクリックして半透明のボーンの出るようにする
  • ボーンはコピペ出来るので、似た体型なら量産できる?
  • 「Split Born」でボーンを分割出来る

ジオメトリーの設定

  • 「Auto Geometry」→「Genererate For All Vsiable」でオートで作成
  • 「Born Influense」で微調整を行う
    • ボーンを選択したり動かし、関係ないボーンと関連したものは「-」ボタンで取り除く

ウェイトの調整

IKの設定

  • 上記でボーンやジオメトリを設定したキャラをシーンにドロップ
  • 空ののオブジェクトを作りIK関連のルートとし、「IK Manager 2D」のコンポーネントを追加する。
  • 上記のコンポーネントの「IK Solvers」に、左右の手足と頭、場合によっては髪やアクセサリを追加作成する
  • 手足はLimb(2つまでのボーンをIK制御する)
  • 頭はChain(CCD)
  • 「Effecter」IK制御する先端のボーン。空のオブジェクトを対象ボーンの子として作る
  • 「Target」はインスペクターで「Create Target」ボタンを押す
 →ターゲットを動かすと連動して設定したボーンがIKする
  • 事前にオブジェクトの位置をボーンの先端に合わせる
  • 逆関節の動きになる場合、インスペクターの「Flip」にチェック

細かな詰まった点

  • モーションが途中で途切れる→「アニメータ」の「setting」の「自身に遷移」のチェックを外す
  • □「」□ →アニメコントローラ:モーションの管理を行う
  • 三△ →アニメーションクリップ:個別のモーション
  • モーションに絶対座標?が含まれていると、コーギーエンジンがうまく認識してくれない
  • コーギーエンジンは基本右向き
  • コーギーエンジンはキャラクターモデルを設定しないと反転処理できない
 →Flip Model On Direction Changeをチェック、「X=-1、Y=1、Z=1」

インベントリ・アイテム作成の流れ

  • インベントリのデモはThirdParty→MoreMountains→InventoryEngine→Demosにある
  • シーン上に空のゲームオブジェクトを作り、「Inventories」などの適当な名前をつける
  • その子オブジェクトに「武器インベントリ」「防具インベントリ」「メインインベントリ」「その他のインベントリ」等を作成する
    • インスペクターから「Inventory」スクリプトをアタッチする
  • インベントリの表示の管理は「InventoryCanvas」で行っている
    • 「Inventory input Manager」でインベントリーのキー設定ができる
    • 表示枠のが画像もこの辺で行う
  • 「Inventory Display」スクリプトで表示設定を行う
    • 「Binding」で表示先を指定
    • SEもこの辺で設定する

インベントリシステムを制御するオブジェクトの作成

  • シーン上に空のオブジェクトを作成し「テストインベントリ」と名付ける
  • 上記オブジェクトに「Inventory」スクリプトをアタッチ
    • 「Inventory」インスペクタの設定
      • 「コンテンツ」にインベントリのサイズを設定
      • 「Inventory Type」を「メイン」「Equipment」から選ぶ、追加装備なら「Equipment」でいい?

インベントリの表示の制御をするオブジェクトの作成

  • カメラ関連のオブジェクト→UI関連のオブジェクト→インベントリUI関連のオブジェクトの下に「テストインベントリUI」オブジェクトを作成
    • 「Inventory Sound Player」スクリプトをアタッチする
    • 「Inventory Display」スクリプトをアタッチする
      • 「Target inventory Name」で先程作成した「テストインベントリ」オブジェクトの名前を指定
      • 「Inventory Size」に縦と横のサイズをそれぞれ入力する
      • 「Target choice Inventory」でメインインベントリディスプレイのオブジェクトを指定?
      • 「item Class」で装備するアイテムの種類を指定(防具やポーション等)
      • 「Slots」でスロットの画像の設定を行う
      • 「Tile Text」で装備のタイトルテキストを設定する
      • 「Quantity Text」で在庫数の設定を行う
      • 「Auto setup inventory display panel」を押す?

アイテムの作成

  • プロジェクトウィンドウから右クリック→作成→MoreMountains→inventoryEngineから作りたい種類のアイテムを選ぶ(武器やポーション等)
    • 「ItemID」は、定義したオブジェクトの名前と同じである必要がある
    • 「TargetInventoryName」に先程設定した「テストインベントリ」を指定する
    • 「TargetInventoryName」にメインのインベントリを指定する
    • 「Methods」で「Usable」→消費する装備(弾や爆弾など) 「Equippable」で装備可能な装備か(武器や防具)
    • 「Basic info」にアイテムの説明を設定する
    • 「Image」→「Icon」にアイテムの画像を設定
    • 「Prefab Drop」に対象のアイテムピッカーのオブジェクトを指定する?
    • 「Inventory Properties」でスタックの最大数とアイテムの種類を設定する
◎武器の場合
    • 「Equippable Weapon」で武器関連の設定

アイテムピッカーの作成

  • シーンに配置するアイテムのプレハブを設定していく
  • 「Box Collider 2D」「Pickable Item」「Item Picker」を対象のアイテムのピッカーにアタッチする
  • 「Pickable Item」の「Picked MM Feedbacks」に「PickedMMFeedbacks」を指定
  • 「Item Picker」の「Item」に先程設定したアイテムを設定する

上記で設定したオブジェクトの子オブジェクトの設定

  • 画像関連のオブジェクト、(アイテムの影用のオブジェクト)、(画面効果関連の設定)、(LOOT関連の設定)
  • 「スプライト」にアイテムのスプライトを設定する
  • 追加設定→ソートレイヤーで「Above」に変更する?

スプライトキャラクターのセットアップ

スプライト画像の設定

  • スプライト素材を用意する
    • 分割された素材なら結合する
  • スプライト画像をインポートし、インスペクターでテクスチャタイプを「スプライト(2DとUI)」、スプライトモードを「複数」に変更
    • Sprite Editorでスライス→自動→適用する、でスプライト画像が分割される

アニメーションクリップの作成

  • プロジェクトウィンドウのスライスしたPNG画像には「◀」アイコン付き展開できる
  • 展開した画像の中から「右移動、下移動」などアニメーションクリップにしたい画像を複数選択して、ヒエラルキーにドロップする。
  • 同じアセットの所にアニメーションクリップができる。必要なモーション分のアニメーションクリップを作成する
    • シーンに作成されたオブジェクトやアセットのアニメーターコントローラーは削除していい?

アニメーターの作成

  • 1から作ると面倒なので、TopDownEngineのデモにある「GrassLands」の「HornsRed」のアニメーターを流用する
  • 上記のアニメーターは「IdleBlendTree」「AttackBlendTree」「WalkingBlendTree」の3つのブレンドツリーのブロックから構成されている
    • 「IdleBlendTree」の設定する
  • スプライトの8方向移動の参考

ゲームオブジェクトの設定

  • ヒエラルキーに空のゲームオブジェクトを作成、その下に子の空オブジェクトも作る
  • その子オブジェクトに上で作ったスプライトをアタッチする。
  • 同じく上で作ったAnimatorコンポーネントをアタッチする
  • コンポーネントを追加→TopDownEngine→キャラクター→コア→キャラクター
  • インスペクターのキャラクター→「Auto Bild Player Character 2d」でオートビルド
  • 「Character Handle Weapon」を追加でアタッチする

アニメーションに関するメモ

  • スプライトのアニメーション
    • プロジェクトで画像をインスペクターのスプライトエディタで分割する
    • 分割されたスプライトから表示したい画像をの複数選択して、シーンに投げ込む
      • ループされない→ループ時間はチェックされているか?
      • スピードを変更したい→
  • 初期スポーン用のプレイヤーの設定
    • 「LevelManager」→「Player Prefabs」→「Element 0」

◎参考用のプレハブの場所
  • トウフ君
 →Assets\CorgiEngine\Demos\Minimal\Prefabs→「Rectangle」

基本的なアニメーションについて

◎アニメーションの仕方
  • 「CharacterAnimationParametersInitializer」→「」自動でアニメーションのパラメータが作成される
  • 待機: Active、idleがTrue
  • 移動: Walking、GroundedがTrue
  • 死亡: Activeがfalse

◎アニメーションセットアップ
  • ループさせたいモーションの場合、アニメーションクリップの「時間をループ」のチェックボックスを入れているか?
  • 途中で遷移するモーションの場合、遷移矢印の「終了時間あり」チェックボックスを外しているか?

◎待機モーションをプレイヤーに行わせる
  • アニメーターコントローラー(以下アニコンと略)を作成する
  • アニコンに待機モーションをドロップする
  • プレイヤーにアニコンを取り付ける

◎歩きモーションを追加し、待機状態と歩き状態を行き来出来るようにする
  • 新たに歩くモーションをアニコンにドロップする。
  • コーギーエンジンの場合、プレイヤーのオブジェクトに「InitializeAnimatorParameters」をアタッチしてパラメータを自動登録してくれる
  • 遷移条件は「Walking」がTrueの時、「待機」→「歩く」、戻るときは条件を逆にする

◎ジャンプ処理の追加
  • アニコンを右クリックから「サブステートマシンの作成」

武器用のアニメーションの設定

Projetile Weapon→ 「Animation Parameter Names」以下のパラメータに名前をつけて、アニメータの条件の設定で使う
Use Animation Parameter
Stop Animation Parameter
Weapon Angle Animation
Weapon Angle Relative Angle Animation

◎コーギーエンジン用武器の設定
  • 空のオブジェクト→遠距離武器の場合「ProjectileWeapon」、近接武器の場合「MeleeWeapon」のコンポーネントを追加

◎武器のセットアップ
  • 「キャラクターコンポーネントをアタッチしたオブジェクト」→「スプライトをアタッチしたオブジェクト」の下に「WeaponAttachment」オブジェクトを作成する
    • これにメインウェポンがアタッチされる

NPCキャラクターの設定

近接攻撃してくる敵の作りかた

AIBrainの設定
  • 以下のコンポーネントを「AiBrain」のあるオブジェクトにアタッチする
    • 「AIDecisionDetectTargetRadius2D」「AIDecisionTargetIsAlive」「AIAcitonDoNothing」「AIActionMoveTowardsTarget2D」「AIActionShoot2D」「AIDesionDistanceTotarget」
  • 「Detecting」「Moving」「Attacking」の3ブロックで構成
  • Detecting
    • Action
      • 1-AIAcitonDoNothing
    • 遷移
      • 1-AIDecisionDetectTargetRadius2D
      • True:Moving
      • False:---
  • Moving
    • Action
      • 1-AIActionMoveTowardsTarget2D
    • 遷移
      • 1-AIDecisionDetectTargetRadius2D
      • True:---
      • False:Detecting
    • 遷移
      • 2-AIDecisionTargetIsAlive
      • True:---
      • False:Detecting
    • 遷移
      • 3-AIDesionDistanceTotarget
      • True:Attacking
      • False:---
  • Attacking
    • Action
      • 3-AIActionShoot2D
    • 遷移
      • 3-AIDesionDistanceTotarget
      • True:---
      • False:Detecting

接触でダメージ受ける敵の作り方

AIBrainの設定
  • 「AIDecisionDetectTargetRadius2D」「AIDecisionTargetIsAlive」「AIActionMoveTowardsTarget2D」「AIActionMoveRandomly2D」コンポーネントをアタッチ
  • 「MovingRandomly」「MovingToTarget」の2つのブロックで構成
  • 「AIActionMoveTowardsTarget2D」の「Minimum Distance」がデフォルトの1のままだと、相手と重ならないためダメージを与えられないので、「0.1」程度に設定
  • MovingRandomly
    • Action
      • 1-AIActionMoveRandomly2D
    • 遷移
      • 1-AIDecisionDetectTargetRadius2D
      • True:MovingToTarget
      • False:---

MovingToTarget
    • Action
      • 2-AIActionMoveTowardsTarget2D
    • 遷移
      • 1-AIDecisionDetectTargetRadius2D
      • True:----
      • False:MovingRandomly
      • 2-AIDecisionTargetIsAlive
      • True:----
      • False:MovingRandomly
DamageOnTouchクラス
  • 「Box Collider 2D」の「トリガーにする」にチェックを入れる
  • このコンポーネントをオブジェクトに追加すると、衝突するオブジェクトに損傷を与える可能性があります
  • TargetLayerMask:Player
  • PerfectImpact :これをtrueに設定すると、オブジェクトが死の影響ポイントにテレポートします。発射物のような動きの速いものに便利です
  • DamageCaused = 10 :プレイヤーの体力から取り除く体力の量
  • DamageCausedKnockbackType :ダメージを与えるときに適用するノックバックのタイプ
  • DamageCausedKnockbackDirection:ノックバックを適用する方向
  • DamageCausedKnockbackForce = new Vector3(10、10、0):損傷したオブジェクトに適用する力。
  • InvincibilityDuration = 0.5f :ヒット後の無敵フレームの持続時間(秒単位
MMPoolableObjectクラスリファレンス
  • このコンポーネントはBox Collider 2Dのある場所にアタッチする
  • 「Bounds Based On」を「Colider 2D」に変更
  • このクラスを、objectPoolerからプールする予定のオブジェクトに追加します。これらのオブジェクトは、Destroy()を呼び出して破棄することはできず、非アクティブに設定されるだけであることに注意してください(これが要点です)。

射撃武器関連のクラス

MMSimpleObjectPoolerクラス
  • 薬莢関連?
ProjectileWeaponクラス
  • USE
    • TriggerModes: この武器はセミオートまたはフルオートですか?
    • DelayBeforeUse = 0f :使用前の遅延、それはすべてのショットに適用されます
    • DelayBeforeUseReleaseInterruption = true :ボタンを離して使用前の遅延を中断できるかどうか(trueの場合、ボタンを離すと遅延ショットがキャンセルされます)
  • Magazine
    • MagazineBased :武器がマガジンベースであるかどうか。そうでない場合は、グローバルプール内に弾薬を入れるだけ です
    • MagazineSize = 30:マガジンのサイズ
    • 自動リロード:これが当てはまる場合、
    • ReloadTime : 武器をリロードするのにかかる時間リロードが必要なときに発射ボタンを押すと、武器がリロードされます。それ以外の場合は、リロードボタンを押す必要があります
    • AmmoConsumedPerShot :武器が発砲するたびに消費される弾薬の量
    • AutoDestroyWhenEmpty:これがtrueに設定されている場合、弾薬が残っていないときに武器は自動的に破壊されます
    • AutoDestroyWhenEmptyDelay :空の場合の武器破壊までの遅延(秒単位)
    • CurrentAmmoLoaded :武器内に装填されている弾薬の現在の量
  • Position
    • WeaponAttachmentOffset :WeaponAttachmentトランスフォームの中心にアタッチされると、武器に適用されるオフセット。
    • FlipWeaponOnCharacterFlip :キャラクターが反転したときにその武器を反転する必要がありますか?
  • Movement
    • ModifiedMovementWhileAttacking :これが当てはまる場合、武器がアクティブな間、乗数が動きに適用され ます
    • MovementMultiplier = 0f :攻撃中の動きに適用する乗数
    • PreventAllMovementWhileInUse :これが本当の場合、武器がアクティブである間、すべての動きが妨げられます
  • Recoil
    • RecoilForce = 0f :撮影時にキャラクターを押し戻すために適用する力
  • Animation
    • アニメーター :この武器が使用されるたびに更新したい他のアニメーター
    • WeaponAnimationID :アニメーターに渡す武器のID

NPCにAIと武器を組み込む

CharacterHandleWeaponクラス
  • InitialWeapon: キャラクターが所有する最初の武器
  • CanPickupWeapons :これがtrueに設定されている場合、キャラクターはPickableWeaponsを取得でき ます。
  • WeaponUseFeedback :武器が使用されるたびにキャラクターレベルでトリガーされるフィードバック
  • WeaponAttachment :武器が取り付けられる位置。空白のままにすると、this.transformになります。取り付けたい位置のオブジェクトをドロップする
  • ProjectileSpawn :発射物がスポーンされる位置(安全に空のままにすることができます)
  • AutomaticBindAnimator :これが本当の場合、このアニメーターは自動的に武器にバインドされ ます
  • AmmoDisplayID:AmmoDisplayのIDこの機能は更新する必要があり ます
  • AutoIK :これが当てはまる場合、可能であればIKが自動的にセットアップされます
  • ContinuousPress :これが本当なら、自動リロードするために発射ボタンを離す必要はありません 。
  • GettingHitInterruptsAttack :このキャラクターが攻撃を受けるかどうかは、攻撃を中断する必要があるかどうか(武器が中断可能としてマークされている場合にのみ機能します)
  • BufferInput:攻撃入力をバッファリングする必要があるかどうか。別の入力が実行されている間に攻撃を準備できるため、攻撃の連鎖が容易になります
  • NewInputExtendsBuffer:これが当てはまる場合、すべての新しい入力はバッファを延長し ます。
「AI Brain」
  • 「Moving」「Deciding」「Ataacking」の3ブロック
  • Movingブロックの設定
    • Action
      • 4-AIActionMoveRandomly2D
      • 3-AIActionAimWeaponAtMovement
    • 遷移
      • AIDestestTargetRadius2D
      • TrueState:Deciding
      • FalseState:---
  • Decidingブロックの設定
    • Action
      • 1-AIAcitonDoNotiong
    • 遷移
      • AIDecisionTargetIaAlive
      • TrueState:Ataacking
      • FalseState:---
  • Ataackingブロックの設定
    • Action
      • 2-AIActionShoot2D
    • 遷移
      • AIDecsiinDistanceToTarget
      • TrueState:---
      • FalseState:Moving
「AIDecisionDetectTargetRadius2D」
  • この決定は、TargetLayerレイヤーマスク上のオブジェクトが指定された半径内にある場合はtrueを返し、そうでない場合はfalseを返します。また、Brain'sTargetをそのオブジェクトに設定します。
  • 「半径」→8
  • 「Target Layer」→Player
  • 「Obstacle Mask」→Obstacle
「AIDecisionTargetIaAlive」
  • この決定はBrainの現在のターゲットが生きている場合はtrueを返し、そうでない場合はfalseを返します
「AIAcitonDoNotiong」
  • 何もしない
「AIActionShoot2D」
  • 現在装備されている武器を使用して撃つアクション。武器が自動モードの場合、状態を終了するまで射撃し、SemiAutoモードでは1回だけ射撃します。オプションで、キャラクターの顔(左/右)をターゲットにして、ターゲットを狙うことができます(武器にWeaponAimコンポーネントがある場合)。
  • 「Aim at Target」にチェック
「AIDecsiinDistanceToTarget」
  • この決定は、現在のブレインのターゲットが指定された範囲内にある場合はtrueを返し、そうでない場合はfalseを返します
  • 「Comparison」→「LowerThan」
  • 「距離」→8
「AIActionAimWeaponAtMovement」
射撃していないときは、現在の動きに武器を向け
「AIActionMoveRandomly2D」
CharacterMovement能力が必要です。パスに障害物が見つかるまで、キャラクターをランダムに動かします。障害物が見つかると、ランダムに新しい方向を選択します

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

【メニュー編集】

スカイリム関連

スカイリム関連


Menu

【メニュー編集】

スクリプト関連

フリーエリア

管理人/副管理人のみ編集できます