だらだら〜自由自在〜

インディーゲーム制作チーム GAME GABURI でプログラム担当してます

Reading 3DPlatformTutorial

3DPlatformTutorialを読み中。読みつつメモ

  • このチュートリアルはHierarchyPaneとかProjectPaneとかGameObjectとかUnityの基本用語がある程度分かっている人向け
  • 作りかけの3Dゲームを本チュートリアルの進行とともに作っていく感じ。それでキャラクターアニメーションとかエフェクトとかの説明を一緒にする感じ。
  • まずLapz(プレイヤーキャラ)のGameObject化
  • NearCamera(GameObject)にSpringFollowCamera(Script)をアタッチ
  • TargetにPlayer(Lepz)をセット。名前どおりPlayerとカメラをバネで繋いだ感じのFollowカメラ
    • そのままではLapzは何も出来ないのでスクリプトなどのComponentを追加していく
    • ThirdPersonController(Script)の追加
      • これはCharacterControllerを含むScriptで、キャラ(含むNPC)の移動やコリジョンを処理するもの
      • InspectorPaneのCharacterControllerのCenterを弄ると、キャラアタリ(CapsuleCollider)が移動する。
    • ThirdPersonPlayerAnimation(Script)の追加
      • Animation(モーション)の再生管理。Animationリストを持つ(InspectorのAnimation>Animations)
      • AnimationBlendingもやってるらしい
  • LepzのJet-Packを実装する
    • Jet-PackとはLepzの背中についてるジェット噴射装置。落下中の速度を緩めることが出来るらしい(実装後は)
    • まずパーティクルエフェクトでジェット噴射のエフェクトを作る
      • JetというEmptyGameObjectを作る
      • PlayerGameObjectのtorso階層直下にJetを移動する
      • EllipsoidParticleEmitterの追加
      • ParticleAnimatorの追加
      • WorldParticleColliderの追加
      • ParticleRendererの追加
      • EllipsoidParticleEmitterのパラメータを調整する(SimulationWorldspace?のチェックは外す)
        • Min/MaxEnergyはパーティクルの生存時間
        • Min/MaxEmissionは一定時間に出るパーティクルの量
      • ParticleAnimatorのパラメータを調整する
        • パーティクルの生成〜死亡までのパーティクル色を定義する(ここでは白〜赤〜黒みたいにしている)
      • ParticleRendererのパラメータ調整
        • Particles>Sources>Materials>fire addをJetに追加
      • パーティクルにあわせてPointLightをつける
        • PointLight(GameObject)を生成する。Jet Lightにリネーム
        • 座標を2つのジェット噴射口の真ん中辺に移動する
      • すでに作ったJet(GameObject)をPrefabにする
        • ProjectPaneのPlayerフォルダにJetPrefabを作成。JetGameObjectをここにDrag&Drop
        • JetGameObjectは消す
      • PrefabからJet RとJet LをつくってPlayerのTorsoに配置。Jet Lightも同じところに配置
      • これでパーティクルアニメーションは完成。あとはLepzのジャンプ中のみこれを再生させることが必要
    • Script>Player>JetPackParticleControllerをPlayer(GameObject)に追加
      • これでPlayerがJumpボタンを押したときに、左右のJet(ParticleSystem)とJetLight(PointLight)を連動して起動させる

以上29ページまで。
あと4分の3以上…orz。ThridParsonCharacterControllerとかのScriptの中身は以前ブラックボックス