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

  • 闇鍋プラグイン Joint・剛体の並べ替え機能追加

    2013-12-08 04:313
    闇鍋プラグイン(http://bowlroll.net/up/dl9765)にJoint・剛体をテキストファイルから並べ替える機能追加しました。

    Jointをテキストファイルから並べ替えする。
    [Joint] Jointをテキストファイルの順に並べ替えする。
    ・SortJointFromTxt.dll

    Jointの並べ替え情報をテキストファイルに出力する。
    [Joint] Jointを並べ替えるテキストファイルを作成する。
    ・SortJointToTxt.dll

    剛体をテキストファイルから並べ替えする。
    [BODY] 剛体をテキストファイルの順に並べ替えする。
    ・SortBodyFromTxt.dll

    剛体の並べ替え情報をテキストファイルに出力する。
    [BODY] 剛体を並べ替えるテキストファイルを作成する。
    ・SortBodyToTxt.dll

    使い方(例は剛体で行っていますがJointも同様です。)
    1.PMXEでモデルを読み込みます。



    2.プラグインを選択し並べ替え用テキストファイルを出力します。


    3.モデルと同一フォルダに「bodysort.txt」が作成されます。
    (Jointの場合は「jointsort.txt」になります。)




    4.「bodysort.txt」の内容は以下の様になっていますので並べ替えたい順に修正してください。


    5.プラグインを選択し並べ替え用テキストファイルから並べ替えを実行します。



    6.並べ替え用テキストファイル「bodysort.txt」を選択します。



    7.以下のメッセージが出れば並べ替えは完了です。


    以上です。

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

  • 広告
  • 闇鍋プラグイン Joint・剛体回転機能の更新

    2013-12-01 02:01
    PyhCon.DLLに物理演算関連の機能を集約していっているのでそっちを推奨。

    闇鍋プラグイン(http://bowlroll.net/up/dl9765)のJointを接続剛体A・接続剛体Bそれぞれのボーンの回転にあわせる機能と剛体の回転をボーンに合わせる機能更新しました。
    (2013/12/08 計算式変更)

    Jointの接続剛体Aのボーンの角度にJointを回転する。
    [Joint] Jointの角度をボーンにあわせる。(接続剛体A)
    ・SetJointRotationA.dll

    Jointの接続剛体Bのボーンの角度にJointを回転する。
    [Joint] Jointの角度をボーンにあわせる。(接続剛体B)
    ・SetJointRotationB.dll

    剛体のボーンの角度に剛体を回転する。
    [BODY] 剛体の角度をボーンにあわせる。

    ・SetBodyRotation.dll
    ※PyhCon.DLLに統合

    使い方
    1.Jointを選択できるようにしJointと剛体を表示する。



    2.Jointを選択
    回転させたいJointを選択します。(複数選択可)



    3.プラグイン実行
    編集→プラグイン→User→Joint→Jointの角度をボーンにあわせる。(接続剛体A)
    を選択しプラグインを実行します。



    4.実行結果
    Jointが回転します。


    それぞれ使い方は同様です。

    以上です。

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

  • ツ・チ・ノ・コ

    2013-11-26 22:16
    他人に説明する気はあまりなくて自分が納得する為用にちょいちょい調べてみた。

    ・Flashについて
    使用できるデータ型
    小数点以下の値を扱える型は
    Number型のみで倍精度浮動小数点数である。

    C#にあるDecimalと違い算数的感覚で扱うと痛い目を見る型である。

    ・浮動小数点数について
    浮動小数点数の説明をPHPのマニュアルから抜粋

    近似値であるので特定の条件化で以下の状態が発生する。
    (0.1+0.7) * 10 を小数点以下で切り捨てると答えはなんとなるか。

    答えは 7

    8を期待するのだけど実際は7.999999999999999111...みたいな近似値で格納されているので単純に切り捨てちゃうと答えは7になっちゃう。

    ただしこれが発生するのは結構まれなので見逃しガチ。(ツチノコがツチノコであるゆえん)

    近似値である特性上処理方法を間違うとその処理の境界線で結果が意図しないものとなる可能性がある。

    MMDerはPMDEでボーンモーフ作って回転の値に1いれると勝手に0.99999999999999となるのでこれ経験できます。PMXEに持っていくと1ってなってるのよ?w


    ・処理系の冗長化
    表示部分と状態部分との計算ロジックが別々で作成されている。
    カットインで表示部分のずれがある報告があがっている事からこれは明らか。

    従って表示部分と状態部分が同期されている事は保障されない。


    ・状態部分のロジック
    WIKIより
    計算ロジックには小数点以下が含まれると思われる算定式の為、Number型で処理していると推測できる。

    従ってNumber型が持つ近似誤差についての問題は当然含有


    ・近似値の処理における作成者の信頼性
    表示部分/演習部分等でNumber型の処理ミスによる問題が発生している。
    また、それらに対する修正アプローチは今の所ない。

    従って近似値処理に対する信頼性はなし。


    以上の事からツチノコは存在を認めるしかないと推測。


    とはいえ発生率は押して知るべしだし発生ポイントも境界線なのでその部分に入ったら黄色信号と思えばいいかな?