第4回 PuppetMaster特集
パペマスでユニティちゃんをいじる記事一覧はこちら
PuppetMasterは、Ragdoll(ぐったりする機能)の拡張版です。
Final IKの作者さんによるアセットで、
キャラクターが走って衝突した時に、モーションを再生させたまま、
ダメージを受けた体の部位だけリアルな衝撃を受けるスクリプトです。
PuppetMasterはじめての方はこちらの記事をチェック
今回はユニティちゃんを歩かせて倒れたり衝突したりさせることを目標に挑戦!
サンプルシーン「Melee」のプレイヤーを参考に色々やってみた。
実験1 無料アセットで検証
RPG Character Mecanim Animation Pack FREE
アニメーション/二足歩行
無料
数々の武器アニメ、はしごを登ったり泳ぐ事もできるアニメーションパックのお試し版
いきなり別アセットからですが、苦戦している途中段階の頃の話。
サンプルシーンのキャラを引っ張ってきてコピペで実装してみた。
コンポーネントをコピペしてパラメータを調整して何とか動けるキャラになりました。
スペランカーのような、ちょっとした段差で転ける最弱キャラを作りたい。
物体があれば体が重ならない。
PuppetMasterを実装したことによって、キャラが元より滑らかに動くようになった。
こちらが元の記事。
RPG Character Mecanim Animation Pack FREE
ユニティちゃんを動かすセットアップ方法を書いた記事です。
「外部エディタとPuppetMasterが連携できたら素敵!」っと思って試し、
以外とすんなりいけそうだったけど、倒れた時に問題が・・・
・キャラがダウン時にキャラクター本体が点滅する。(地下と地上を高速で行き来してる)
実装方法が間違ってる可能性あり。正しい方法は実験3で紹介
引き続き検証中。
動いたら手順を公開します。
実験 2 ボクセルキャラは動くかな?
エディタ拡張/モデリング
$27 割引無し
日本作家さんのボクセルエディタ!
こちらの完成キャラクターを使って検証しました。
かなり無茶な設定で動かしてみた。
全然動いてませんが、練習すればいけそうな気もする。
引き続き検証します。
Voxel Importerについてはこちらの記事をご覧下さい。
実験 3
PuppetMasterのサンプルシーン「Melee」のキャラをユニティちゃんに置き換える
作業方針:チュートリアルで使われてる兵士キャラを元にコンポーネントをコピーして動かす。
無理矢理コンポーネントをコピーさせて何度もトライするが上手くいかない。
ムズい・・・何が悪いのか調べて3時間、、まるでなってない挙動。
苦戦した内容
・ユニティちゃんが棒をキャッチできない。
└手動で設定して持てるようになる。攻撃アニメの手の位置が微妙。
・ユニティちゃんのCapsule Colliderが邪魔して物質に当たらない。
└ProjectSettings->Physicsで、Capsule Colliderのレイヤーを分けた。
・障害物に当たったとき吹っ飛ぶと、Character Controller(PuppetMaster専用の)が衝撃前の位置で止まってWASD操作がむちゃくちゃになった。
対処法に悩み、進捗記事を書いていたら・・・
気になるコメントを発見
このシーンでは、BehaviourPuppetによって制御される2つ以上の人形がどのように衝突に対処し、どのように打撃やバット打撃などのアクションを設計できるかを示しています。
特に長いロープを使用する場合は、そのようなシステムの設定を正しく行うには、多くの調整と繰り返しが必要です。
バットを振りながら、同じ方向にWASDでキャラクターを回転させると、より強いヒットを得ることができます。
「Character Controller」のCharacterMeleeDemoコンポーネントで、ヒューマノイドキャラFBXまたは既製のラグドールを「キャラモデルの置き換え」として割り当て、「置換」をクリックすると、キャラモデルを簡単に置き換えることができます。
「キャラセットし「置換」クリックで、キャラモデルを簡単に置き換えできます」
は!?
Character Controllerオブジェクト
あった。これずっと気になってた。
Character Melee Demoコンポーネント
「Replace Character Model」ここか。
「キャラクターコントローラー」のCharacterMeleeDemoコンポーネントで、ヒューマノイドキャラFBXまたは既製のラグドールを「キャラモデルの置き換え」として割り当て、「置換」をクリックすると、キャラモデルを簡単に置き換えることができます。
ヒューマノイドキャラFBXで良い!?
ってことは、「unitychan」Prefabを入れてReplaceしてみる。
何も設定せず、いきなり実行してみた。
すると、アニメーションがおかしい状態で始まった。
同じAnimatorが2つ付いてたので片方消してみると、
ラグドールの設定もしてない状態なのに、いきなり綺麗に動いた!!うおー!
落ちてる棒も拾えて、Eキーで攻撃もできた!
クマさんとおっさんに××されるユニティちゃん
凄い!PuppetMaster、最高ー!!
あとはAnimatorでユニティちゃんのアニメに置き換えたら完成ですね。
他のキャラも出来るか次回まとめたいと思います。
この作品はユニティちゃんライセンス条項の元に提供されています
PuppetMasterのバックナンバーはこちら