EasyFAQ/44

Last-modified: 2008-11-24 (月) 02:21:10

頂点移動

投稿者26℃
重要度
状態
カテゴリ
HSPバージョン
E3Dバージョン
回答

ここから下を自由に編集してください。
上の投稿情報は安易に編集するとFAQリストのリストアップに支障が出るものもあります。
よく分からない方は分かる人に聞いてみてください。

  • 剣の軌跡を表示させようと実験していると、軌跡のモデルが消えました
    モーションさせるだけだとわからなかったのですが、モデルを移動させていると
    突然軌跡が消えます、カメラアングルを変えると表示されるのですが
    なぜそうなるのかわかりません、頂点を移動させることで消えたりしているのかと
    思うのですが。どうすれば消えないようにできるでしょうか?
    よろしくおねがいします
    http://www.geocities.jp/oirahakobito2/test_3.zip -- 26℃? 2008-11-21 (金) 18:15:26
  • 頂点移動してもあたり判定や視野内情報は古いままです。移動した頂点が視野内にあってもオブジェクトの位置が視野外だと描画されません。頂点移動する前に視野内にE3DSetPosする必要があります。そのあとで目的位置との差分だけ頂点移動すればOKだと思います。この辺は以前ぶちさばさんが解決策を見つけていたような気がするので聞いてみるのがいいかもしれません。 -- おちゃっこ? 2008-11-21 (金) 18:45:31
  • なるほど、わかりました。
    E3DGetCurrentBonePos ino, bno_bu, 1, bu_x, bu_y, bu_z
    E3DGetCurrentBonePos ino, bno_ki, 1, ki_x, ki_y, ki_z
    E3DSetPos zan, x, y, z
    E3DSetVertPos zan,2,0,(0-x)+bu_x, (0-y)+bu_y, (0-z)+bu_z
    E3DSetVertPos zan,2,1,(0-x)+ki_x, (0-y)+ki_y, (0-z)+ki_z
    E3DSetVertPos zan,2,3,(0-x)+bu_x+500.0, (0-y)+bu_y, (0-z)+bu_z+500.0
    E3DSetVertPos zan,2,2,(0-x)+ki_x+500.0, (0-y)+ki_y, (0-z)+ki_z+500.0
    • 26℃? 2008-11-21 (金) 19:43:06
  • おちゃっこさんのおっしゃる通りで、頂点だけ移動させてると、ビューチェックの関係で消されてしまいます。軌跡をだす本体と連動して、毎フレーム軌跡をE3DSetPosするとこの問題はクリアできます。 -- Bの人? 2008-11-21 (金) 23:06:59
  • 軌跡が常に画面内にあることが確定しているとか、一番最初に視野内に持ってきてChkinviewを呼び出した後放置しておくという選択肢があります。毎フレーム呼ぶChkinviewの分だけ処理が軽くなると思ってマス。当たり判定が行えない問題がありますが。 -- ナナ? 2008-11-23 (日) 01:40:34
  • それだとE3DSetPosもはぶけれますね、その方法もためしてみます。 -- 26℃? 2008-11-23 (日) 12:28:42
  • >一番最初に視野内に持ってきて
    天才の発想ですね(笑)ちょっと速度調べてみます
    ・・・で、調べてみました。結果は『早くなったと云えない事も無い』ってレベルでしょうか。Chkinview自体の負荷はそんなに大きく無いようですね。
    ただ、残像等に使うのであればHSP部分の計算を結構減らせるので、むしろこっちの効果が大きいのではないでしょうか。私も導入させて頂きたいと思います。どうもありがとうございました。 -- ぼおん? 2008-11-23 (日) 13:20:45
  • 私も書いてて、毎フレームは無駄だなと感じました;初回のみE3DSetPosとビューチェックすれば省無駄ですね。修正することにしますm(_ _)m -- Bの人? 2008-11-24 (月) 02:21:10