2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
全32件 (32件中 1-32件目)
1
NovodeX の Tutorial Lesson 306 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作り歯車とベルトを構成する Actor を作ります。なんかしらんが大量に作っております。めちゃくちゃ力技なんですけど…。CreateWheel()三角関数でぐるっと円を描いて Actor を大量に作る。効率悪そうだ。CreateStep()box の Actor を大量に作り段にします。引数で密度を指定して分割数を任意に調整可能です。しかしコレも凄く力技。RenderCallback()描画部。いつもと同じなので省略。ということで今日はギアとベルトをつないでキャタピラ状のなぞの物体を作成。例によって大量に Actor を使うだけなので難しいことは何も無いです。前のよりましですがやや自己満足というかデモ用っぽいですな。
2005年10月31日
コメント(0)
NovodeX の Tutorial Lesson 304 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作りラグドール作成。Ragdoll()ラグドールクラスのコンストラクタ。カプセルやボックスやなど計15個ほど Actor を組み合わせて人の形にしています。間接に応じて球のジョイントでつないだり回転ジョイントでつないだりします。RenderCallback()描画部。いつもと同じ。ということで派手なラグドールの勉強です。つっても適当にジョイントつないでいるだけですが。パラメータをかなり調整しないと不自然な感じになりがちですね。3dsmax のエクスポーターがありますので 3dsmax 上で試行錯誤したパラメータをエクスポートしてその値を適用するのがよいですかね。
2005年10月30日
コメント(0)
NovodeX の Tutorial Lesson 303 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作りマット作成。CreateMattress()マットの幅に応じて Actor を作りばねジョイントでつなぎます。ばねは縦横に格子状につないでいます。CreatePatch()マットの一片(?)を構成する箱 Actor 作成。RenderCallback()描画部。やはりいつもどおり。ということで今度はジョイントベースで布の表現を行っています。mass-spring ベースの手法に比べるとだいぶ安定した感じですね。ただ角度拘束でダンパを使っているので布の折れ目が揺れていますね
2005年10月29日
コメント(0)
NovodeX の Tutorial Lesson 302 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作り布作成。CreateCloth()布の縦横幅に応じて布の質点の Actor を大量に作成。そしてそれらをつなぐばねも大量に作ります。ごちゃごちゃパラメーターの設定を行っているがまあ普通の mass-spring モデルだ。CreateClothMass()質点の Actor 作成。球ですね。RenderCallback()描画部。まあいつもと同じ。RenderCloth()布描画。`質点の Actor の座標を取得して線を引いています。上下および斜めにばねをつないでいます。この辺 CPU で全部やるとなるとそれなりに処理負荷高そう。ということで今日は mass-spring ベースの布の表現でした。引っ張る量が大きいとやはり解が安定しないようですね。処理負荷も大きいしあまり印象よくなし。
2005年10月28日
コメント(0)
NovodeX の Tutorial Lesson 301 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作りロープ作成。CreateRope()分割数に応じてカプセルを作成してそれらをつないでジョイント作成。CreateRopeSphericalJoint()ジョイント作成。ばね、ダンパをそれらしく設定してうまくロープの動きを作っています。RenderCallback()描画部。いつもどおりなので省略。今日から応用編ということで実践的なロープの例。まあ基本的にジョイントつないでいるだけなので特に新しいことは無いですね。
2005年10月27日
コメント(0)
NovodeX の Tutorial Lesson 218 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作りマテリアルを設定。床とカプセル2つ作りそのカプセルをつないで6自由度のジョイントを作成します。CreateD6Joint()6自由度のジョイントを作成。回転拘束にダンパを指定できたりするのが新しいのかな。RenderCallback()物理計算してキー入力みて Actor 描画。やはりいつもと同じ。KeyboardUpCallback()'t' でジョイントの種類を切り替える。UpdateJointMotorTarget()ジョイント種類に応じて拘束を適用。あらこの辺手動?なんすか。結構ややこしい計算をやってます。ReconfigureD6Joint()ジョイントの種類を実行時に切り替えています。0)移動制限拘束1)移動柔らか制限拘束2)回転制限拘束3)回転柔らか制限拘束4)動力移動5)動力回転なるほどなるほどいろんな条件をつけることで面白い動きが表現できているように思います。ということでこのサンプルは6自由度のジョイントの機能をあれこれ使う感じになってますね。なかなか勉強になりました。
2005年10月26日
コメント(0)
NovodeX の Tutorial Lesson 217 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作り床平面とカプセル2つ作成。その2つのカプセルをつないで6自由度のジョイント作成。CreateD6Joint()Actor を2つもらい swing と twist 制約を指定してジョイント作成。RenderCallback()描画部。テキスト表示がいつもに加えて増えている程度。DisplayText()"Fixed","Revolute","Spherical" および "Locked","Limited","Free"のジョイント設定を表示。ということで今日は6自由度のジョイントの話。ジョイントって?とか自由度?って人はこのサンプルを実際に動かしてみるのが一番ですね。
2005年10月25日
コメント(0)
NovodeX の Tutorial Lesson 216R のソースを読んでみます。なんだかドキュメントの方書きかけですね。売り物の癖にかなり現在進行形な完成度なところがまたアメリカンです。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作りレイのエミッターとして box をひとつsohere, capsule, pyramid, concave object, hightfield など今まででてきたのと同じような Actor を作成。またそれぞれの Actor の中の Shape ごとにコリジョングループを指定しています。SetActorCollisionGroup()引数で受け取った Actor の中の Shape 全てにコリジョングループを指定します。RenderCallback()描画部。レイを飛ばす以外は今までと一緒。RaycastClosestShapeFromActor()レイと交差していて最も近い Actor を検出。RaycastAllShapesFromActor()レイと交差している全ての Actor を検出します。ということで今日はハイトフィールドとレイとの交差を求める話。ただ既存の事項の組み合わせだけで特に新しいことは無いですね。
2005年10月24日
コメント(0)
NovodeX の Tutorial Lesson 216 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作りハイトフィールド作成。その他box, sphere, capusule, pyramid, concave object などむやみに Actor 作成。CreateHeightfield()tga 形式のイメージからハイトフィールドの高さ情報を取得して頂点作成。そのメッシュから cook してバイナリ作成。RenderCallback()描画部。いつもと一緒。ということで今日はハイトフィールドを扱いました。特に新しいことなし。
2005年10月23日
コメント(0)
NovodeX の Tutorial Lesson 215 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作り床とウサギと箱の Actor を作る。InitBunny()いわゆる Stanford Bunny です。トライアングルメッシュから cook(?) してPMap なるものを作ります。PMap の P は penetoration の略の模様。CreateBunny()メッシュデータから Actor を作成。RenderCallback()描画部。いつもと一緒。ということで今日は PMap です。まあややこしい形状は事前に作っておけと。逆に言うと最近はやりの deformable object なものは扱うのが難しいという事ですよね。
2005年10月22日
コメント(0)
NovodeX の Tutorial Lesson 214 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作り凹オブジェクトを凸オブジェクトの集合として作成。さらに四角な Actor を1つ追加。CreateConcaveObject()四角い凸オブジェクト3つを組み合わせてL字型の凹オブジェクトを作成。RenderCallback()描画部。いつもと一緒。ということで凹メッシュを凸メッシュの合成で作る話。理屈的にはよくわかるがこの辺はツールで何とか吸収しないと複雑な形状が作れなくて苦労しそう。
2005年10月21日
コメント(0)
NovodeX の Tutorial Lesson 213 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作り床平面と2つ Actor 作成。CreateConvexObjectComputeHull()密度などを引数で指定して凸形状の四角作成。CreateConvexObjectSupplyHull()うーんいまひとつ上記の関数との違いがわからず。 compute hull と supply hull はどういう意味の違い?RenderCallback()描画部。まあいつもと一緒。ということで今日は凸メッシュから Actor の作り方を学びました。まあ地形モデルとかで頻出事項かと。
2005年10月20日
コメント(0)
NovodeX の Tutorial Lesson 212 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。シーンを適当に作り球な Actor を2つ作ります。さらにばねを作りその2つの球をつなぎます。その後ばねのパラメーターをごちゃごちゃ入れてます。CreateSpring()ばねダンパ(?)作成。RenderCallback()物理計算してキー入力みて Actor 描画してそこに働く力も描画。ばねも描画して終わり。ということで今日はダンパつきのばねについて学びました。これはこれで面白い動きですね。
2005年10月19日
コメント(0)
NovodeX の Tutorial Lesson 211R のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。シーンを適当に作りカプセルを2つ作りそれでジョイント作成。CreatePulleyJoint()滑車でつながれたジョイントを作ります。グローバル座標で滑車を支える2点およびロープの長さ等を指定して生成します。しかしこんなもんまで標準で持っているNovodeX 凄いな。もはや理科の実験のようだ。RenderCallback()物理計算してキー入力を見て Actor とそれに働く力を描画。ということで今日は滑車でつながれたジョイントについて学びました。妙なものまで標準でサポートしておりますので私としてはただ生成方法を覚えるだけですね。
2005年10月18日
コメント(0)
NovodeX の Tutorial Lesson 211 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX を初期化後にシーンを適当に作成。四角とピラミッドの Actor を作りそれらでジョイント作成。CreatePointInPlaneJoint()引数で渡された2つの Actor を使い平面にぶら下がるようなジョイントを作成。前回同様生成時には Anchor とAxis を指定。RenderCallback()描画コールバック。物理計算してキー入力を見て Actor を描画してそれに働く力も表示します。まあいつもと一緒。ということで今日は平面にぶら下がるタイプのジョイントについて学びました。冷蔵庫に引っ付く磁石のような表現ができて面白いでしょう。
2005年10月17日
コメント(0)
NovodeX の Tutorial Lesson 210 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。シーンを適当に作り楔形の竿(?)とピラミッドな Actor を2つつくりそれらでジョイント作成。CreatePointOnLineJoint()線分上の点のジョイントと訳せばいいのか…。微妙ですがそんな感じのジョイント作成。ジョイント生成時には anchor(?訳わからず)と軸ベクトルを指定して生成しています。RenderCallback()描画部。物理計算して Actor とそれに働く力を描画。いつもと一緒。ということで今日は線分上にジョイントをぶら下げたようなものを作ってみました。カーテンとかその辺の表現に使えるはず。
2005年10月16日
コメント(0)
NovodeX の Tutorial Lesson 209 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化して適当にシーン作成。カプセルの Actor を2つ作りジョイント作成。CreateCylindricalJoint()引数で渡された2つの Actor をつないで円筒型のジョイント作成。上下稼動範囲制約のために平面を2つ指定しています。RenderCallback()物理計算してキー入力を見て Actor 描画。いつもどおり。ということで円筒型のジョイントを作りました。ぶっちゃけ何に使うのかもはやわからなくなってきましたが持ち駒として1つおさえておきましょうか。
2005年10月15日
コメント(0)
NovodeX の Tutorial Lesson 208 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX の初期化をして適当にシーン作成。四角な Actor を2つつくりジョイント作成。CreatePrismaticJoint()角柱のジョイント作成。 trans の制約(?)や平面での制約条件などを指定。RenderCallback()物理計算してキー入力を見て Actor 描画。いつもどおり。ということで今日は角柱の(?)ジョイントの作り方について学びました。サスペンションなどの表現に使えそうな感じです。
2005年10月14日
コメント(0)
NovodeX の Tutorial Lesson 207 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作ってジョイント作成。CreateSphericalJoint()球状のジョイント作成。今までの1自由度のジョイントとは異なり自由な方向にジョイントを曲げることができます。初期化時に曲がる限界角度やひねり限界値を指定することができます。RenderCallback()いつもどおり物理計算してキー入力見て Actor 描画するだけ。ジョイント関連は基本的に初期化一発なのでその後特にどうこというのはないようですね。ということで今日は球状のジョイントの作り方でした。簡単ですね。
2005年10月13日
コメント(0)
NovodeX の Tutorial Lesson 206 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。シーンを適当に作りジョイント作成。ここではジョイントを構成する2つの Actor 両方にきちんと重力を加える設定になっています。思ったんだけど重力を意図的に抜いていたりしますので物理エンジンといっても案外嘘だらけだなぁと思います。物理エンジンを使いこなすためにはうまい嘘のつき方をあらかじめ知っておく必要があるのかも。CreateRevoluteJoint()引数で渡された2つの Actor を使いジョイント作成。ここでジョイントが壊れる線形力積と回転力積を指定しています。RenderCallback()物理計算してキー入力を見て Actor を描画。いつもと一緒。ということで今日は壊れるジョイントについて学びました。なかなか面白い仕組みですね。考えてみれば壊れない剛体って変ですし面白い表現ができると思います。
2005年10月12日
コメント(0)
NovodeX の Tutorial Lesson 205 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。シーンを適当に作りマテリアルも適当に設定してジョイント作成。ジョイントの片方の Actor は重力無視で角速度のダンピングなしで最大角速度の指定も行っています。CreateRevoluteJoint()引数で渡された2つの Actor をジョイントでつなぎます。ここでモーターの設定も行っています。RenderCallback()物理計算してキー入力みて Actor を描画していつもどおり。ShiftMotorVelocity()ジョイントのターゲット速度を変更。目標速度を指定するだけで実際の速度は徐々に変わっていく感じになります。ゲーム用だと直接速度の指定とかしたくなるかも。ということで今日はモーターの話。車のタイヤとかメリーゴーランドのようなものなど使えるところ多そうです。
2005年10月11日
コメント(0)
NovodeX の Tutorial Lesson 204 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。シーンを適当に作りマテリアルも適当に設定してジョイント作成。ジョイントの片方の Actor は重力無視の設定にしておきます。CreateRevoluteJoint()Actor 2つをつないでジョイント作成。ここで sprig 指定を行っています。ダンパー係数(?)なども指定できるようですね。RenderCallback()描画部。物理計算して、キー入力見て、Actor 描画して、まあいつもどおり。ということで今日はばねジョイント(?)のお勉強。まあ面白い動きなので何か使えるのではないでしょうか。
2005年10月10日
コメント(0)
NovodeX の Tutorial Lesson 203 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。シーンを適当に作りマテリアルを設定。CreateRevoluteJoint()引数で渡された2つの Actor をジョイントとしてつなぐ。その際回転の制約を任意の平面を指定することで実現しています。RenderCallback()これもいつもどおり。デバッグ表示周りは NovodeX の機能を利用しています。ということで今日はジョイントの制約に平面を指定する方法を学びました。簡単ですね。
2005年10月09日
コメント(0)
NovodeX の Tutorial Lesson 202 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にシーンを作りジョイント作成。CreateRevoluteJoint()Actor 2つをつなぐジョイント作成。ここでは制約条件として上限値と下限値を指定しています。RenderCallback()いつもどおり物理演算してキー入力を見て Actor 描画。働く力の描画など。ということで今回はジョイントに制約をつける話。まあこれも初期化時に一発指定するだけですよと。
2005年10月08日
コメント(0)
NovodeX の Tutorial Lesson 201 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX の初期化。適当にシーンを作りジョイント作成。CreateRevoluteJoint()Actor を2つ渡してそれらをつなぐジョイントのセットアップ。RenderCallback()物理計算をしてキー入力を見て Actor 描画。いつもと一緒。ということで本日はジョイント作成のサンプルでした。まあ初期化時に一発作るだけですね。
2005年10月07日
コメント(0)
NovodeX の Tutorial Lesson 117 のソースを読んでみます。main()操作表示して glut, NovodeX の初期化をしてループに入る。InitNx()NovodeX 初期化。適用にシーン作成。RenderCallback()描画部。物理計算して Actor を描画して Actor に働く力を描画してさらにテキスト描画なども。RenderIntersectedEntities()交差している Entity を描画。よくわからんがシーンに対して overlap* ってやれば交差しているのが列挙できる模様。カリングやら諸々使えそうです。まあ剛体運動とコリジョンは密接に関係ありますからこういうのも当然必要だわな。最近思うんですがこの手の物理エンジン使うときってコリジョンも自前の物を使うのではなくエンジン側のを使っているんですかね。ゲームだと物理的にそもそも物理的に動いては困る物がたくさんあるからねぇ。DisplayText()モデルビューおよびプロジェクションマトリックスを単位行列にしてライト無視にしてテキストの表示をする。よくあるパターンです。ということで今日は交差判定周り。この辺は必修科目?
2005年10月06日
コメント(0)
NovodeX の Tutorial Lesson 116 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。コリジョンフィルタリング式を指定してフィルタリング定数を指定しています。CreateGroundPlane()床の Actor 生成ですがビットマスク指定を行っております。CreateBox()userData 指定を行っております。RenderCallback()描画部。物理演算を行いキー入力を見て Actor に力を加え Actor を描画。RenderActors()Actor 描画だが userData 領域の bit をみて色を変えて描画。ということで今日はコリジョンのフィルタリングについての話。この辺はパフォーマンスに影響しそうですので注意深く設計したいところ。
2005年10月05日
コメント(0)
NovodeX の Tutorial Lesson 115 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。シーンを作り適当にマテリアルを指定。またユーザー定義の接触通知クラスを作っています。あとは Actor としてプリミティブをいくつか作るだけですね。InitTerrain()フラクタルな感じに適当にメッシュの山を作る。そしてそのメッシュを Actor に Cooking(?) します。RenderCallback()描画部。物理を動かして Actor に働く力を可視化してメッシュを描画。この際に NxUserDebugRenderer を継承したユーザー定義の描画関数を使用しています。NxDebugRenderable なものをとりあえず表示してみるのになかなか便利そうです。ということで今日はユーザー定義のメッシュで Actor を作る話でした。まあ特に難しいことは何も無いですね。
2005年10月05日
コメント(0)
NovodeX の Tutorial Lesson 114 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 初期化。適当にマテリアルを設定して Actor 作成。レイを飛ばすエミッターも Actor としてここで作成。RenderCallback()描画部。キー入力を見て Actor とそれに働く力を描画しレイを飛ばし描画。RaycastClosestShapeFromActor()最も近い shape までレイを飛ばす。シーンにある全ての shape に対して探索しているので場合によってはとんでもない計算量になりそう。RaycastAllShapesFromActor()こちらも同様。エミッタとなる Actor の位置と向きを調べて全 shape を探索。今気がついたけど shape をグループ分けしておけば計算量を減らせますね。ここでもそうしてありました。ということで今日はレイの飛ばし方に関して学びました。まあいろいろ使えるかと。
2005年10月04日
コメント(0)
今日も Physics for Game Developers を読んで勉強します。http://www.oreilly.com/catalog/physicsgame/本日は第17章です。軟体系というか mass-spring 系?サンプルはこちら。http://examples.oreilly.com/physicsgame/clothsim.zipいやーとにもかくにも最終章。忙しい仕事の合間にじっくり本読むのって本当に大変!まじくたびれたのでペース落とすかも。Model旗を扱っているのですがいわゆる mass-spring です。格子状にばねをつなぎます。そして対角方向のばねは布の強度を表します。また竿についているパーティクルは固定して扱ってあります。そのパーティクルをばねでつないで計算する感じですね。Integrationそして積分。ここでもオイラー法で計算。・衝突応答(なぜか英語版に無い項目)動かない物体=質量無限大として扱っています。衝突する粒子の法線速度を計算して反転し弾性係数をかけて衝突後の法線速度を計算。次に速度の接線方向の成分を求めて摩擦係数をかけることによってすべり摩擦をシミュレート。・調整(ここも英語版に無い項目)定数はマクロ定義で変更しやすく。斜めのばねとそれ以外のばねのばね定数を別個に指定。数値的な不安定性を避けるためにいくばくかの減衰を入れておくのが良い。
2005年10月03日
コメント(0)
NovodeX の Tutorial Lesson 113 のソースを読んでみます。main()操作方法をコンソールに出力し GLUT と NovodeX の初期化をしてからメインループに入る。InitNx()NovodeX 初期化。前のサンプルと同様に multi-shape の机を作っています。RenderCallback()描画コールバック。物理計算を行いキー入力をみて Actor に力を加えActor を描画。ApplyForceToActorAtShape()Actor 全体に力を加えるか Actor のなかの shape のローカル座標に力を加えます。shape 単位に力を加えるところが新しいですね。ということでこのサンプルで multi-shape の各 shape に対して力を加える方法を学びました。ドキュメントのほうには力の種類についての記述がいろいろあるのですがソースの中だと特に触れていないようなきがするなぁ。まあ、あまり気にしないようにしましょう。
2005年10月02日
コメント(0)
NovodeX の Tutorial Lesson 112 のソースを読んでみます。main()エントリポイント。操作方法をコンソールに出力して GLUT および NovodeX の初期化をしてメインループに入ります。InitNx()NovodeX 関連初期化。このなかで机のモデルも作っています。CreateWoodenTable()multi-shape の Actor で木の机のモデルを作っています。各 shape ごとに dimension の指定 localPose の指定を行っていますね。RenderCallback()描画部。いつもどおりに物理計算を行いキー入力をみて力を加え Actor を描画という流れです。ということでこのサンプルは multi-shape の Actor の作り方に関する話ですね。せっかく NovodeX がややこしいコリジョンの面倒を見てくれますのでしっかり利用しましょう。
2005年10月01日
コメント(0)
全32件 (32件中 1-32件目)
1


![]()