返信フォーム

子ノードのズレに関する質問 投稿者:rinta 投稿日:2011/06/12(Sun) 19:48 No.2988
初めまして、
いつもこちらで公開されている機体で楽しく遊ばせていただいています。

いきなりで申し訳ないのですが質問があります。
今メタセコで機体制作に挑戦しているのですが、モデリングはほぼ終わり、
動作設定を始めたのですが。
軸あわせしたパーツにもう一つ軸合わせをしたパーツをぶら下げたのですが、
子ノードの位置がズレます。
元に戻そうといろいろ試したのですが、ぴったり元の位置に戻すことができません。
どなたか元の位置に戻す方法を教えていただけないでしょうか?
Re: 子ノードのズレに関する質問 - Shuichi 2011/06/12(Sun) 23:29 No.2990
はじめまして、rintaさん。Shuichiです。
軸合わせですが、座標値については原点にしたい座標値をDnmのCNTとPOSに入力し、
角度についてはSuzyToolやF22愛好会さんのスクリプトにあるSrfAlignで
判明した角度をPOSの角度に入力します。

この画像のスホーイ37スーパーフランカーの3次元推力偏向ノズルの場合は、
エレベータ、エルロン、ラダーの動作での軸合わせしたい座標が、同一座標かつそれぞれの軸に平行です。
こういう風に、軸あわせをしたい角度がXYZ軸に平行(90度単位での角度)の場合は、
角度はズラさなくて良いので、座標値についてのみ軸あわせをしています。

(3次元TVCのエレベータとエルロンでの操作ではピッチ方向なのでX軸を中心に回転、
同様に、3次元TVCのラダーでの操作ではヨー方向なのでY軸を中心に回転します。
ちなみに、ロール方向の場合はZ軸を中心に回転します。)

しかし、斜めに軸合わせ(つまり、角度をつけてしまった場合)は、
ダミーSRFをを間にぶら下げるなどして一度、位置や角度をリセット
(動作した分の角度や位置を逆符号化して打ち消す)して改めて定義する方法もありますが、
YSでは角度が「180度を32768」とする独自の形式を用いている為、YS形式での数値が
10進数でピッタリになる事の方がマレです。* 約359度(64634)まで指定可能らしいです。

角度を逆符号化して打ち消すというのは、例えば、
ラダーをY軸への軸あわせでピッチ方向に20度ピッチアップさせていて、
それを子ノードで打ち消したい場合は、子ノードでピッチ方向に20度ピッチダウンするという事です。
なお、軸合わせの座標位置は同じ事が前提になります。

画像の下側、エレベータの動作のSTA2とSTA3の欄を見てください。
画像のフランカーはTVCのエレベータ操作の設定を「プラスマイナス7.5度」に設定して保存したのですが、
再度開くと「7.4981689453125(YS形式で1365)」になっています。

このような角度の微妙なズレは、どうしても防げない場合もあります。
ですので、斜めに軸合わせしたパーツは、あまりぶら下げないようにするしか方法が無いのかもしれません。
画像のフランカーも、主翼のフラッペロンや前縁フラップの多少の角度設定での誤差は無視しています。


Re: 子ノードのズレに関する質問 - rinta 2011/06/13(Mon) 19:35 No.2991
初めましてShuichiさん回答ありがとうございます。
軸合わせはmqo2srfの自動srfalign機能を使用したのですが、
斜めに軸合わせされたノードにぶら下げているので、
ぴったり元の位置に戻すのは難しいのですね。

皆さん何らかの計算をして、
元の位置に戻しているのかと思っていたのですが、
斜めに軸合わせノードにぶら下げた場合Dnmviewerなどで見ながら、
手動で元の位置に近づけているのですかね?

何はともあれ、ぴったりとは行かなくともDnmviewerで見ながらPOSを調節し、
元の位置に戻したいと思います、
Shuichiさんありがとうございました。


Re: 子ノードのズレに関する質問 - Shuichi 2011/06/13(Mon) 20:10 No.2992
大事な事を2点、書き忘れていました。
リニューアルしたリペイント講座にも書いてあるとおり、
DnmViewerで保存するとZL行(灯火設定)が消失してしまうので注意してください。
あと、VER2のDnmは、DnmViewerでは開けない(表示されない)ので注意してください。


SrfAlignを使うと、どれだけの角度をズラしたかは、SuzyToolだとSurfを開いて見ることができます。
書かれている数字はYS形式です。
(スクリプトも、何かしらの形で角度が分かるようになっているのではないでしょうか?)

