「ユーザーブロマガ」サービスの終了(10月7日を予定)にあたり、残したいユーザーブロマガ記事への投票を受け付けています

  • 闇鍋プラグイン 剛体・ジョイントのPMXViewでのLocal軸回転・移動機能追加

    2014-08-24 20:21
    闇鍋プラグイン(http://bowlroll.net/up/dl9765)に
    「剛体・JointのLocal軸回転」
    機能を追加しました。

    ■PhyCon.dll
    [View] 剛体・JointのLocal軸回転コントロール
    剛体・ジョイントのPMXViewでのLocal軸回転・移動プラグインです。
    ※PMXEditer用となります。
    2014/10/18 Local軸移動機能追加
    2015/01/11 基準点とのベクトルを軸とした剛体・Jointの移動機能追加
    2015/01/15 「Jointを剛体Aの角度に」「剛体の角度をボーンLocal軸に」「剛体をボーン角度に」「取得した法線方向に剛体を回転」追加
    2015/05/25 「JointのXYZの値を入れ替え」「Jointの簡易入力フォーム」追加
    2015/07/15 剛体をローカル軸方向に拡大する機能追加
    2015/07/17 選択剛体の重心位置確認用Joint作成機能追加
    2015/11/09 選択剛体に接続Jointを作成する機能追加
    2015/11/16 選択剛体に接続Jointを作成する機能にリストの並び順変更機能追加

    ■■■■使い方■■■■

    ■プラグイン選択
    「User」→「VIEW」→「[View] 剛体・JointのLocal軸回転コントロール」
    を選択して実行してください。


    ■Local軸操作
    Joint・剛体を1つ以上選択し
    X/Y/Zの回転数値を入力後
    「Joint回転」「剛体回転」を押すと入力値にあわせてLocal軸で回転します。
    「Joint移動」「剛体移動」を押すと入力値にあわせてLocal軸で移動します。


    また、X/Y/Zの文字をダブルクリックすると値が「0」に初期化されます。

    ・Jointを剛体Aの角度に
    Jointを接続剛体Aの角度に回転をあわせます。




    適用前)


    適用後)

    図の様に剛体の回転をJointに渡します。

    ・剛体の角度をボーンLocal軸に
    選択された剛体に紐付いたボーンのローカル軸を剛体の角度を元に設定します。


    図の様にLocal軸が設定されます。


    図の様に手付けで物理部分の操作を行いたい場合に使用します。



    ・剛体をボーン角度に
    選択した剛体をボーンのローカル軸にあわせた角度に回転します。
    なお、PMXEの以下の機能で剛体を作成した場合の剛体の向きになります。
    回転状態の初期化機能と思ってください。



    ■基準点とのベクトルを軸とした移動
    基準点と選択した剛体・Jointの位置を軸として剛体とJointを移動することが出来ます。



    1.基準点の取得/設定
    剛体・Jointを選択し「重心1」もしくは「重心2」を押して下さい。(オブジェクト操作の重心1/重心2と同じ数値を返します。)
    すると下の部分の数字が変化します。


    2.軸移動実行
    移動量に数値をいれ「選択剛体/Joint移動」を押して下さい。
    以下の様に選択した剛体・Jointが移動します。

    ・移動量「1」で実行


    ・移動量「-1」で実行



    ■取得した法線方向に剛体を回転
    面法線・頂点法線を取得してその方向に剛体を回転します。


    ・使い方
    1-1.面法線の取得
    面を1つ選択し「法線を取得」を押してください。
    取得できましたら取得法線欄のX/Y/Z欄に法線の数字が表示されます。



    1-2.頂点法線の取得
    頂点を1つ選択し「法線を取得」を押してください。
    取得できましたら取得法線欄のX/Y/Z欄に法線の数字が表示されます。


    2.選択剛体を取得法線方向に回転
    剛体を選択(複数可)し「選択剛体を取得法線方向に回転」を押してください。
    取得された法線方向に選択された剛体を回転します。


    また、「X90回転」「Y90回転」「Z90回転」はLocal軸方向に選択された剛体を90度回転します。

    ■Joint値操作

    1.Jointの制限・ばねの値を入れ替えます。
    X⇔Y・Y⇔Z・Z⇔Xで入れ替えます。(Jointを回転させた際等に使用します。)



    2.Joint値の簡易設定フォーム
    上下ボタンで入力したかったので作成。



    注意:モデルの更新・画面の書き換えをボタンを押す毎に実行しますのでレスポンスはあまりよくありません。

    ■剛体値操作
    剛体をローカル軸方向に拡大します。



    以下値で剛体を拡大してみます。
    拡大軸:ローカルY
    拡大方向:プラス方向
    拡大率:2









    このように軸方向に剛体を伸ばす事が出来ます。

    ■選択剛体の重心位置確認
    選択された複数の剛体からそれらの重心位置を求めその位置にJointを作成します。



    ■選択剛体のIndex順に接続Jointを作成
    選択された複数の剛体からIndex順に接続Jointを作成します。



    線状に接続する場合は
    剛体を選択し
    [正順:チェック]
    [ループチェック:なし]
    とし[選択剛体をIndex順に接続Jointを作成する。]を押してください。




    円状に接続する場合は
    剛体を選択し
    [正順:チェック]
    [ループチェック:チェック]
    とし[選択剛体をIndex順に接続Jointを作成する。]を押してください。






    逆順チェックは剛体Indexの状態に合わせて選択してください。

    以上です。

    モデルの更新を行いますのでバックアップは必ず取りながら作業してください。

    この記事のコメント欄は以下の記事通り解放します
    http://ch.nicovideo.jp/t0r0/blomaga/ar760385

  • 広告
  • スカートベルト埋まり対策

    2014-08-18 17:40
    EndressStormさんのタカオにいれたスカートベルト埋まり対策構造の説明です。


    タカオさん衣装もちでこの赤で囲んだ部分のベルトが足動かすとがんがんめり込むのでその対策の構造を入れました。


    対策済みの動きはこちら(右側が対策済みの構造を入れています。)



    ■構造の説明
    使用ボーン:以下の選択されたボーンを使用しています。


    基本的な考えとしては
    ①足を前方に上げた場合
    「右足R・右足軸1・右足軸2」の回転を移動に変換する構造で
    ベルトIKを上方に移動させます。
    ②足を真横に上げた場合
    「右足B・右足B先・右足BIK」でIKでZ軸の回転を取り出しその回転で
    ベルト親を回転させベルトIKを上方に移動させます。

    ①はKAWARAの徒然備忘草【つれつれわすれそう】にある直線往復機構を利用しています。
    ②はIKの回転制限を利用した回転の各X/Y/Z値を取り出す仕組みを利用しています。

    ■①の構造について
    以下のボーンが①の構造で構成されるボーンになります。


    「右足R・右足軸1・右足軸2」に「右足D」の回転を渡し「右足軸2」をY軸上方に移動するようにしています。

    各ボーンの設定値は以下のとおりとなります。
    ・右足R
    このボーンに「右足D」の回転を渡します。
    位置などは右足Dと同じ値です。


    ・右足軸1
    このボーンに「右足D」の「-2」の回転を渡します。
    このボーンのZ座標を調整するとY方向の最大移動量が決定します。


    ・右足軸2
    このボーンに「右足D」の「1」の回転を渡します。


    ・ベルト親
    ベルトIKの親ボーンです。このボーンの親を「右足軸2」とすることで「右足D」から取り出した回転を利用してベルトIKを上に移動しています。


    ・ベルトIK
    角度制限で「Z:-40度から5度」とし余計な角度まで動かないように制限しています。


    動作例としては以下のようになります。
    動作前


    IKで前方上方に足を動かした場合。



    ■②の構造について
    以下のボーンが②の構造で構成されるボーンになります。


    「右足B・右足B先・右足BIK」から「右足D」のZ軸回転を取得し「ベルト親」に回転値を渡しています。

    各ボーンの設定値は以下のとおりとなります。
    ・右足B
    「右足」もしくは「右足D」のコピーです。


    ・右足B先
    「右ひざ」もしくは「右ひざD」のコピーです。
    右足Bが親ボーンとなります。


    ・右足BIK
    「右ひざ」もしくは「右ひざD」のコピーです。
    右足Dが親ボーンとなります。
    IKLink:右足B
    IKTarget:右足B先
    右足Bの角度制限は「Z:-60から0」
    Loop・単位角については特に意味はありません。
    これで右足の動きをZ回転で「-60度から0度」まで取り出します。


    ・ベルト親
    右足BIKから取り出した右足Dの角度を回転連動にて渡します。
    連動ボーン:右足B
    付与率:0.11(この値は実際に動かして微調整しています。この値でなければならないわけではありません。


    動作例は以下の様になります。
    動作前


    右足を横上方に動かした場合。


    ■ベルトのウェイトについて
    ベルトのウェイトは以下の様になっています。全ての頂点にウェイトを塗っているわけではありません。


    以上です。

  • 自動つま先曲げ機能の作り方

    2014-08-17 23:331
    EndressStormさんの
    扶桑・山城

    蒼龍・飛龍

    タカオ

    にいれた自動つま先曲げ機能の作り方です。


    構造の考え方ぐだぐだいってもしゃーないので
    使用上の注意点としては
    ・流し込みには使えるよ。
    ・モーション作成には不向きだよ。
    ・使いたくなければIK切れば無効化できるよ。
    の3点です。

    ■作り方
    ・ボーン構造
    以下の選択したボーンがその構造に必要なボーンです。
    見てのとおり準標準の足D・ひざD・足首D・足先EXを使用しています。
    但し足先EXはプラグインのままでは使用できないのでボーン位置ウェイト共に修正します。
    また「足IK」は「足IKBase」と名称を変更し
    その親ボーンに
    「足腹」を足先EXと同じ位置に追加
    「足IK」を同じ位置に追加します。


    右足A+・ひざA+・足ATgt・足AIKは以下の図の様にもう一つの足IKを構成しています。
    この図はわかりやすいように位置を横にずらしてあります。


    足AIKと足ATgtの位置は足首の位置ではなく「かかと」の位置にします
    図の赤丸で囲んだ位置です。


    ボーン親子関係
    足IK ← 足IKA
        ← 足腹 ← 足IKBase(これが元々の足IKになります。)
    となるようにボーンの親子関係を作ります。
    足腹をXで回転してかかとが持ち上がる動きになれば問題ありません。
    考え方はdondon式ミクさんのリバースフットっぽい構造と同じです。

    (右・左)足腹・(右・左)足先EXのボーン位置
    赤丸で囲んだあたりの位置にボーン位置を修正してください。X方向の位置は「つま先」と同じ値です。


    (右・左)足IKAの設定値
    角度制限は「Xを-50から-0.5」
    Loopと単位各は足IKと同じにしてください。


    (右・左)足腹の設定値
    軸制限:(1,0,0)
    移動:Off
    回転連動ボーン:「(右・左)ひざA+」付与率:「0.3から0.4」程度を入れてください。


    (右・左)足先EXの設定値
    軸制限:(1,0,0)
    回転連動ボーン:「(右・左)足腹」付与率:-1
    を入れて下さい。



    足先EXのウェイトについて
    ウェイトはTransformViewで曲げながら調整して下さい。






    動作がこのようになれば完成です。


    自動曲げを切りたい場合は足AIKを切ってあげれば自動で動作しなくなります。

    以上です。