スクリプト/アニメーション
$21.60(割引無し) 【更新日】2018年1月10日
キャラクターの胸や髪の毛、スカートなどを物理的に揺らすためのスクリプト。
バーチャルYoutuberや、VRChatの方に絶大な人気を誇る、
アセットストアで一番人気「揺れもの」スクリプトです。
この記事でわかること
・一般的な「DynamicBoneCollider」のセットアップ方法
・調べても情報が出てこない「DynamicBonePlaneCollider」の使い方は次回紹介!
・重力で髪の毛が垂れる
少しでも多くの方の参考になれば幸いです〜!
プロ生ちゃんがスカートの揺れ点検の助手をします。
※ これはもうちょっと先になります。
役立つ記事になるように全力で頑張るよ!!
近況
12時間経過。ただいま苦戦しています。(~_~;)
Final IKのVR IKと一緒に実装するとBoneColliderが反応しなくなる・・・。
これって私だけ?
バーチャルYoutuberさん達は普通に使えてるから、正しい設定方法は必ずあるはず。
重力も同様ですね。
お知らせ(イベント第二弾!7月31日まで)NEW!!
購入額に応じて人気アセットが無料でゲットできるイベント第二弾開催中!
今回のテーマは「IK制御」と「SF」
・「Bio IK」($30達成で無料化)
バーチャルYoutuberができちゃうパワフルなIK制御アセット。
ゲーム中で指定したポイントにキャラの腕や指先をスムーズに動かせるエディタです!
・「SF系の人気アセット 4種類」売り上げTOP10で良く見かける乗り物、キャラ、背景、宇宙生成
※ 「イベントページ」でエントリーしてから購入することをお忘れ無く!
【イベント開催期間】2018年7月1日〜7月31日(火)まで
詳しくは記事最下部をチェック!
この記事の目標
スカートや髪の毛が体にメリ込まないように防止する「BoneCollider」スクリプト。
初心者さんでも理解できるように出来る限り調べます。
この記事の完成形
重力で髪の毛がだら〜んと下がって、髪が体にめり込まない。
「フルボディでコリジョンを設定する方法」を具体的に解説します。
ぷにぷに触って楽しむDynamicBone
髪の毛だけCubeが触る動画ですが、胸やお尻に使えば・・・
ブログ的にNGなので動画は出せませんが出来ませんが、
”触って楽しむ” 使い方も出来ますよ。
(キャラの手にColliderをセットすれば....あとはわかるよね。笑)
DynamicBoneColliderの種類
キャラクターに取り付けるめり込み防止用のスクリプトがあります。
- DynamicBoneCollider(球体コライダー)
- DynamicBoneColliderBase(謎)
- DynamicBonePlaneCollider(平面コライダー)
基本的に「DynamicBoneCollider」を活用します。
※ 理想的な挙動が出ない時は「DynamicBonePlaneCollider」を使います。
このPlaneColliderの実装方法については次回紹介します。
「DynamicBoneCollider」(球体コライダー)
球体のColliderです。太ももなどに取り付けてスカートがめり込まないように防止します。
「DynamicBoneColliderBase」調査中
謎。Fourmにもどこにも詳しく書かれていない。
きっと使えるはずなので調べ続けます。
「DynamicBonePlaneCollider」(平面コライダー)
ネットで調べても情報が出てこないv1.2から実装された新機能。
「DynamicBonePlaneCollider」
手探り状態ながら色々触っていたら、なんと使い方が判明しました!ヤッター (>_<)b
あみ出した実装方法と挙動を記事後半で紹介します。(次回紹介します)
これは使えるかも!?
DynamicBoneのColliderを知る
コライダーを設置しないと、ユニティちゃんの「髪」が体にめり込んでしまいます。
これを解消する方法とColliderの仕組みを紹介していきます。
※Dynamic Boneの「揺れ」に関するセットアップ方法は過去記事をチェック!
① 髪オブジェクトを探す
ユニティちゃんの大きな髪は、
「J_L_HairTail_00」「J_R_HairTail_00」の2つです。
とりあえずこれだけ紹介します。
②「Dynamic Bone」のコライダーに関する項目
Radius
値を0.09程度にすると↑のサイズで「白い球体ギズモ」が現れます。
これは衝突判定を表すギズモ。
髪と同じ程度の大きさになるように調整します。
Radius Distrib
連結するボーンの凹凸を曲線で表現。
毛根から毛先にかけて緩やかに大きくなる→結び目で小さく→ラストは大きく。
ボーンの連結でRadiusのサイズを大小指定したい時に曲線で表すことができます。
ちゃんと設定すればリアルになることと、すり抜け防止としても活用できる。
Colliders
衝突するオブジェクト(Dynamic Bone Collider)が設定されているオブジェクトを指定します。
※ここでユニティちゃんの体部分を設定します。
Exclusions
指定したボーンから先が揺れ動かなくなります。
これを指定するとRadiusの白い球体ギズモが消えてしまい衝突判定から除外されます。
※まだCollider設定を行っていない状態
Freeze Axis
揺れの角度を固定します。
Collider無しで衝突させない方法です。
ユニティちゃんの場合、Y軸に固定すれば体にめり込まなくなります。
② 重力のパラメータ
Colliderとはあまり関係ないですが、重力の設定方法をここで解説します。
「Gravity」のY軸パラメータに「-0.02」を指定すれば大体OK!
髪の毛が重力で垂れ下がるような効果が出せます。
DynamicBoneColliderの仕組み
キャラに取り付ける前に、まずは挙動の確認から!
空のゲームオブジェクトに「DynamicBoneCollider」をセットします。
すると黄色の球体ギズモが現れました。
これが衝突判定を受ける影響範囲になります。
一見、「Sphere Collider」っぽく見えますが、
実は「Sphere Collider」と同じタイプのコライダーです。
検証
「Dynamic Bone Collider」のHeight値を試しに2.85辺りにします。
すると、ギズモが二手に分かれます。
髪の毛のColliderにこのオブジェクトをセットしてから、
左右に移動すると...
なんと、中間の何も無いところに影響が起きました!
この仕様を頭にいれながら、キャラの各部をセットアップしていくと
全身に綺麗に取り付けることができますよ!
体の各部をセットアップする
それでは「Sphere Collider」を体に取り付けて行くイメージで実装しましょう!
頭(Head)
これは既存の「Character1_Head」オブジェクトに取り付けました。
胴体(Spine)
本当は体が猫背になった時用に、いくつか分けるべきですが、
とりえあず胴体を覆うようにコライダーを実装しました。
胸(Chest)
胸ぷにぷにが出来る様に、ユニティちゃんの胸にColliderを取り付けた。
できたらお尻もやっておくといいですよ。
腕(Character1_LeftArm / Character1_LeftForeArm)
「空のオブジェクト」を取り付けて、中間ポイントに設置しました。
同じように右腕も作ります。
足(Character1_LeftUpLeg / Character1_LeftLeg)
腕と同じように、実装します。
全身セットアップ完了
あまり多いと負荷も大きくなりそうなので、
ざっくりと付けてみました。位置も微妙に修正しています。
髪にコライダーをセットして完成。
全11箇所。どこに衝突しても大丈夫なようにセットアップすると..
髪の衝突判定が完成します!
次回予告
次回は「スカート」に挑戦します。(今日やってた事ですが)
中々うまく行かず何度もセットアップを繰り返しましたが、
スカートが太ともに貫通したり変な挙動になりましたが、
それを防ぐ方法として、v1.2.0から実装された新機能
「DynamicBonePlaneCollider」を活用すれば回避できそうなので具体的に紹介します。
次回はいつ頃?
今日は月曜日。
深夜にセールの発表や、新作アセットがリリースされる日ですが、
私が「Dynamic Bone」楽しいモードなので、
速報レベルのアセットが来なければ、
このまま連続で「Dynamic Bone」の記事を投稿しようかなと思ってます。
「セール情報&無料化アセット」については姉妹サイトをチェックしてね!
Readme.txt(機械翻訳)バージョン1.2.0
ダイナミックボーンはキャラクターの骨や関節に物理学を適用します。
シンプルな設定で、あなたのキャラクターの髪、布、胸、またはあらゆる部分が現実に動くでしょう。
Assets / DynamicBone / Demo / Demo1を開いて動作を確認します。
ご不明な点がございましたら、willhongcom @ gmail.comまでご連絡ください。
-------------------------------------------------- -----------------------
基本設定:
1.適切に設定された文字を準備すると、Mecanimと従来のリグの両方がサポートされます。
2.ダイナミックボーンを適用するゲームオブジェクトを選択します。
3.コンポーネントメニューで、Dynamic Bone - > Dynamic Boneを選択します。
4.インスペクタで、ルートオブジェクトを選択します。
5.動的骨パラメータを調整します(次のセクションの詳細の説明を参照)。
必要に応じて、コライダーオブジェクトを追加できます。
1.コライダーがアタッチするゲームオブジェクトを選択します。
2.コンポーネントメニューで、Dynamic Bone - > Dynamic Bone Colliderを選択します。
3.コライダーの位置とサイズを調整します。
4. Dynamic Boneコンポーネントでは、コライダーのサイズを大きくし、対応するオブジェクトを追加します。
-------------------------------------------------- -----------------------
ダイナミックボーンコンポーネントの説明:
- ルート
物理を適用する変換階層のルート。
- 更新レート
内部物理シミュレーションレート。フレーム/秒で測定。
- UpdateMode
通常:通常の更新。
AnimatePhysics:フィジックスエンジンと同期するためにフィジカルループ中に更新されます。
UnscaledTime:Time.timeScaleから独立して更新されます。
- ダンピング
どのくらいの骨が減速した。
- 弾力性
各骨を元の向きに戻すために適用された力。
- 剛性
骨の元の向きがどれくらい保存されているか。
- 不活性
どのくらいキャラクタの位置変化が物理シミュレーションで無視されるか。
- 半径
各骨は、衝突者と衝突する球体とすることができる。半径は球のサイズを表します。
- ダンピング分布、弾性分布、剛性分布、不規則分布、半径分布
階層チェーン上でのパラメータの変更方法曲線の値は、対応するパラメータに乗算されます。
- 終わりの長さ
End Lengthがゼロでない場合、変換階層の最後に追加のボーンが生成され、
長さは最後の2つの骨の距離で乗算されます。
- 終了オフセット
End Offsetがゼロでない場合、変換階層の最後に追加のボーンが生成され、
オフセットは文字のローカルスペースにあります。
- 重力
力は、世界の空間の骨に適用されます。キャラクターの初期ポーズに適用される部分的な力は相殺されます。
- 強制
力は、世界の空間の骨に適用されます。
- 衝突
Colliderオブジェクトは、骨と相互作用します。
- 除外
骨は物理シミュレーションから除外されます。
- 凍結軸
特定の平面上を移動するように骨を拘束する。
- 遠隔ディスエーブル、参照オブジェクト、オブジェクトまでの距離
キャラクターがカメラやプレーヤーから遠い場合、物理シミュレーションを自動的に無効にします。
参照オブジェクトがない場合、デフォルトのメインカメラが使用されます。
Dynamic Bone Colliderコンポーネントの説明:
- センター
オブジェクトのローカル空間にある球またはカプセルの中心。
- 半径
球またはカプセルの半径は、変換のスケールでスケーリングされます。
- 高さ
2つの半球を含むカプセルの高さは、変換のスケールでスケーリングされます。
- 方向
カプセルの高さの軸。
- バウンド
骨を外側に束縛するか内側に束縛するかを制限する。
-------------------------------------------------- -----------------------
ダイナミックボーンスクリプトリファレンス:
- パブリックvoid SetWeight(float w);
物理学と既存のアニメーションとの融合を制御します。
- パブリックvoid UpdateParameters();
実行時にパラメータを更新し、パラメータを変更した後にこの関数を呼び出します。
-------------------------------------------------- -----------------------
バージョン履歴
1.0.1初期リリース。
1.0.2インスペクタのUIを改善しました。
1.0.3有効/無効にすると不活性不安定になる不具合を修正しました。
1.1.0カーブを使用して、階層チェーン上のパラメータを設定します。
Colliderは束縛内の骨を束縛するように設定できます。
1.1.1除外設定を追加します。
1.1.2負のスケール問題に対処する。
1.1.3ボーンにスケールが含まれているバグを修正しました。
1.1.4フリーズ軸を追加する。
スクリプト経由で追加したときにバグを修正しました。
1.1.5遠隔ディスエーブルを追加します。
GCの割り当てを減らす。
1.1.6カプセル衝突者のバグを修正しました。
1.1.7 Unity 5のサポート。
1.1.8負のスケールに起因する問題を修正しました。
1.1.9マイナススケールの検出を改善する。
衝突者が内部に設定されているとバグを修正しました。
UpdateMode設定を追加します。
1.1.10 Unity 5.4以降のマイナススケールによる問題を修正しました。
1.2.0ツールチップを追加する。
平面コライダーを追加します。
実行時にパラメータを更新する関数を追加します。
Dynamic Boneの記事一覧
① 2018年5月17日
初見さん用。セットアップ方法を解説します。
② 2018年5月25日
挙動パラメータについて徹底的に調査!
Damping(減衰)、Elasticity(弾性)、Stiffness(剛性)、Inert(不活性 / 鈍い / のろさ)
③ 2018年7月1日
Colliderの基本的な特性の紹介と、
衝突判定の実装方法、キャラの髪や胸をぷにぷに触って遊べる方法を紹介。
④ 2018年7月9日
v1.2.0の新機能「DynamicBonePlaneCollider」の使い方を解説。
ベッドで髪が乱れる挙動と、ユニティちゃんのスカートめり込み問題に挑戦。
⑤ 2018年8月13日
真夏のアドベントカレンダーにて、カーブグラフの活用方法と、
パラメータ設定例を紹介しました。
7月も続行!ご利用額達成で大人気アセットを無料でGET
お得なイベントのお知らせ(2018年7月31日まで)
アセットストアのUnity公式イベント第二弾がスタートしました!!
今回のテーマは「IK制御」と「SF」
・「Bio IK」($30達成で無料化)
VRデバイスでキャラをコントロールしてバーチャルYoutuberができちゃう安価なIK制御アセット。
・「SF系の人気アセット 4種類」乗り物、キャラ、背景、宇宙生成
※ 最低額のハードルが前回より下がって達成しやすくなりました。
・「$50」→「$30」
・「$250」→「$199」
「$30」達成条件の「Bio IK」が熱い(欲しい)!!
↓6月の公式Twitterですが、ルールはだいたい同じです。
URLと価格、対象アセットが違うのでご注意ください。7月イベントページはこちら
【( セールではないお得な情報♪ )】
— UnityAssetStoreJapan (@AssetStore_JP) May 31, 2018
普段アセットの購入時に使用しているUnity ID(メールアドレス)を下記URLから登録しておくと、https://t.co/gakRXHFIVU
なんと!6月中のアセットストアでのご利用額が$50、$99、$250以上になると大人気アセットを最大5つ無料でプレゼントしちゃいます♪ pic.twitter.com/Pn1SpZWjjl
【最大$311ドル分お得になる情報♪】
— UnityAssetStoreJapan (@AssetStore_JP) June 6, 2018
ページを日本語訳しました。
URLが異なりますが英語版・日本語版のどちらから登録いただいてもちゃんと対象になりますよ〜!https://t.co/AlQMDV8sbP pic.twitter.com/0jqnoBSLT8
【イベント開催期間】2018年7月1日〜7月31日(火)まで
参加方法(必須条件)
イベントに参加するには、
イベントページにてUnity ID(メールアドレス)を登録する必要があります(重要)
エントリーしてから、イベント期間中に$30、$99、$199以上ご購入すると、
ご利用額に応じて5つのアセットが無料でゲットできます。
VRでバーチャルYoutuber!とSF関連のアセット
今回の注目アセットは「Bio IK」です。
バーチャルYoutuberが出来ちゃうパワフルなIKエディタ。
狙ったポイントにスムーズに関節が動いてくれる機能を持つもので、
例えばロボットアームが球体の位置を認識して掴みに行くようなことができる。
(WebGLで意味がわかるはず)
前回の「Puppet3D」とはちょっと違うタイプのキャラ制御で面白そう。
ブログで紹介した事が無いアセットなので、近日調べて記事にしたいと思います。
キャラクターとレースゲームのアセット
人気アセットがてんこ盛り♫ お得にゲットしちゃいましょう。
- Bio IK $20(記事無し)指定した座標に手や指の関節をスムーズに移動させるエディタ(WebGLで意味がわかるはず)
- The Starfighter $50(記事)宇宙と大空を飛行して戦闘をする巨大戦艦
- Sci Fi Space Soldier PolygonR $10(記事)HALOのマスターチーフみたいなキャラ素材
- SciFi Industrial Level Kit 2.0. $70(旧記事)大きな工場、科学技術、ハイテク産業のテーマシーンのSF系インテリア3Dモデル
- SPACE for Unity - Space Scene Construction Kit $85 (記事)マウス1クリックで超綺麗なオリジナル「宇宙」が爆誕するエディタ
【イベント開催期間】2018年7月1日〜7月31日(火)まで
過去セールから神アセットを探す
アセットストアの中の人がピックアップしたアセットは、
「過去セール」履歴から探し出そう。
「MADNESS SALE」など大セールにはステキなアセットが沢山登場しています。
過去大セールで登場したタグ一覧です。ぜひご活用下さい。
大セールリスト
- MADNESS SALE カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Back to School セール カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Unite 2017 Tokyo記念セール カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Biggest Sale Ever カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Wishlist Sale カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Holiday Sale カテゴリーの記事一覧 - Unity AssetStoreまとめ
※右サイドバーの「月別アーカイブ」や「タグ」からチェックすることもできます。
かなり便利です。
アセットの検索方法
「あのアセットの情報を早く知りたい!」という方はブログサイドバー(右側)
検索ボックスから「アセット名」「希望する機能のワード」を入力してチェックしてください。
【新サイト】アセット割引情報
$43.20 => 無料化 100%OFF!!
【過去ログ】無料アセット
【過去ログ】作者セール&注目アセット
この作品はユニティちゃんライセンス条項の元に提供されています
雑談(ロードマップ的な)
①作成中記事
かなり溜まってきてますね。本当にご不便おかけしております。
完成次第、Twitterへツイートします。
②VR開封したよ
Oculus goを開封して数タイトル遊んで満足し、Unityで開発するための一式をダウンロードしました。
一昨日紹介したVR用の腕IK「VRArmIK(無料)」を試してみたいですね。
goに対応しているか気になります。
③アニメーション制作の神ツール
連載中の「Very Animation」記事の後編ですが、
ご存じですが長すぎるので、Partで分割した方がサクサク更新するように立ち回りしやすく切り替えようと思ってます。
④そろそろサイドバーを更新
ほったらかし過ぎて情報が古い。ご不便お掛けしております。
今後ブログに追加する機能
・「試してみた記事」用のバナーを追加して探しやすくする。
・「過去紹介した無料アセット」をリストアップでジャンル別でまとめ記事。
2点をサイドバーに配置して利便性を高めたいですね。
⑤価格動向サイトがリニューアル!?
新デザインが着々と進行しています!
もっと見やすく&便利機能を追加して開発に役立てるサイトになるかも?
お楽しみに!