位置や角度のズレですが、余程制度が求められるような細かいDnmでない限りは、
1ミリ単位とか、0.001度単位という細かすぎるズレは
ある程度無視してよいでしょう。
(通常ならば、センチメートル単位や0.01度単位でOKだと思います。)

画像のフランカーのフラッペロンですが、動作しても大体の位置に収まるように調整したつもりですが、
前レスの画像右側のように、「フラップとエルロン」のように
複数の動作を同時にしてしまうと、結構ズレる事があります。
しかし、遠目で見てズレがわからない場合は、あえて無視するのも手です。


ぶら下げ位置・角度のリセット
解り易い様にキリのいい数字にしています。
数字はYS形式なので注意してください。

SRF "a"
FIL null.srf
CLA 0
NST 2
STA 0.0000 0.0000 0.0000 0 0 0 1
STA 0.0000 0.0000 0.0000 0 0 0 1
POS 5.0000 0.0000 -3.0000 100 -100 100 1
CNT 5.0000 0.0000 -3.0000
REL DEP
NCH 1
CLD "b"
END

SRF "b"
FIL null.srf
CLA 0
NST 2
STA 0.0000 0.0000 0.0000 0 0 0 1
STA 0.0000 0.0000 0.0000 0 0 0 1
POS 5.0000 0.0000 -3.0000 -100 100 -100 1
CNT 5.0000 0.0000 -3.0000
REL DEP
NCH 0
END


Re: 子ノードのズレに関する質問 - 佐藤 2011/06/13(Mon) 23:47 No.2993 ホームページ
初めまして、佐藤です。

私も以前同じ問題が発生したのですが、その時にとった解決策をお教えしたいと思います。

1.軸合わせを[ローカル]を使って行う。
2.実際のDNMとおなじ階層構造になるようにノードを親子化する。
3.軸合わせをするオブジェクトを選択し[詳細設定]からローカル座標の位置、角度をメモする。
4.親子化を解除し、オブジェクトのローカル座標の位置、角度をすべて0にする。
5.保存して.srfに変換、DNMに組み込み、階層等を編集する。
6.軸合わせしたノードのPOSに3.でメモした値を入力。

こんな感じです。
ローカル軸を編集する際には「形状変形」と「子に適用」に気をつけてください。また、POSに入力する際には角度をYSFSで使われるフォーマットに変更する必要があります。

難点はモデルを整数倍で作らないと計算が面倒くさくなる事でしょうか。手間はかかりますが、私の場合はずれる事なく組む事ができました。わからない点があればまた聞いてみてください。

長文をだらだらと失礼しました。



Re: 子ノードのズレに関する質問 - rinta 2011/06/15(Wed) 21:48 No.2994
返事遅れましたすいません。

Shuichiさん>>
ZL行はこれから指定しようと思っていたのですが、
Dnmviewerで動作設定を終えてから指定しようと思います。
ご忠告ありがとうございます。

佐藤さん>>
はじめまして回答ありがとうございます。
早速説明を見ながら試してみました、
教えていただいたとおりにできたか不安なのですが、
ズレずに軸合わせすることができました。
しかし斜めに動作するパーツを動かしてみたところ、
隙間ができてしまいました、しかしローカル座標を使って色々試したところ
軸合わせによるズレを元の位置に戻すことに成功しましたのでご報告します。

まずmqo2srfの自動srfalign機能をを使うので軸合わせ用のオブジェクトに辺を作っておきます、
この時最初に打った頂点(原点に移動される頂点)を覚えておきます。
次にメタセコ上で断層構造をあらかじめ作っておきます、
この時親ノードと子ノードの間に空ノードぶら下げておきます。
とりあえずこの時にsrfalignを有効にさせDNMに変換しときます。
そしてメタセコ上で親ノードを選択しそのオブジェクトを指定している
軸合わせ用の辺の最初に打った頂点にローカル座標の各軸,辺に角度を合わせます。
次に間の空ノードを選択しローカル座標の詳細設定にあるグローバル座標の各軸が0になるよう
移動させたら、ローカル座標に出た座標をDNMの空ノードのPOSに、DNMの親ノードの
角度を逆符号化したものも入力します。
この時座標軸の小数点の位置に注意してください。

このような方法で元の位置に戻せましたお二人とも本当にありがとうございました。

長文になってしまいました、申し訳ありません。


おなまえ
Eメール
タイトル
コメント
参照URL
添付File
暗証キー (英数字で8文字以内)
投稿キー (投稿時 投稿キー を入力してください)
文字色