ODE質å•ãƒ»è¦æœ›å‹Ÿé›†10!
ã¾ãšï¼Œã“ã“ã«ã‚ã‚‹ODEã®FAQã‚’èªã‚“ã§ã‹ã‚‰ã‚³ãƒ¡ãƒ³ãƒˆãŠé¡˜ã„ã—ã¾ã™ï¼Ž
ODE質å•ãƒ»è¦æœ›ï¼™ï¼ã®ã‚³ãƒ¡ãƒ³ãƒˆãŒï¼‘ï¼ï¼ä»¶ã‚’è¶…ãˆã¾ã—ãŸã®ã§ï¼Œæ–°è¦ã®ã”質å•ã‚„ã”è¦æœ›ã¯ã“ã¡ã‚‰ã«ãŠé¡˜ã„ã—ã¾ã™ï¼ã€€ã”質å•ã®å†…容を詳ã—ã説明ã—ã¦é ‚ã‘ã‚‹ã¨çš„確ã«å›žç”ã§ãã¾ã™ã®ã§ï¼Œæ™‚間を節約ã§ãã‚‹ã¨æ€ã„ã¾ã™ï¼Ž
ã¾ãŸã€ç§ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚„ã”自分ã®åŠªåŠ›ã«ã‚ˆã‚Šå•題ãŒè§£æ±ºã•れãŸå ´åˆã«ã€å•題ã®åŽŸå› ãŒã‚ã‹ã‚Œã°æŠ•稿ã—ã¦é ‚ãã¨å¤§å¤‰åŠ©ã‹ã‚Šã¾ã™ã€‚ãã®æƒ…å ±ã¯ODEã®åˆå¿ƒè€…ã«ã¨ã£ã¦é‡è¦ãªã‚‚ã®ã§ã™ã€‚ã‚る程度ãŸã¾ã‚Šã¾ã—ãŸã‚‰FAQã«æŽ² 載ã—ãŸã„ã¨æ€ã„ã¾ã™ã®ã§ã”å”力ã®ã»ã©ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
ã§ã‚€
先日ã¯ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸã€‚
æç”»ã§å…‰ã®å‘ã(光æºã®ä½ç½®ï¼‰ã‚’変ãˆãŸã„ã®ã§ã™ãŒã€ã©ã†ã—ãŸã‚‰ã‚ˆã‚ã—ã„ã§ã—ょã†ã‹ï¼Ÿ
よã¤ã•ã‚“ã€
drawstuffã®APIã«ã¯ãã®ã‚ˆã†ãªæ©Ÿèƒ½ã¯ãªã„ã®ã§ã€drawstuffã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’変更ã—コンパイルã—ç›´ã™å¿…è¦ãŒã‚りã¾ã™ã€‚ãªãŠã€OpenGLã§æ›¸ã‹ã‚Œã¦ã„ã‚‹ã®ã§ã€OpenGLã‚’å°‘ã—勉強ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
具体的ã«ã¯drawstuff.cppã®1141行ã€1142行ã§å…‰æºã®ä½ç½®ã‚’è¨å®šã—ã¦ã„ã¾ã™ã€‚
ã§ã‚€
ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
勉強ä¸è¶³ã§ç”³ã—訳ã‚りã¾ã›ã‚“ãŒã€drawstuff.cppを編集ã—ãŸã‚ã¨ã€
ã©ã®ã‚ˆã†ã«ã‚³ãƒ³ãƒ‘イルã«ã—ãŸã‚‰ã‚ˆã‚ã—ã„ã§ã—ょã†ã‹ï¼Ÿ
開発環境ã¯VisualC++2008Expressã§ã™ã€‚
ODEã®ã‚³ãƒ³ãƒ‘イルã¨åŒæ§˜ã§ã™ï¼Ž
ã§ã‚€
åˆã‚ã¾ã—ã¦ï¼
åˆã‚ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆã§ã™ã€‚
最近ODEã®å‹‰å¼·ã‚’å§‹ã‚ã¾ã—ãŸã€‚
よã‚ã—ããŠé¡˜ã„致ã—ã¾ã™ï¼
ã•ã¦ã€æœ¬é¡Œã§ã™ãŒ
ç¾åœ¨ã€ç§ã¯
全方ä½ã‚«ãƒ¡ãƒ©ã‚’装備ã—ãŸã‚¯ãƒãƒ¼ãƒ©åž‹ãƒãƒœãƒƒãƒˆãŒä¸æ•´åœ°ã‚’走行ã™ã‚‹ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’作æˆã—よã†ã¨è€ƒãˆã¦ãŠã‚Šã¾ã™ã€‚
ãã“ã§ã„ãã¤ã‹è³ªå•ãŒã‚りã¾ã™ã€‚
1.ODEã§å…¨æ–¹ä½ã‚«ãƒ¡ãƒ©ã®ã‚ˆã†ã«360度ã®ç¯„囲ã®è¦–野をæç¤ºã™ã‚‹ã«ã¯ã©ã†ã—ãŸã‚‰ã„ã„ã§ã—ょã†ã‹ï¼Ÿ
  パノラマ展開ã€ã‚‚ã—ãã¯åˆ†å‰²è¡¨ç¤ºã§ã‚‚ã‹ã¾ã„ã¾ã›ã‚“。
ï¼’ï¼Žä¸æ•´åœ°ï¼ˆã§ã“ã¼ã“ã€å‚¾æ–œï¼‰ãƒ¢ãƒ‡ãƒ«ã‚’作æˆã—ãŸã„ã§ã™ã€‚
3.クãƒãƒ¼ãƒ©åž‹ã®è»Šè¼ªã®ä½œæˆã€‚
ç°¡å˜ãªç”ãˆã§ã„ã„ã®ã§ã”教授ã—ã¦ã„ãŸã ããŸã„ã§ã™ã€‚
ã‚‚ã—ã€ä¼¼ãŸã‚ˆã†ãªsampleコードãŒã‚ã‚‹ã®ãªã‚‰ã°æ•™ãˆã¦ã„ãŸã ããŸã„ã§ã™ã€‚
自分ã®å‹‰å¼·ä¸è¶³ã‹ã‚‚ã—れã¾ã›ã‚“ãŒã€
ã™ã¿ã¾ã›ã‚“ãŒã‚ˆã‚ã—ããŠé¡˜ã„致ã—ã¾ã™ã€‚
クãƒãƒ¼ãƒ©ã•ん,
ã¯ã˜ã‚ã¾ã—ã¦ï¼Žã“れã‹ã‚‰ã‚‚よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ï¼Ž
ã•ã¦ï¼Œ
1.ODEã¯å‹•力å¦è¨ˆç®—エンジンãªã®ã§å…¨æ–¹ä½ã‚«ãƒ¡ãƒ©ã®ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã¯ã§ãã¾ã›ã‚“.ã¤ã¾ã‚Šï¼Œä»˜å±žã®ã‚°ãƒ©ãƒ•ィクスライブラリdrawstuffã‚’ã”è‡ªåˆ†ã§æ›¸ãæ›ãˆã‚‹ã‹ï¼Œåˆ¥ã®ã‚°ãƒ©ãƒ•ィクスライブラリを使ã†å¿…è¦ãŒã‚りã¾ã™ï¼Ž
2.heightfieldを使ãˆã‚‹ã®ã§ä¸æ•´åœ°ãƒ¢ãƒ‡ãƒ«ã‚’作æˆå¯èƒ½ã§ã™ï¼Žä»˜å±žã®ãƒ‡ãƒ¢ãƒ—ãƒã‚°ãƒ©ãƒ demo_heighfield.cppãŒå‚考ã«ãªã‚‹ã¨æ€ã„ã¾ã™ï¼Ž
3.クãƒãƒ¼ãƒ©ãƒ¼åž‹ã®è»Šè¼ªã‚’複数ã®å½¢çŠ¶ãƒ—ãƒªãƒŸãƒ†ã‚£ãƒ–ã‚’ä½¿ã£ã¦ãƒ¢ãƒ‡ãƒ«åŒ–ã™ã‚‹ã“ã¨ãŒè€ƒãˆã‚‰ã‚Œã¾ã™ï¼ŽãŸã ,試ã—ã¦ã„ãªã„ã®ã§ã‚ã‹ã‚Šã¾ã›ã‚“ãŒï¼ŒçœŸé¢ç›®ã«ãƒ¢ãƒ‡ãƒ«ã‚’作るã¨è¨ˆç®—時間ã«å•題ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“.シミュレーションã®ç”¨é€”ã«ã‚‚よりã¾ã™ãŒï¼Œãƒ¢ãƒ‡ãƒ«ã‚’å˜ç´”化ã—ãŸæ–¹ãŒè‰¯ã„ã‹ã‚‚ã—れã¾ã›ã‚“.ç§è‡ªä¿¡ï¼Œã‚¯ãƒãƒ¼ãƒ©ãƒ¼åž‹è»Šè¼ªã‚’作ã£ãŸã“ã¨ãŒãªã„ã®ã§ã‚ˆãã‚ã‹ã‚Šã¾ã›ã‚“.
ã“ã®ç¨‹åº¦ã®å›žç”ã§ã‚ˆã‚ã—ã„ã§ã—ょã†ã‹ï¼Ÿ
ã§ã‚€
近々ã€ï¼°ï¼£ã‚’購入ã—よã†ã¨æ€ã£ã¦ã„ã¾ã™ãŒã€
Windows 7 ã§ã€ODEを使用ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã™ã‹ï¼Ÿ
よã¤ã•ã‚“ã€
ã¯ã„ã§ãã¾ã™ã€‚
32bit版ã®Windows7ã§ã¯å‹•作を確èªã—ã¦ã„ã¾ã™ã€‚64bitç‰ˆã¯æœªç¢ºèªã§ã™ã€‚
ã§ã‚€
よã‹ã£ãŸã€ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
念ã®ãŸã‚ã€32bitã«ã—ã¾ã™ã€‚
ã„ã¤ã‚‚è¿”ä¿¡é ‚ãã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
返信ボタンãŒè¦‹ã‚ãŸã‚‰ãªã‹ã£ãŸã®ã§ã€
æ–°ãŸã«æ›¸ã‹ã›ã¦é ‚ãã¾ã™ã€‚
ç¾çжã®irrDrawStuffを組ã¿è¾¼ã¿ã¾ã—ãŸã€‚
ãã“ã§è³ªå•ãªã®ã§ã™ãŒã€
irrDrawStuffã®ã‚µãƒ³ãƒ—ルã®ï¼¡ãƒ¢ãƒ¼ã‚¿ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§ã€
黄色ã„ブãƒãƒƒã‚¯ã¯é€éŽã«ã™ã‚‹ã“ã¨ã¯å¯èƒ½ãªã®ã§ã—ょã†ã‹ï¼Ÿ
ãƒãƒœãƒƒãƒˆå…ˆç«¯ã®ãƒ„ールå‘ãã®ç¢ºèªã«ä½¿ã£ã¦ã„ã‚‹ã®ã§ã™ãŒã€
視点を動ã‹ã•ãšã«ã€å§¿å‹¢ã«ã‚ˆã£ã¦è£ã«å›žã£ãŸRayを確èªã—ãŸã„ã§ã™ã€‚
黄色ã„ブãƒãƒƒã‚¯ã®ç¸ã ã‘分ã‹ã‚‹ã¨ãƒ™ã‚¹ãƒˆãªã®ã§ã™ãŒãƒ»ãƒ»ãƒ»
アドãƒã‚¤ã‚¹é ‚ã‘ãªã„ã§ã—ょã†ã‹ï¼Ÿ
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
p.s.
irrDrawStuffã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚¢ãƒƒãƒ—ã®æ–¹ã€æ˜¯éžã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
Aモータã®ã‚µãƒ³ãƒ—ルã§ã¯ã€
Rayã§ã¯ãªãã€è»¸ã¯capsuleを使ã‚れã¦ã„ã¾ã—ãŸã。
訂æ£ã—ã¾ã™ã€‚
ã¾ãŸã€ODEã«ode-0.6/contrib/TerrainAndConeã‹ã‚‰æŒã£ã¦ããŸConeã‚’ç§»æ¤ã—ã¦ã€
三角éŒã®æç”»ã¯å‡ºæ¥ã¾ã—ãŸã€‚
(TerrainAndCone内ã®Readmeを見ãªãŒã‚‰ä½œæ¥ã—ã¾ã—ãŸã€‚)
当é¢ã€è¡çªæ¤œå‡ºã¯ä¸è¦ãªã®ã§äº‹è¶³ã‚ŠãŸã®ã§ã™ãŒã€
irrDrawStuffã«ã‚‚DrawCone()ç‰ã‚’è¿½åŠ ã—ãŸãæ€ã„ã¾ã™ã€‚
DrawStuffã«è¡Œã£ãŸã‚ˆã†ãªå¤‰æ›´ã§å¯èƒ½ã§ã™ã‹ï¼Ÿ
ä½•ã‹æ°—ã‚’ã¤ã‘る事ã¯ã‚りã¾ã™ã‹ï¼Ÿ
以上ã€ã‚¢ãƒ‰ãƒã‚¤ã‚¹é ‚ã‘ã¾ã™ã§ã—ょã†ã‹ï¼Ÿ
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
kaneã•ã‚“ã€
返事ãŒé…ããªã‚Šã™ã¿ã¾ã›ã‚“。
irrDrawStuff(以下iDS)ã«DrawConeã‚’è¿½åŠ ã™ã‚‹ã“ã¨ã¯å¯èƒ½ã§ã™ãŒã€è¡çªæ¤œå‡ºãŒODEã«ãªã„ã®ã§è¿½åŠ ã™ã‚‹æ„義ãŒãªã„ã®ã§iDSã«è¿½åŠ ã™ã‚‹äºˆå®šã¯ã‚りã¾ã›ã‚“。ãªãŠã€irrDrawStuffã¯OpenGLã§æ›¸ã‹ã‚ŒãŸdrawstuffã®ã‚³ãƒ¼ãƒ‰ã‚’irrlichtã®APIã§æ›¸ãç›´ã—ã¦ã„ã‚‹ã®ã§ã€OpenGLã§æ›¸ã‹ã‚ŒãŸConeã®ã‚³ãƒ¼ãƒ‰ã‚’irrlichtã®APIã§æ›¸ãç›´ã™ä½œæ¥ãŒå¿…è¦ã§ã™ã€‚
形状ã«é–¢ã—ã¦ã¯ç„¡é™ã«ã‚ã‚‹ã®ã§ã€iDSã«ï¼“次元オブジェクトファイル(3dsãªã©ï¼‰ã‚’èªã¿è¾¼ã¾ã›ã‚‹æ©Ÿèƒ½ã‚’è¿½åŠ ã™ã‚‹äºˆå®šã§ã™ã€‚
ã§ã‚€
demu様
何度もã”回ç”ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
了解ã„ãŸã—ã¾ã—ãŸã€‚
è¡çªæ¤œå‡ºä¸è¦ã§ã™ã®ã§ã€
ç¾çжã®irrDrawStuffã¸ã®è¿½åŠ ã‚’è‡ªåˆ†ã§è¡Œã£ã¦ã¿ã¾ã™ã€‚
“3次元オブジェクトファイル(3dsãªã©ï¼‰”ç‰ã«ã¤ã„ã¦ä¸å‹‰å¼·ã§ç”³ã—訳ãªã„ã®ã§ã™ãŒã€
irrDrawStuffã§å¯¾å¿œäºˆå®šã®”3dsãªã©”ã¯ãƒ•リーソフトãªã©ã§
ç°¡å˜ã«ä½œæˆå¯èƒ½ãªã®ã§ã—ょã†ã‹ï¼Ÿ
(dxfç‰ã®ã‚ˆã†ã«äºœç¨®ãŒå¤šã„ã¨DXFå½¢å¼ã§ã‚‚èªã¿è¾¼ã‚ãªã„ã“ã¨ãŒå¤šã„ã®ã§ã€ç¢ºèªã—ãŸã„ã§ã™ã€‚)
æƒ…å ±ãªã©é ‚ã‘ãŸã‚‰ã¨æ€ã„ã¾ã™ã€‚
度々ã™ã„ã¾ã›ã‚“ãŒã€ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
kane
kane様
Blenderã§ã§ãã‚‹ã¨æ€ã„ã¾ã™ã€‚ã¾ãŸã€irrDrawStuffã¯irrlichtを使ã£ã¦ã„ã‚‹ã®ã§ã€Maya (.obj), 3DStudio (.3ds), COLLADA (.dae), Blitz3D (.b3d), Milkshape (.ms3d), Quake 3 levels (.bsp), Quake2 models (.md2), Microsoft DirectX (.X)ã‚’èªã¿è¾¼ã¿å¯èƒ½ã§ã™ã€‚
詳ã—ãã¯ä»¥ä¸‹ã‚’ã”覧ãã ã•ã„。
http://irrlicht.sourceforge.net/features.html#supportedformats
ã§ã‚€
質å•ã¸ã®å›žç”ã‚’é ‚ãã€ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ã¾ãŸã€è³ªå•(2点)ãªã®ã§ã™ãŒã€
1.ODE本ã§ã—ã°ã—ã°å‡ºã¦ãã‚‹
矢å°ã¯ã©ã®ã‚ˆã†ã«ä½œæˆã•れã¦ã„ã¾ã™ã‹ï¼Ÿ
  ãŸã¨ãˆã°ã€ODE本ã®p59″図3.1 左手系”ã®ã‚ˆã†ãªçŸ¢å°ã§ã™ã€‚
  (カプセルã§èƒ´ä½“を作りã¾ã—ãŸãŒã€å…ˆç«¯ã®ä½œã‚Šæ–¹ãŒè‰¯ã分ã‹ã‚Šã¾ã›ã‚“。)
2.シュミレーションä¸ã«è‡ªä½œã®ãƒ€ã‚¤ã‚¢ãƒã‚°ã‹ã‚‰è¨å®šã‚’変更ã—ã€
シュミレーションã«åæ˜ ã‚’ã‚„ã‚ŠãŸã„ã®ã§ã™ã€‚
(例ãˆã°ã€ODE本p15ã®ãƒ—ãƒã‚°ãƒ©ãƒ 1.2ã€ãƒœãƒ¼ãƒ«ãŒè·³ã返るシミュレーション実行ä¸ã«
ダイアãƒã‚°ã‹ã‚‰ãƒœãƒ¼ãƒ«ã®è‰²ã‚’変ãˆã‚‹æ§˜ãªã‚¤ãƒ¡ãƒ¼ã‚¸ã§ã™ã€‚)
何ã‹è‰¯ã„サンプルã‚りã¾ã™ã‹ï¼Ÿ(VS2008希望)
以上ã€åˆæ©çš„ã§ã™ã„ã¾ã›ã‚“ãŒ
アドãƒã‚¤ã‚¹é ‚ã‘ã¾ã™ã§ã—ょã†ã‹ã€‚
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
kaneã•ã‚“ã€
1.ODEã®å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ode-0.6/contrib/TerrainAndConeã«å«ã¾ã‚Œã¦ã„ãŸAPIを使ã„ã¾ã—ãŸã€‚最近ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ã‚‚ã†å…¥ã£ã¦ã„ãªã„よã†ã§ã™ã€‚
2.ODEã®ãƒ‰ãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•ã¯GUIã®æ©Ÿèƒ½ãŒè²§å¼±ã§ã€ãƒ€ã‚¤ã‚¢ãƒã‚°ã‹ã‚‰å…¥åŠ›ãªã©ã¯ã§ãã¾ã›ã‚“。ãã®ãŸã‚ã€ç§ã¯irrDrawStuffã¨ã„ã†ãƒ©ã‚¤ãƒ–ラリを作りã€ãã®å•題を解決ã—ãŸã„ã¨è€ƒãˆã¦ã„ã¾ã™ã€‚具体的ã«ã¯ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®ã©ã®ã‚ˆã†ãªé …目をダイアãƒã‚°ã§å¤‰æ›´ã—ãŸã„ã§ã—ょã†ã‹ï¼Ÿã€€ãªãŠã€ä»Šã®ã¨ã“ã‚サンプルã¯ã‚りã¾ã›ã‚“。
ã§ã‚€
ã§ã‚€æ§˜
ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
毎回ã€å›žç”é ‚ãæœ¬å½“ã«æ„Ÿè¬ã—ã¦ãŠã‚Šã¾ã™ã€‚
1ã«ã¤ã„ã¦ã€
矢å°å…ˆç«¯å½¢çŠ¶ã¯æ®‹å¿µã§ã™ã€‚
最新ã§ä½œæˆã™ã‚‹ã¨ã—ãŸã‚‰ã©ã‚“ãªæ–¹æ³•ãŒä¸€ç•ªæ¥½ã§ã™ã‹ï¼Ÿ
ï¼’ã«ã¤ã„ã¦
 やりãŸã„ã®ã¯ã€ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ 先端ã®ç›®æ¨™ãƒã‚¸ã‚·ãƒ§ãƒ³ã‚’
ダイアãƒã‚°ã‹ã‚‰æ•°å€¤æŒ‡å®šã•ã›ãŸã„ã§ã™ã€‚
 ã¾ãŸã€ç¾åœ¨åº§æ¨™ã‚„å§¿å‹¢ã€å„関節角度をプãƒãƒ³ãƒ—トã§ã¯ãªã
 ダイアãƒã‚°ã«è¡¨ç¤ºã§ãれã°ã¨æ€ã£ã¦ã„ã¾ã™ã€‚
ã¡ãªã¿ã«ã€
 Odeã§ä½œæˆã—ãŸexeã‚’odeをインストールã—ã¦ã„ãªã„環境ã§
 実行ã—ãŸã„ã®ã§ã™ãŒã€ä½•ã‹æ–¹æ³•ã‚りã¾ã™ã‹ï¼Ÿ
 (ã†ã¾ãåŒæ§˜ã®è³ªå•を探ã›ã¾ã›ã‚“ã§ã—ãŸã€‚ã™ã§ã«åŒæ§˜ã®å›žç”ãŒã‚ã£ãŸã‚‰ã™ã„ã¾ã›ã‚“。)
ã¤ã„ã§ã®æ§˜ã«è³ªå•ã‚’è¿½åŠ ã—ã¦ã—ã¾ã„
申ã—訳ã‚りã¾ã›ã‚“ãŒã€ã‚¢ãƒ‰ãƒã‚¤ã‚¹é ‚ã‘ã¾ã™ã§ã—ょã†ã‹ã€‚
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
kaneã•ã‚“ã€
1.形状ã ã‘ã§ã‚ˆã‘れã°ode-0.6ã®contribã‹ã‚‰æŒã£ã¦ãã¦ODE全体をコンパイルã™ã‚Œã°è‰¯ã„ã¨æ€ã„ã¾ã™ãŒã€ç°¡å˜ã‹ã©ã†ã‹ã‚ˆãã‚ã‹ã‚Šã¾ã›ã‚“。è¡çªæ¤œå‡ºã‚‚å¿…è¦ãªã‚‰ã€ã‚³ãƒ¼ãƒ³ï¼ˆçŸ¢å°å½¢çŠ¶ï¼‰ã‚’ä¸‰è§’ãƒ¡ãƒƒã‚·ãƒ¥ã§ä½œæˆã™ã‚Œã°ã‚ˆã„ã§ã™ãŒã€ã“れも簡å˜ã§ã¯ã‚りã¾ã›ã‚“。ã¤ã¾ã‚Šã€ç¾çжã®ODEã§ã¯æ¨™æº–ã§å®¹æ˜“ã•れã¦ã„るジオメトリ以外を使ã†ã“ã¨ã¯ç°¡å˜ã§ã¯ã‚りã¾ã›ã‚“。ã“ã®å•題を解決ã™ã‚‹ãŸã‚ã«irrDrawStuffを作ã£ã¦ã„ã¾ã™ã€‚3Dã®ã‚ªãƒ–ジェクトファイルをèªã¿è¾¼ã¿ã€è¡çªæ¤œå‡ºã‚’ã™ã‚‹éƒ¨åˆ†ã‚’実装ã—ã¦ã„ã¾ã™ã€‚å¤ä¼‘ã¿ä¸ã«ã¯ã§ãã‚‹ã¨æ€ã„ã¾ã™ã€‚
2.GUIã®éƒ¨åˆ†ã‚’御自分ã§å®Ÿè£…ã™ã‚‹ã—ã‹ãªã„ã§ã™ã。
3.Staticライブラリを使ã£ãŸå ´åˆã¯ã€exeファイルをæŒã£ã¦ã„ãã ã‘ã§å®Ÿè¡Œã§ãã¾ã™ã€‚Dynamicライブラリを使ã£ãŸå ´åˆã¯dllファイルも必è¦ã§ã™ã€‚
ãªãŠã€demura.netã®è¨˜äº‹ã¯å¤šããªã£ãŸã®ã§ã€å³ä¸Šã®æ¤œç´¢çª“ã‹ã‚‰ã‚ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’å…¥ã‚Œã¦æŽ¢ã—ã¦ãã ã•ã„。
ãŠå½¹ã«ç«‹ã¦ã‚Œã°è‰¯ã‹ã£ãŸã®ã§ã™ãŒã€æ®‹å¿µãªãŒã‚‰ç¾çжã§ã¯å‡ã£ãŸã“ã¨ã‚’ã—よã†ã¨æ€ã†ã¨ç°¡å˜ã§ã¯ã‚りã¾ã›ã‚“。ODEã¯å‹•力å¦è¨ˆç®—ã‚’ã™ã‚‹ãƒ©ã‚¤ãƒ–ラリã ã‘ãªã®ã§ã€æç”»ã‚„GUIã«å‡ã£ãŸã“ã¨ã‚’ã—よã†ã¨ã™ã‚‹ã¨ä»–ã®ãƒ©ã‚¤ãƒ–ラリを使ã‚ãã°ãªã‚Šã¾ã›ã‚“。
ã§ã‚€
返信ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
å‰å›žã®ç¶šããªã®ã§ã™ãŒã€è¿”ä¿¡ã®ãƒœã‚¿ãƒ³ãŒè¦‹ã‚ãŸã‚‰ãªã„ã®ã§æ–°ã—ã質å•ã‚’ã‚ã’ã•ã›ã¦ã„ãŸã ãã¾ã™ã€‚
>実行ã§ããšã«could not load acceleratorsã¨ã‚¨ãƒ©ãƒ¼ãŒå‡ºãŸãƒ—ãƒã‚°ãƒ©ãƒ ã¯ã€ï¼¯ï¼¤ï¼¥ã®ãƒ‡ãƒ¢ãƒ—ãƒã‚°ãƒ©ãƒ ã€ï¼¯ï¼¤ï¼¥æœ¬ã®ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ ã€ã‚ã‚‹ã„ã¯è‡ªä½œãƒ—ãƒã‚°ãƒ©ãƒ ã®ã†ã¡ã©ã¡ã‚‰ã§ã—ょã†ã‹ï¼Ÿ
自分ãŒä½¿ã£ãŸãƒ—ãƒã‚°ãƒ©ãƒ ã¯ã€€ç°¡å˜ï¼Code::Blocksを使ã£ãŸè‡ªä½œODE0.11.1プãƒã‚°ãƒ©ãƒ ã®ãƒ“ルド法 (Windows)ã€€ã«æ²¿ã£ã¦è½ã¨ã—ãŸtemplateファイルã§ã™ã€‚
Code::Blocksを使ã£ãŸè‡ªä½œODEプãƒã‚°ãƒ©ãƒ ã®ãƒ“ルド法 (Windows) を試ã—ã¦ã¿ãŸã¨ã“ã‚ã€æœ€å¾Œã®ãƒ“ルドãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚
No such file or directory ã¨è¡¨ç¤ºã•れã¦ã—ã¾ã„ã¾ã™ã€‚
ã¾ãŸã€ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‚¢ãƒ—リケーションを試ã—ã¦ã¿ãŸã®ã§ã™ãŒã€Debug targetãŒDebugã¨ã—ã‹è¡¨ç¤ºã•れãªã‹ã£ãŸã‚Šã—ã¦è¨å®šãŒã†ã¾ãã„ãã¾ã›ã‚“。
手段ã¨ç›®çš„ãŒé€†è»¢ã—ãã†ãªã®ã§ã¯ã£ãりã•ã›ãŸã„ã®ã§ã™ãŒã€
è‡ªåˆ†ã¯æœ¬ã®ã‚µãƒ³ãƒ—ルを元ã«ã—ãŸï¼¥ï¼¸èª²é¡Œã®ãƒ—ãƒã‚°ãƒ©ãƒ (P.28ã®monoBot2)やプãƒãƒ—ãƒã®è›‡ãƒãƒœãƒƒãƒˆï¼ˆP.27)を作ã£ã¦è¦‹ãŸã„ã®ã§ã™ã€‚
ã‚‚ã—ã€ã“れらã®ã»ã‹ã«ã„ã„æ–¹æ³•ãŒã‚ã‚Œã°æ•™ãˆã¦ã„ãŸã ã‘ã‚‹ã¨ã‚りãŒãŸã„ã§ã™ã€‚
ç¾åœ¨ã€å¤šå¿™ãªãŸã‚返信ãŒé…ãã”迷惑をãŠã‹ã‘ã—ã¾ã™ãŒã€ã©ã†ã‹ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
今野
ããªã„ã•ん,
No such file or directoryã¨å‡ºã‚‹ã®ã¯ï¼Œå¤šãã®å ´åˆæŒ‡å®šã•れã¦ãƒ•ォルダーã«ãƒ•ァイルを置ã„ã¦ã„ãªã„ã‹ã‚‰ã§ã™ï¼ŽODEã®ãƒ©ã‚¤ãƒ–ラリã¨ãƒ˜ãƒƒãƒ€ãƒ•ァイルã®ç›¸å¯¾ãƒ‘スã§ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆãƒ•ァイルを記述ã—ã¦ã„ã‚‹ã®ãŒåŽŸå› ã§ã™ï¼Ž
ãã®ä»–ã«ã‚‚åŽŸå› ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“ãŒï¼Œã“ã®æƒ…å ±ã ã‘ã§ã¯ã‚ã‹ã‚Šã¾ãã¾ã™ï¼Žä»–ã«è‰¯ã„方法ã¨ã—ã¦ã¯ï¼ŒODEã®ãƒ‡ãƒ¢ãƒ—ãƒã‚°ãƒ©ãƒ ã¨åŒã˜å ´æ‰€ã«ãƒ•ァイルを置ã„ã¦ãƒ“ルド関係ã®ãƒ•ァイルpremake4.luaã«ã”自分ã®ä½œæˆã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’è¿½åŠ ã™ã‚Œã°å¯èƒ½ã ã¨æ€ã„ã¾ã™ï¼Ž
ãªã‹ãªã‹ãŠåŠ›ã«ãªã‚Œãšã™ã¿ã¾ã›ã‚“.
ã§ã‚€
ããªã„ã•ã‚“ã€
一番簡å˜ã ã¨è€ƒãˆã‚‰ã‚Œã‚‹æ–¹æ³•ã®è¨˜äº‹ã‚’7月26日付demura.netã«æ›¸ãã¾ã—ãŸã®ã§å‚考ã«ã—ã¦ãã ã•ã„。ã“ã®æ–¹æ³•ãªã‚‰ã§ãã‚‹ã¨æ€ã„ã¾ã™ã€‚
ã§ã‚€
ã“ã®é–“ã¯è³ªå•ã«ç”ãˆã¦ã„ãŸã ã„ã¦ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸã€‚
ã‚‚ã†ã²ã¨ã¤è³ªå•ãªã‚“ã§ã™ãŒãƒ»ãƒ»ãƒ»ï¼ˆã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã«é–¢ã™ã‚‹åŠ›ã¨ãƒˆãƒ«ã‚¯ã«ã¤ã„ã¦ï¼‰
ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ ã®å ´åˆã€ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã«ç”Ÿã˜ã‚‹åŠ›ã®æ¤œå‡ºã¯ãŸã¨ãˆã°ç‰©ãŒã¶ã¤ã‹ã£ãŸè¡æ’ƒã§ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆãŒå‹•ã„ã¦ãªãã¦ã‚‚トルクã¨åŠ›ã®æ¤œå‡ºã¯ã§ãã‚‹ã®ã§ã—ょã†ã‹ï¼Ÿ
何度も質å•ã‚’ã—ã¦ã—ã¾ã£ã¦ç”³ã—訳ã‚りã¾ã›ã‚“ãŒã€ã‚ˆã‚ã—ã‘れã°è¿”ç”ã‚’ãŠé¡˜ã„ã—ã¾ã™ã€‚
ashinã•ã‚“ã€
ã§ãã‚‹ã¨æ€ã„ã¾ã™ã€‚
固定ジョイントã§ã‚»ãƒ³ã‚µã®ãƒ¢ãƒ‡ãƒ«ã‚’作ã£ãŸã“ã¨ãŒã‚りã¾ã™ã‹ã‚‰ã€‚
ã§ã‚€
ã¯ã˜ã‚ã¾ã—ã¦ã€ããªã„ã¨ç”³ã—ã¾ã™ã€‚
ODEã«èˆˆå‘³ã‚’æŒã¡ã€æœ¬ã¨ã“ã®ã‚µã‚¤ãƒˆæ§˜ã‚’å‚è€ƒã«æŒ‘戦ã—ã¦è¦‹ãŸã®ã§ã™ãŒï¼¯ï¼¤ï¼¥ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§èº“ã„ã¦ã—ã¾ã„ã¾ã—ãŸã€‚
ã“ã®ã‚µã‚¤ãƒˆæ§˜ã®ODE 0.10 ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã€€(MSYS+MinGW)ã¨ã„ã†ãƒšãƒ¼ã‚¸ã«æ²¿ã£ã¦ã‚„ã£ã¦ã¿ãŸã®ã§ã™ãŒã€
make CONFIG=DebugDoubleLib を実行ã—ãŸã‚ã¨ã€
ディレクトリã®lib/DebugDoubleLibãŒå˜åœ¨ã›ãšã€æ‹¡å¼µåãŒ.exeã®ãƒ•ァイルも見当ãŸã‚Šã¾ã›ã‚“。
åˆå¿ƒè€…ãªã®ã§è¦‹è½ã¨ã—ãªã©ã‚ã‚‹ã‹ã‚‚知れã¾ã›ã‚“ãŒã©ã†ã‹ã”教授ãã ã•ã„。
ããªã„ã•ã‚“ã€
コメントã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
最近ã®ï¼¯ï¼¤ï¼¥ã¯MSYS+MinGWをサãƒãƒ¼ãƒˆã—ã¦ãªã„ã‚“ã§ã™ã€‚Windows環境ã§gccを使ã„ãŸã„ã®ã§ã‚れã°ã€Codeblocksã®ä½¿ç”¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚
ã¾ãŸã¯ã€å¾¡è‡ªåˆ†ã§é ‘å¼µã£ã¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«è¨˜äº‹ã‚’執ç†ã—ã¦ãã ã•ã„。
ãã®æ™‚ã¯ã€ãã®æ–¹æ³•ã‚’æ•™ãˆã¦ãã ã•ã„。よã‚ã—ã御願ã„ã—ã¾ã™ã€‚
ã§ã‚€
返信ãŒé…れã¦ã—ã¾ã„申ã—訳ã‚りã¾ã›ã‚“。
ã”è¿”ç”ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
Codeblocksを試ã—ã¦ã¿ãŸã¨ã“ã‚ã€ç„¡äº‹ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ãã¾ã—ãŸã€‚
ã¾ãŸã€ä½•度もã™ã¿ã¾ã›ã‚“ãŒã¾ãŸå•題ãŒç™ºç”Ÿã—ã¦ã—ã¾ã£ãŸãŸã‚質å•ã•ã›ã¦é ‚ããŸã„ã¨æ€ã„ã¾ã™ã€‚
自作ã®ãƒ—ãƒã‚°ãƒ©ãƒ を試ã—ã¦è¦‹ãŸã‹ã£ãŸã®ã§
ç°¡å˜ï¼Code::Blocksを使ã£ãŸè‡ªä½œODE0.11.1プãƒã‚°ãƒ©ãƒ ã®ãƒ“ルド法 (Windows)ã€€ã«æ²¿ã£ã¦è¨å®šã‚’ã—ãŸã¨ã“ã‚ã€.exeãŒå®Ÿè¡Œã§ãã¾ã›ã‚“ã§ã—ãŸã€‚
コンパイルã¯é€šã£ã¦ã„ã¾ã™ã—何度ã‹è©¦ã—ãŸã®ã§æ‰‹é †ã«é–“é•ã„ã¯ç„¡ã„ã¨æ€ã„ã¾ã™ã€‚
実行ã—ãŸã¨ã“ã‚ could not load accelerators ã¨ã‚¨ãƒ©ãƒ¼ãŒå‡ºã¾ã—ãŸã€‚
windowsXP,ode-0.11.1,codeblocks-10.05を使用ã—ã¦ã„ã¾ã™ã€‚
ã‚ã¨ã€æ°—ã«ãªã£ãŸã®ã§ã™ãŒtemplate090616 ã«template.layoutãŒå…¥ã£ã¦ã„ã¾ã›ã‚“ã§ã—ãŸã€‚
ã©ã†ã‹ã”教授ãã ã•ã„。
ã¾ãŸã€è‡ªä½œãƒ•ァイルãŒã§ããªã‹ã£ãŸã®ã§codeblocksã§æ–°è¦ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’作ã‚ã†ã¨ã—ãŸã®ã§ã™ãŒã€
ï¼¯ï¼¤ï¼¥ã®æœ¬ã®ã‚ˆã†ãªãƒ—ãƒã‚°ãƒ©ãƒ を書ããŸã„å ´åˆã€ã©ã‚Œã‚’é¸ã¹ã°ã‚ˆã„ã®ã§ã—ょã†ã‹ï¼Ÿ
æ–°è¦ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’é¸ã¶ã¨ã•ã¾ã–ã¾ãªé¸æŠžè‚¢ãŒå‡ºã¦ããŸã®ã§è‡ªåˆ†ã§èª¿ã¹ã¦ã¿ãŸã®ã§ã™ãŒã€ã©ã‚ŒãŒã©ã‚Œã»ã©é•ã†ã®ã‹ã„ã¾ã„ã¡åˆ†ã‹ã‚Šã¾ã›ã‚“。
ãŠå‹§ã‚ãŒã‚ã£ãŸã‚‰æ•™ãˆã¦ã„ãŸã ã‘ãªã„ã§ã—ょã†ã‹ï¼Ÿ
ããªã„ã•ã‚“ã€
実行ã§ããšã«could not load acceleratorsã¨ã‚¨ãƒ©ãƒ¼ãŒå‡ºãŸãƒ—ãƒã‚°ãƒ©ãƒ ã¯ã€ï¼¯ï¼¤ï¼¥ã®ãƒ‡ãƒ¢ãƒ—ãƒã‚°ãƒ©ãƒ ã€ï¼¯ï¼¤ï¼¥æœ¬ã®ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ ã€ã‚ã‚‹ã„ã¯è‡ªä½œãƒ—ãƒã‚°ãƒ©ãƒ ã®ã†ã¡ã©ã¡ã‚‰ã§ã—ょã†ã‹ï¼Ÿã€€ã“ã®ã‚¨ãƒ©ãƒ¼ã¯ãƒªã‚½ãƒ¼ã‚¹ãƒ•ァイルãŒã†ã¾ãè¨å®šã•れã¦ã„ãªã„ã¨ãã«å‡ºã‚‹ã‚‚ã®ã§ã™ã€‚プãƒã‚¸ã‚§ã‚¯ãƒˆãƒ•ァイルãŒãŠã‹ã—ã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
ç°¡å˜ï¼Code::Blocksを使ã£ãŸè‡ªä½œODE0.11.1プãƒã‚°ãƒ©ãƒ ã®ãƒ“ルド法 (Windows) ã«å¾“ã£ã¦ã‚„ã£ã¦ã¿ã¾ã—ãŸãŒå•題ã‚りã¾ã›ã‚“ã§ã—ãŸã€‚ãŸã ã€template.layoutã¯å…¥ã£ã¦ã„ãªã„ã®ã§å…ƒè¨˜äº‹ã‚’変更ã—ã¾ã—ãŸã€‚ãªãŠã€codeblocksã§æ–°è¦ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’作る方法ã¯ã€ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‚¢ãƒ—リケーションをé¸ã¹ã°è‰¯ã„ã®ã§ã™ãŒè¨å®šãŒå°‘々大変ã§ã™ã€‚多少å¤ã„ã§ã™ãŒã€è‡ªä½œãƒ—ãƒã‚°ãƒ©ãƒ ã®ãƒ“ルド法ã¯ä»¥ä¸‹ã®è¨˜äº‹ã‚‚å‚考ã«ãªã‚‹ã¨æ€ã„ã¾ã™ã€‚
http://demura.net/9ode/548.html
ã§ã‚€
ã€æœ‰é¡”ベクトル→ãƒãƒ¼ãƒ«ã€ãƒ”ッãƒã€ãƒ¨ãƒ¼å°Žå‡ºæ™‚ã®è§£ã®ç‰¹å®šã€‘
度々ã™ã„ã¾ã›ã‚“。
ODE本ã®å†…容ã«ã¤ã„ã¦
ã”質å•ã•ã›ã¦é ‚ãã¾ã™ã€‚
ç¾åœ¨ã€6自由度ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ ã®ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆè§’度ã‹ã‚‰
ãƒãƒ¼ãƒ«ã€ãƒ”ッãƒã€ãƒ¨ãƒ¼è§’ã‚’
以下ã®ã‚ˆã†ã«å°Žå‡ºã—よã†ã¨ã—ã¦ãŠã‚Šã¾ã™ã€‚
â‘ .”6.3 é †é‹å‹•å¦ï¼šé–¢ç¯€è§’度ã‹ã‚‰æ‰‹å…ˆä½ç½®ã¨å§¿å‹¢ã®æ±‚ã‚æ–¹”ã®
“6.3.3 6自由度ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ ã®ã‚¹ãƒ†ãƒƒãƒ—3(161ページ)ã®æ–¹æ³•ã§ã€
å„ジョイント角度ã‹ã‚‰æœ‰é¡”ベクトルを求ã‚ã¾ã™ã€‚
â‘¡.次ã«ã€æ±‚ã‚ãŸæœ‰é¡”ベクトルã‹ã‚‰ãƒãƒ¼ãƒ«ã€ãƒ”ッãƒã€ãƒ¨ãƒ¼ã‚’求ã‚る為ã€
“6.1 物体を空間ã«è¡¨ç¤ºã™ã‚‹ã«ã¯”ã®
“6.1.4 絶対座標系を使ã†ãƒãƒ¼ãƒ«ã€ãƒ”ッãƒã€ãƒ¨ãƒ¼è§’”(148~150ページ)
ã‚’å‚è€ƒã«æ±‚ã‚ã¦ã„ã¾ã™ã€‚
ã“ã“ã§ç–‘å•ãªã®ã§ã™ãŒã€
â‘¡ã®çµæžœã€ãƒãƒ¼ãƒ«ã€ãƒ”ッãƒã€ãƒ¨ãƒ¼è§’ãŒï¼’çµ„å‡ºã‚‹ã¨æ€ã„ã¾ã™ã€‚
æ•°å¼ã¨ã—ã¦ï¼’組出る事ã¯ç†è§£ã§ãã‚‹ã®ã§ã™ãŒã€
ã©ã¡ã‚‰ã®çµ„ã‚’é¸æŠžã™ã‚‹ã‹ã®åˆ¤æ–ã‚’ã©ã®ã‚ˆã†ã«ã™ã‚Œã°è‰¯ã„ã®ã‹åˆ†ã‹ã‚Šã¾ã›ã‚“。
(計算ã‹ã‚‰ã©ã¡ã‚‰ã®è§£ã‚’å–れã°ã‚ˆã„ã‹åˆ¤æ–ã—ãŸã„ã§ã™ã€‚)
有顔ベクトルã§ä¸€æ„ã«å§¿å‹¢ãŒæ±ºã¾ã£ã¦ã„ã‚‹ã®ã§ã€
ã©ã¡ã‚‰ã®ãƒãƒ¼ãƒ«ã€ãƒ”ッãƒã€ãƒ¨ãƒ¼è§’ã‚’é¸æŠžã™ã‚Œã°ã‚ˆã„ã®ã‹
判æ–å¯èƒ½ã¨æ€ã†ã®ã§ã™ãŒãƒ»ãƒ»ãƒ»
å˜ç´”ãªäº‹ã‹ã‚‚ã—れã¾ã›ã‚“ãŒ
æ•™ãˆã¦é ‚ã‘ã¾ã›ã‚“ã§ã—ょã†ã‹ï¼Ÿ
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
kaneã•ã‚“ã€
御質å•é ‚ãã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ã©ã®è§£ã‚’é¸ã¹ã°è‰¯ã„ã‹ã¯ãƒãƒœãƒƒãƒˆã®å¯å‹•域制é™ã‚„ãƒãƒœãƒƒãƒˆã®å§¿å‹¢ã«ã‚ˆã‚Šã¾ã™ã€‚
何らã‹ã®è©•ä¾¡åŸºæº–ã‚’ãŠæ±ºã‚ã«ãªã£ã¦é¸æŠžã•れれã°è‰¯ã„ã¨æ€ã„ã¾ã™ï¼ˆã“ã®è°è«–ã¯ODE本ã®ç¯„囲外)。
最低ã§ã‚‚ãƒãƒœãƒƒãƒˆã®é‹å‹•ä¸ã«çªç„¶å§¿å‹¢ãŒå¤‰ã‚る解をé¸ã‚“ã§ã¯ã„ã‘ã¾ã›ã‚“。
ç¾å®Ÿçš„ã«ã¯ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚¿ã§å‹•作を確èªã—ã¦ã€é¸æŠžã—ãŸè§£ã§å•題ãªã„ã‹ç¢ºèªã™ã‚Œã°ã‚ˆã„ã¨æ€ã„ã¾ã™ã€‚
ã§ã‚€
demu様
ã”回ç”ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ã¾ãŸã€æœ¬ï¾ï¾Ÿï½°ï½¼ï¾žã®ä¸‹æ–¹ã®è³ªå•(6軸アームã§Î¸5=0ã®æ™‚ã®Î¸4ã¨Î¸6ã®é–¢ä¿‚)ã«ã‚‚
ã”回ç”é ‚ãã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
(下方ã®å›žç”é ‚ã„ãŸæ¬„㫔返信”ボタンãŒè¦‹ã‚ãŸã‚Šã¾ã›ã‚“ã§ã—ãŸã®ã§ã€
ã“ã“ã§ãŠç¤¼ã‚’ã•ã›ã¦é ‚ãã¾ã™ã€‚)
ã•ã¦ã€ã”回ç”ã®ä¸ã®”評価基準ã«ã‚ˆã‚‹è§£ã®é¸æŠž”ã«ã¤ã„ã¦ã¯ã€
ãŠã£ã—ゃる通りã ã¨æ€ã„ã¾ã™ã€‚
ãŸã ã€ç–‘å•ãªã®ãŒ
 例ãˆã°ã€ODE本ã®(6.11)å¼
 ã§CpãŒÂ±ç¬¦å·ã¨ãªã£ã¦ã„ã¾ã™ã€‚
 CpãŒ+符å·ã‚’å–ã‚‹ã®ã‹ã€-符å·ã‚’å–ã‚‹ã®ã‹ã¯
 変æ›å‰ã®å›žè»¢è¡Œåˆ—(や有顔ベクトル)ãŒåˆ†ã‹ã£ã¦ã„ã‚‹å ´åˆã¯
 判æ–ã§ãã‚‹ã®ã§ã¯ãªã„ã‹ï¼Ÿ
 (ç‰¹ã«æœ‰é¡”ベクトルã¯ç©ºé–“上ã®ä¸€æ„ã®å§¿å‹¢ãªã®ã§ã€
  計算ã‹ã‚‰CpãŒ+ã‹-ã‹åˆ¤æ–ãŒå¯èƒ½ã¨æ€ã†ã®ã§ã™ãŒãƒ»ãƒ»ãƒ»)
ã¨ã„ã†ç‚¹ã§ã™ã€‚
ã¾ãŸã€
例ãˆã°ODE本ã®(6.7)å¼ã‹ã‚‰
r31 = -sin(P)
ã®é–¢ä¿‚ãŒåˆ†ã‹ã‚‹ã®ã§ã€
P = asin(-r31)
ã¨ã—ã¦Pを算出ã™ã‚‹ã®ã¯å•題ã‚ã‚‹ã®ã§ã—ょã†ã‹ï¼Ÿ
ã‚‚ã—ãã¯ã€
ODE本ã®(6.12)å¼ã‚’使ã£ã¦å‡ºã—ãŸï¼’種類ã®Pã¨
上記ã§ç®—出ã—ãŸPã‹ã‚‰
本æ¥å–ã‚‹ã¹ãPを判æ–ã™ã‚‹äº‹ã¯å‡ºæ¥ãªã„ã®ã§ã—ょã†ã‹ï¼Ÿ
以上ã€é•·ããªã‚Šç”³ã—訳ã”ã–ã„ã¾ã›ã‚“ãŒã€
ã”æ„è¦‹ã‚’é ‚ã‘ãªã„ã§ã—ょã†ã‹ã€‚
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
Kaneã•ã‚“ã€
ODE本ã®(6.11)å¼ã¯å›žè»¢è¡Œåˆ—ã¨ãƒãƒ¼ãƒ«ãƒ»ãƒ”ッãƒãƒ»ãƒ¨ãƒ¼è§’ã®é–¢ä¿‚ã‹ã‚‰æ±‚ã‚ã¦ãŠã‚Šã€è¨ˆç®—ã™ã‚‹ã¨è§£ãŒï¼’ã¨ãŠã‚Šã§ã¦ãã¾ã™ã€‚ã¤ã¾ã‚Šã€åŒã˜å›žè»¢è¡Œåˆ—(姿勢)ã«ãªã‚‹ãƒãƒ¼ãƒ«ãƒ»ãƒ”ッãƒãƒ»ãƒ¨ãƒ¼è§’ãŒï¼’通りã‚ã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚
ãªãŠã€r31=-sin(P)ã ã‘ã‹ã‚‰è¨ˆç®—ã™ã‚‹ã¨è§£ãŒï¼‘ã¨ãŠã‚Šã—ã‹ã§ãªã„ã®ã§ã€ã‚‚ã†ä¸€ã¤ã®è§£ãŒæ±‚ã¾ã‚Šã¾ã›ã‚“。
ã“ã®ä»¶ã®ã‚‚ã†å°‘ã—詳ã—ã„説明ã¯åºƒç€¬å…ˆç”Ÿã®æ•™ç§‘書ãƒãƒœãƒƒãƒˆå·¥å¦ï¼°ï¼‘41ã‹ã‚‰ï¼°ï¼‘42ã«ã‚りã¾ã™ã€‚
ã§ã‚€
åˆ¥ä»¶ã§æ•™ãˆã¦é ‚ã‘ã¾ã™ã§ã—ょã†ã‹ï¼Ÿ
ODE本ã«ï¼–軸自由度ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ ã®ç”»é¢ãŒä½•個ã‹è¦‹å—ã‘ã¾ã—ãŸã€‚
掲載ã®ã‚ã‚‹â€ï¼–軸自由度ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ â€ã®ã‚µãƒ³ãƒ—ルã¯ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰å¯èƒ½ãªã®ã§ã—ょã†ã‹ï¼Ÿ
(見è½ã¨ã—ã¦ã„ã¾ã—ãŸã‚‰ç”³ã—訳ã”ã–ã„ã¾ã›ã‚“。)
ä»¥ä¸Šã€æ•™ãˆã¦é ‚ã‘ã¾ã™ã§ã—ょã†ã‹ã€‚
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
ã™ã¿ã¾ã›ã‚“。
サンプルã¯ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã§ãるよã†ã«ã—ã¦ã„ã¾ã›ã‚“。
ã§ã‚€
ã”回ç”ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
了解ã„ãŸã—ã¾ã—ãŸã€‚
ã‚‚ã—ã€ã”計画ãŒå¤‰ã‚りã¾ã—ãŸã‚‰
(ダウンãƒãƒ¼ãƒ‰å¯èƒ½ã«ãªã‚Šã—ãŸã‚‰)ã†ã‚Œã—ã„ã§ã™ã€‚
ã©ã†ãžã€ã”検討下ã•ã„。
demura様
ç§ã¯demuraæ§˜ãŒæ›¸ã‹ã‚ŒãŸã€Œãƒãƒœãƒƒãƒˆã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã€€æ£®åŒ—出版ã€ã‚’èªã‚“ã§å¦ç¿’ã—ã¦ã„る者ã§ã™ï¼Ž
今,å‰è¿°æœ¬ã®P.171 図6.18,19ã‚’å‚考ã«äºŒè‡ªç”±åº¦ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ ã®é€†é‹å‹•å¦ã‚’シミュレーションã—よã†ã¨å–り組んã§ã„ã‚‹ã®ã§ã™ãŒï¼Œå›³6.19ã§ã„ã†Î¸ï¼‘ãŒå‹•ã„ã¦ã„ãªã„ã¨æ€ã‚れã¾ã™ï¼Ž
ヒンジジョイントを用ã„ã¦åœ°é¢ã¨ãƒªãƒ³ã‚¯0ã‚’ã¤ãªãŽãã®ãƒ’ンジを動ã‹ã—ãŸã„ã®ã§ã™ãŒå‹•ãã¾ã›ã‚“.
アドãƒã‚¤ã‚¹ã‚’ãŠé¡˜ã„ã„ãŸã—ã¾ã™ï¼Ž
-sunlight-
以下 組んã§ã¿ãŸåˆæœŸè¨å®šã¨ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆè¨å®šåŠã³è§’度指示を記述ã—ã¾ã™ï¼Ž
//åˆæœŸè¨å®š//
NUM 2
dMass mass;
dMatrix3 R;
dRFromAxisAndAngle(R,1,0,0,M_PI/2);
dReal x[NUM]={0.0, 0.0};
dReal y[NUM]={0.5, 1.5};
dReal z[NUM]={0.0, 0.0};
dReal length[NUM]={1, 1};
dReal weight[NUM]={0.30, 0.25};
dReal r[NUM]={0.04, 0.04};
dReal c_x[NUM]={0.00, 0.00};
dReal c_y[NUM]={0.00, 1};
dReal c_z[NUM]={0.0, 0.0};
dReal axis_x[NUM]={0, 0};
dReal axis_y[NUM]={0, 0};
dReal axis_z[NUM]={1, 1};
for (int i = 0; i < NUM; i++){
rlink[i].body =dBodyCreate(world);
dBodySetPosition(rlink[i].body, x[i], y[i], z[i]);
dBodySetRotation(rlink[i].body,R);
dMassSetZero(&mass);
dMassSetCapsuleTotal(&mass, weight[i], 3, r[i], length[i]);
dBodySetMass(rlink[i].body, &mass);
rlink[i].geom = dCreateCapsule(space, r[i], length[i]);
dGeomSetBody(rlink[i].geom, rlink[i].body);
}
//ジョイントè¨å®š//
joint[0] = dJointCreateHinge(world,0);
dJointAttach(joint[0], 0,rlink[0].body);
dJointSetHingeAnchor(joint[0],0,0,0);
dJointSetHingeAxis(joint[0],0,0,1);
joint[1] =dJointCreateHinge(world,0);
dJointAttach(joint[1],rlink[0].body,rlink[1].body);
dJointSetHingeAnchor(joint[1],0,1,0);
dJointSetHingeAxis(joint[1],0,0,1);
}
//角度指示//
case 1:
THETA[1] = M_PI – beta;
THETA[0] = M_PI/2 -phi -alpha; break;
sunlightã•ã‚“ã€
ã™ã¿ã¾ã›ã‚“ãŒã€ãƒãƒœã‚«ãƒƒãƒ—ãŒçµ‚ã‚ã‚Šé›‘ç”¨ãŒæºœã¾ã£ã¦ã„ã¦ã€ã“ã®ã‚ˆã†ãªã‚½ãƒ¼ã‚¹ã‚’è§£èªã—ã¦æ‚ªã„ã¨ã“ã‚を御指摘ã™ã‚‹ã‚ˆã†ãªå¾¡è³ªå•ã«å›žç”ã™ã‚‹ä½™è£•ãŒã‚りã¾ã›ã‚“。
逆é‹å‹•å¦ã®ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ ã¯å‹•ãã®ã§ã€ãã‚Œã¨æ¯”較ã—ã¦ãƒ‡ãƒãƒƒã‚°ã—ã¦é ‚ã‘ãªã„ã§ã—ょã†ã‹ã€‚
ã§ã‚€
ODE本を購入ã—ã•ã›ã¦ã„ãŸã ãã¾ã—ãŸã€‚
本ã®å†…容ã§è³ªå•ãŒã‚りã¾ã™ã€‚
“6.5.36自由度ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ ã®é€†é‹å‹•å¦â€
ã®Î¸4~θ6を導出ã™ã‚‹éƒ¨åˆ†(P178~P179)ã§ã™ãŒã€
θ5ãŒ0°ã®å ´åˆã€S5ãŒ0ã¨ãªã£ã¦ã—ã¾ã„ã¾ã™ã€‚
ãã®å ´åˆã§ã‚‚ã€az’ã®å€¤ã‹ã‚‰Î¸5ã¯æ±‚ã¾ã‚‹ã¨æ€ã„ã¾ã™ãŒã€
θ4,θ6ã¯ã©ã®ã‚ˆã†ã«å°Žå‡ºã™ã¹ããªã®ã§ã—ょã†ã‹ï¼Ÿ
ç¾åœ¨ã€é‹å‹•å¦è¨ˆç®—ã®çµæžœã‚’逆é‹å‹•å¦ã«å…¥ã‚Œã€
逆é‹å‹•å¦ã®è¨ˆç®—を確èªã—ã¦ãŠã‚Šã¾ã™ã€‚
(0,0,0,0,0,0)を入れ時ã®é‹å‹•å¦è¨ˆç®—çµæžœã‹ã‚‰
逆é‹å‹•å¦ã‚’使ã£ã¦ã®è¨ˆç®—を確èªã—ã¦ãŠã‚Šã¾ã™ã€‚
上記ã®éƒ¨åˆ†ã§ã¤ã¾ãšã„ã¦ãŠã‚Šã¾ã™ã€‚
対象方法ãªã©ã‚ã‚Œã°æ•™ãˆã¦é ‚ã‘ã¾ã›ã‚“ã§ã—ょã†ã‹ï¼Ÿ
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
kaneã•ã‚“ã€
コメントをã“ã¡ã‚‰ã«ç§»å‹•ã•ã›ã¦é ‚ãã¾ã—ãŸã€‚
ã•ã¦ã€ï¼¯ï¼¤ï¼¥æœ¬ã‚’å¾¡è³¼å…¥é ‚ãã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
御質å•ã§ã™ãŒã€Î¸ï¼•ãŒï¼ã®å ´åˆã€Î¸ï¼”ã«é–¢ã—ã¦ã¯(6.97)å¼ã€Î¸ï¼–ã«é–¢ã—ã¦ã¯(6.103)å¼ã‹ã‚‰0ã¨ãªã‚Šã¾ã™ã€‚
御回ç”ã«ãªã£ãŸã§ã—ょã†ã‹ï¼Ÿ
ã§ã‚€
demu様
ã”回ç”ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ã¾ãŸã€è³ªå•ã™ã‚‹å ´æ‰€ãŒé©åˆ‡ã§ãªã‹ã£ãŸã‚ˆã†ã§ã€ç”³ã—訳ã”ã–ã„ã¾ã›ã‚“。
θ5=0ã®å ´åˆã€ax’,ay’ã¨ã‚‚ã«ï¼ã¨ãªã‚Šã€atan2(ay’,ax’)ãŒã‚¨ãƒ©ãƒ¼ã«ãªã£ã¦ã—ã¾ã†ã¨æ€ã„ã¾ã™ã€‚
θ5=0ã¨åˆ†ã‹ã£ã¦ã„れã°è‰¯ã„ã®ã§ã™ãŒã€ä¸Žãˆã‚‰ã‚ŒãŸå…ˆç«¯ä½ç½®ã¨ãƒãƒ¼ãƒ«ã€ãƒ”ッãƒã€ãƒ¨ãƒ¼ã‹ã‚‰
計算ã™ã‚‹å ´åˆã¯ã€”ax’,ay’ã¨ã‚‚ã«ï¼”ã§ã‚りaz’=1ã§ã‚れã°Î¸5=0ã¨ã—ã€
bx’ã‚„by’,bz’ã‹ã‚‰Î¸4,θ6を導出ã™ã‚Œã°ã‚ˆã„ã®ã§ã—ょã†ã‹ï¼Ÿ
θ4=20°ã€Î¸5=0°ã€Î¸6=40°ã®çŠ¶æ…‹ã‚’çŠ¶æ…‹Aã¨ã—ãŸã¨ãã€
状態Aã®å…ˆç«¯ä½ç½®ã¨ãƒãƒ¼ãƒ«ã€ãƒ”ッãƒã€ãƒ¨ãƒ¼ã‹ã‚‰å„θを求ã‚よã†ã¨ã™ã‚‹ã¨ã€
θ5=0ã ã¨Î¸4+θ6=60ã¨ã¾ã§ã—ã‹ç®—出ã§ããªã„よã†ã«æ€ãˆã¾ã™ã€‚
実際ã®ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ を制御ã™ã‚‹å ´åˆã€çŠ¶æ…‹Aã®å§¿å‹¢ã«ãªã£ãŸã¨ãã¯ã€
ã©ã®ã‚ˆã†ã«Î¸4ã€Î¸6を決ã‚ã¦ã„ã‚‹ã®ã§ã—ょã†ã‹ï¼Ÿ
(ç›´å‰ã®Î¸4ã€Î¸6角度pre_θ4ã€pre_θ6ã¨ã™ã‚‹ã¨ã€
 add = ((θ4+θ6)-(pre_θ4+pre_θ6))/2
 θ4=pre_θ4+addã€Î¸6=pre_θ6+add
ã®æ§˜ã«è€ƒãˆã‚‹ã®ã§ã—ょã†ã‹ï¼Ÿ
ç´°ã‹ã„内容ã§ç”³ã—訳ã”ã–ã„ã¾ã›ã‚“ãŒã€æ•™ãˆã¦é ‚ã‘ã¾ã™ã§ã—ょã†ã‹ã€‚
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
Kaneã•ã‚“ã€
ç´ æ™´ã‚‰ã—ã„御質å•ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
atan2(0,0)ã¯0ã«ãªã‚Šã¾ã™ã€‚
逆é‹å‹•å¦ã®è¨ˆç®—ãªã®ã§è§’度ãŒå…ˆã«ä¸Žãˆã‚‰ã‚Œã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。手先ä½ç½®ã¨ãã®å§¿å‹¢ï¼ˆï¼¯ï¼¤ï¼¥æœ¬ã§ã¯æœ‰é¡”ベクトル)ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
例ãˆã°ã€Î¸ï¼‘ã‹ã‚‰Î¸ï¼–ãŒï¼ã®ã¨ãã€ã¤ã¾ã‚ŠåŸºæº–姿勢を逆é‹å‹•å¦ã§è¨ˆç®—ã™ã‚‹å ´åˆã€ãƒªãƒ³ã‚¯é•·ã®é•·ã•ã«è¦‹åˆã£ãŸä½ç½®ã¨æœ‰é¡”ベクトルa=(0,0,1), b=(1,0,0)を代入ã—ã¦è¨ˆç®—ã™ã‚‹ã¨ã€Î¸ï¼‘ã‹ã‚‰Î¸ï¼–ãŒï¼ã¨ãªã£ã¦æ±‚ã‚られã¾ã™ã€‚
御指摘ã®ã¨ãŠã‚Šã€Î¸ï¼•ãŒï¼ã®å ´åˆã¯ã€åºƒç€¬å…ˆç”Ÿã®è‘—書ãƒãƒœãƒƒãƒˆå·¥å¦ã®ï¼°ï¼‘ï¼”ï¼ã€å›³8.2ã«ã‚るオイラー角を示ã™ï¼“自由度関節機構ã«ãªã‚Šã€Î¸ï¼”ã¨Î¸ï¼–ãŒåŒã˜è»¸ã®å›žè»¢ã¨ãªã‚‹ãŸã‚ã€è§£ãŒä¸€æ„ã«ãã¾ã‚Šã¾ã›ã‚“。
御回ç”ã«ãªã£ã¦ã„ã‚‹ã§ã—ょã†ã‹ã€‚
ã§ã‚€
åˆæ›¸ãè¾¼ã¿ã§ã™
質å•ãªã‚“ã§ã™ãŒã€ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ ã®å„関節ã«ç”Ÿã˜ã‚‹ãƒˆãƒ«ã‚¯ã‚’å–å¾—ã—ãŸã„ã®ã§ã™ãŒã€ã‚µãƒ³ãƒ—ル13ã«ã‚µãƒ³ãƒ—ル11ã®ãƒ—ãƒã‚°ãƒ©ãƒ を組ã¿è¾¼ã‚“ã§ã‚ã’れã°ã„ã„ã‚“ã§ã—ょã†ã‹ï¼Ÿåˆå¿ƒè€…ãªã®ã§ãƒã‚«ãªè³ªå•ã‹ã‚‚ã—れã¾ã›ã‚“ãŒã€ã‚ˆã‚ã—ã‘ã‚Œã°æ•™ãˆã¦ãã ã•ã„
ashinã•ã‚“ã€
コメントã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚ãã†ã§ã™ã€‚ODE本ã§ã¯Pï¼’ï¼’ï¼–ã«é–¢ç¯€ã«ã‹ã‹ã‚‹ãƒˆãƒ«ã‚¯ã‚’å–å¾—ã™ã‚‹ dJointSetFeedback()ã¨dJointGetFeedback()ã®èª¬æ˜ŽãŒã‚りã¾ã™ã€‚ODEã§ã¯ãƒ‘フォーマンスをå‘上ã•ã›ã‚‹ãŸã‚ã«ã€ãƒˆãƒ«ã‚¯ã‚’å–å¾—ã—ãŸã„t関節をdJointSetFeedback()ã§æŒ‡å®šã—ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ãƒˆãƒ«ã‚¯ã®æƒ…å ±ãŒå¿…è¦ãªã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãŒã™ã¹ã¦ã§ã¯ã‚りã¾ã›ã‚“ã‹ã‚‰ã€‚
ã§ã‚€
ã”è¿”ç”ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸã€‚
ãªã‚“ã¨ã‹è‡ªåˆ†ã®ä¸ã§è§£æ±ºã®ã‚ã©ãŒç«‹ã¡ã¾ã—ãŸã€‚
ã¯ã˜ã‚ã¾ã—ã¦
ä»–ã®æ–¹ã®è³ªå•ã«ä¾¿ä¹—ã•ã›ã¦ã„ãŸã ãよã†ã§,æç¸®ã§ã™ãŒã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™.
関節ã«ç”Ÿã˜ã‚‹ãƒˆãƒ«ã‚¯ã®å‘ãã«é–¢ã—ã¦ã§ã™.
ODE本 P227 ã®ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ 9.1内ã§ä¸‹è¨˜ã®ã‚ˆã†ã«èª¬æ˜ŽãŒã‚りã¾ã™ãŒ,
tx[i] = fb->t1[0]; //トルクx軸ã¾ã‚り
ã“ã®x軸ã¨ã¯ã©ã®åº§æ¨™ç³»ã§è¦‹ãŸx軸ãªã®ã§ã—ょã†ã‹ï¼Ÿ
ã¾ãŸ,ã“ã¡ã‚‰ã®è³ªå•ãŒæœ¬å‘½ãªã®ã§ã™ãŒ,
関節をヒンジã«ã—ãŸå ´åˆã«”回転軸ã¾ã‚り”ã«ç”Ÿã˜ã‚‹ãƒˆãƒ«ã‚¯ã¯ã©ã®ã‚ˆã†ã«è¨ˆæ¸¬ã—ãŸã‚‰ã‚ˆã‚ã—ã„ã®ã§ã—ょã†ã‹ï¼Ÿ
よã‚ã—ããŠé¡˜ã„ã„ãŸã—ã¾ã™
ã¨ã‚‚ã•ã‚“ã€
ã¯ã˜ã‚ã¾ã—ã¦ã€‚
絶対座標系ã§ã™ã€‚
ODE本227ページã®ãƒ—ãƒã‚°ãƒ©ãƒ 9.1ã®ï¼–1行目dJointSetFeedback()ã®ï¼‘番目ã®å¼•数をヒンジジョイントã«è¨å®šã™ã‚Œã°OKã§ã™ã€‚トルクã®å–å¾—ã¯ï¼’ï¼ã‹ã‚‰ï¼’2行目ã¨ãªã‚Šã¾ã™ã€‚
ã§ã‚€
ã”回ç”ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™.
å…ˆã®è³ªå•ãŒæŠ½è±¡çš„éŽãŽãŸãŸã‚回ç”も基本的ãªã“ã¨ã«ãªã£ã¦ã—ã¾ã£ã¦ã„るよã†ãªã®ã§,ã‚‚ã†å°‘ã—詳ã—ããŠèžãã—ãŸã„ã®ã§ã™ãŒã‚ˆã‚ã—ã„ã§ã—ょã†ã‹?
大ããªç›®çš„ã¨ã—ã¦ã¯,3自由度ãƒãƒœãƒƒãƒˆã‚¢ãƒ¼ãƒ ãŒæŒ‡å®šã•ã‚ŒãŸæ‰‹å…ˆä½ç½®ã‚’锿ˆã—,ãã®å§¿å‹¢ã‚’ç¶æŒã—ã¦ã„ã‚‹ã¨ãã«å„関節ã«é…ç½®ã—ã¦ã‚るモータ(= ヒンジジョイント)ãŒã©ã‚Œã ã‘ã®ãƒˆãƒ«ã‚¯ã‚’出力ã—ã¦ã„ã‚‹ã‹ã‚’知りãŸã„ã§ã™.
>dJointSetFeedback()ã®ï¼‘番目ã®å¼•数をヒンジジョイントã«è¨å®šã™ã‚Œã°OKã§ã™ã€‚
>トルクã®å–å¾—ã¯ï¼’ï¼ã‹ã‚‰ï¼’2行目ã¨ãªã‚Šã¾ã™ã€‚
ä¸Šè¨˜ã®æ–¹æ³•ã§ã™ã¨,回転軸ã¨ç›´äº¤ã™ã‚‹è»¸ã¾ã‚りã®ãƒˆãƒ«ã‚¯ã‚‚å«ã¾ã‚Œã¦ã—ã¾ã„ã¾ã™ã‚ˆã?
実際ã«ã¯,出力ã§ããªã„å‘ãã®ãƒˆãƒ«ã‚¯ã‚‚計測ã—ã¦ã—ã¾ã£ã¦ã„るよã†ã«æ€ã‚れã¾ã™.
ã©ã†ã™ã‚Œã°,1自由度ヒンジジョイントã®å›žè»¢è»¸ã¾ã‚りã«ç”Ÿã˜ã¦ã„るトルクã ã‘を計測ã™ã‚‹ã“ã¨ãŒã§ãã‚‹ã§ã—ょã†ã‹ï¼Ÿ
質å•ã•ã›ã¦ã„ãŸã ã„ãŸå†…容ãŒç†è§£ã§ããªã„,ãªã©ã‚りã¾ã—ãŸã‚‰ã‚³ãƒ¡ãƒ³ãƒˆé ‚ã‘れã°ã¨æ€ã„ã¾ã™.
ãŠæ‰‹æ•°ã§ãªã‘れã°,直接メールã§ã‚„りã¨ã‚Šã§ããŸã‚‰ã†ã‚Œã—ã„ã®ã§ã™ãŒ…
よã‚ã—ããŠé¡˜ã„ã„ãŸã—ã¾ã™.
ã¨ã‚‚ã•ん,
dBodyVectorFromWorld()ã§çµ¶å¯¾åº§æ¨™ç³»ã‹ã‚‰ç›¸å¯¾åº§æ¨™ç³»ã«å¤‰æ›ã—ã¦ã¯ã„ã‹ãŒã§ã—ょã†ã‹ï¼Ÿ
本サイトã®ODE講座3ï¼ï¼ˆhttp://demura.net/9ode/3153.html)ã«é–¢é€£è¨˜äº‹ãŒã‚りã¾ã™ï¼Ž
ã§ã‚€
ã“ã‚“ã«ã¡ã¯ï¼ŽHP,ODE本,å‚考ã«ã•ã›ã¦é ‚ã„ã¦ãŠã‚Šã¾ã™ï¼Ž
ç§ã¯ï¼ŒãƒãƒœãƒƒãƒˆãŒå¹³åœ°ï¼ŒéšŽæ®µã‚’æ©è¡Œã™ã‚‹ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚¿ã‚’作æˆã—ã¦ã„ã¾ã™ï¼Ž
ç¾åœ¨ï¼Œãƒãƒœãƒƒãƒˆï¼ŒéšŽæ®µãƒœãƒ‡ã‚£ã®ä½œæˆã‚’完了ã—,階段上をæ©ã‹ã›ã‚ˆã†ã¨ã—ã¦ã„ã‚‹ã®ã§ã™ãŒï¼Œ
ãƒãƒœãƒƒãƒˆè¶³ãŒéšŽæ®µã«æŽ¥è§¦ã—ãŸçž¬é–“ã«exeファイルãŒåœæ¢ã™ã‚‹å•題ãŒç™ºç”Ÿã—ã¦ã„ã¾ã™ï¼Ž
åŽŸå› ãŒã‚ã‹ã‚‰ãšï¼Œè¡çªè¨å®šã®ãƒ‘ラメータを調整ã™ã‚‹ã¨ï¼Œæ‘©æ“¦è¨å®šã‚’off(contact[i].surface.mode ã‹ã‚‰ dContactApprox1を消ã—ãŸ)å ´åˆï¼ŒæŽ¥è§¦ã—ã¦ã‚‚åœæ¢ã—ã¾ã›ã‚“ã§ã—ãŸï¼Ž
ã—ã‹ã—,摩擦をè¨å®šã—ãŸä¸Šã§æ©è¡Œã•ã›ãŸã„ã¨è€ƒãˆã¦ã¾ã™ï¼Ž
exeファイルãŒåœæ¢ã—ãªã„方法ã¯ã‚りã¾ã™ã§ã—ょã†ã‹ï¼Ž
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ï¼Ž
ã•ãŒã‚„ã¾ã•ã‚“ã€
ç´„ï¼“ã‹æœˆã¶ã‚Šã®ã”質å•ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
エラーメッセージã¯ä½•ã‚‚ãªã„ã§ã—ょã†ã‹ï¼Ÿã€€
ãªãŠã€
dContactApprox1ã¯ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ã«ã‚ˆã‚‹ã¨æ¬¡ã®ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ã€‚
Use the friction pyramid approximation for friction direction 1. If this is not specified then the constant-force-limit approximation is used (and mu is a force limit).
dContactApprox1を消ã™ã¨constant-force-limitã¨ãªã‚Šã€ã‚¯ãƒ¼ãƒãƒ³ã®æ‘©æ“¦æ³•則ã«å¾“ã„ã¾ã›ã‚“。ã“ã®å ´åˆã¯è³ªé‡ã«é–¢ä¿‚ãªãã€muãŒä»¥ä¸Šã®åŠ›ãŒåŠ ã‚ã‚‹ã¨ã™ã¹ã‚Šå‡ºã—ã¾ã™ã€‚ã¤ã¾ã‚Šã€ç‰©ç†çš„ã«ã¯ä¸æ£ç¢ºãªãƒ¢ãƒ‡ãƒ«ã§ã™ãŒæ‘©æ“¦ã¯è¨å®šã•れã¦ã„ã‚‹ã“ã¨ã«ã¯ãªã‚Šã¾ã™ã€‚
ã§ã‚€
早々ã«å›žç”ã—ã¦ã„ãŸã ã,ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼Ž
昨日ã‹ã‚‰è©¦è¡ŒéŒ¯èª¤ã—ã¦ï¼Œã¨ã‚Šã‚ãˆãšexeファイルを起動ã™ã‚‹ã“ã¨ãŒã§ãã¾ã—ãŸï¼Ž
エラーメッセージã§ã™ãŒï¼Œ
exeファイル起動ä¸ã«ã€Œå‹•ä½œã‚’åœæ¢ã—ã¾ã—ãŸã€ã¨æ›¸ã‹ã‚ŒãŸã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒå‡ºã¦ãã¦ï¼Œ
ãã“ã«ã€Œå•題ã®ã‚¤ãƒ™ãƒ³ãƒˆå:APPCRASHã€ã¨æ›¸ã‹ã‚Œã¦ã„ã¾ã™ï¼Ž
ãƒãƒƒãƒˆä¸Šã«è§£æ±ºæ³•ãŒã‚るよã†ãªã®ã§ï¼ŒODE上ã§ä¿®æ£ä¸å¯ãªå ´åˆï¼Œè¡ŒãŠã†ã¨æ€ã„ã¾ã™ï¼Ž
ã‚ã¨ï¼Œç”³ã—訳ãªã„ã®ã§ã™ãŒï¼Œè³ªå•内容ã«é–“é•ã„ã‚りã¾ã—ãŸï¼Ž
dContactApprox1を消ã™ã®ã§ã¯ãªãã¦ï¼Œmuã®è¨å®šã‚’コメントアウトã—ãŸæ™‚,ã†ã¾ãèµ·å‹•ã—ã¾ã—ãŸï¼Ž
å•題ã®åŽŸå› ã¯muã®ã‚ˆã†ã§ã™ï¼Žmuã«å€¤ã‚’入力ã—ãŸã‚‰ä¸Šè¨˜ã®å•題ãŒç™ºç”Ÿã—ã¾ã™ï¼Ž
何を変更ã—ã¦exeファイルãŒèµ·å‹•ã—ãŸã‹ã§ã™ãŒï¼Œ
接触点数(ç¾çжN=10)を減らã™ã‹ï¼Œã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚¹ãƒ†ãƒƒãƒ—(ç¾çж0.001)ã‚’ã•らã«ç´°ã‹ãã™ã‚‹ã¨ï¼Œ
muã«å€¤ã‚’入力ã—ã¦ã‚‚exeファイルãŒèµ·å‹•ã—ã¾ã—ãŸï¼Ž
対応ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸï¼Ž
ã“ã‚“ã«ã¡ã¯ã€ã„ã¤ã‚‚å‚考ã«ã•ã›ã¦é ‚ã„ã¦ã„ã¾ã™ã€‚ç§ã¯ODEを利用ã—ã¦ã‚²ãƒ¼ãƒ を作æˆã—ã¦ã„ã¾ã™ã€‚今回ã©ã†ã—ã¦ã‚‚分ã‹ã‚‰ãªã„å•題ãŒã‚ã£ãŸã®ã§æŠ•稿ã•ã›ã¦ã‚‚らã„ã¾ã—ãŸã€‚
TriMeshã«ã¤ã„ã¦æ—©é€Ÿè³ªå•ãªã®ã§ã™ãŒã€ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã§ä½œæˆã—ãŸé ‚点データãªã©ã‚’dGeomTriMeshDataBuildDouble関数ã®å¼•æ•°ã«æ¸¡ã—ã¦ã‚„ã‚‹ã¨ã€ã†ã¾ã当ãŸã‚Šåˆ¤å®šã‚’行ã£ã¦ãれるã®ã§ã™ãŒã€å¤‰æ•°ã‚’C++言語ã§ãƒ¡ãƒ³ãƒå¤‰æ•°åŒ–ã—ã€ãれをdGeomTriMeshDataBuildDoubleé–¢æ•°ã«æ¸¡ã—ã¦ã‚„ã‚‹ã¨å½“ãŸã‚Šåˆ¤å®šã®dCollide関数ã§ã‚¨ãƒ©ãƒ¼ãŒã§ã¦ã—ã¾ã„ã¾ã™ã€‚
dGeomTriMeshDataBuildDouble仕様ã®é–¢ä¿‚ã§ãƒ¡ãƒ³ãƒå¤‰æ•°ã‚’å¼•æ•°ã«æ¸¡ã—ã¦ã‚„ã‚‹ã“ã¨ã¯ä¸å¯èƒ½ãªã®ã§ã—ょã†ã‹ï¼Ÿ
C++ã®å•題ã§è³ªå•é•ã„ã‹ã‚‚ã—れã¾ã›ã‚“ãŒã€ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
ã¯ã˜ã‚ã¾ã—ã¦ã€‚
ODEã®å†…éƒ¨æ§‹é€ ã‚’çŸ¥ã‚ŠãŸã„ã®ã§ã™ãŒã€ODE内ã§ã¯ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’行ã†éš›ã«ï¼ˆã‚¹ãƒ†ãƒƒãƒ—ãŒé€²ã‚“ã§ã„ã‚‹é–“ã«ï¼‰ã©ã®ã‚ˆã†ãªè¨ˆç®—ãŒè¡Œã‚れã¦ã„ã‚‹ã®ã§ã—ょã†ã‹ï¼Ÿ
ãŠæ™‚é–“ã‚りã¾ã—ãŸã‚‰ã‚ˆã‚ã—ããŠé¡˜ã„ã„ãŸã—ã¾ã™
物体数(çƒï¼‰ã‚’10000個作æˆã—ã€ï¾Œï¾Ÿï¾›ï½¸ï¾žï¾—ムを実行(もã—ãã¯ç‰©ä½“åŒå£«ãŒè¡çªï¼‰ã—ãŸçž¬é–“ã«
以下ã®ã‚ˆã†ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã™ã€‚
「*****.exe ã® 0x101605a7 (ode_doubled.dll) ã§ãƒãƒ³ãƒ‰ãƒ«ã•れã¦ã„ãªã„例外ãŒç™ºç”Ÿã—ã¾ã—ãŸ: 0xC00000FD: Stack overflowã€
スタックã®ã‚µã‚¤ã‚ºã®è¨å®šã‚’0→1000000000 ã«è¨å®šã™ã‚‹ã“ã¨ã§ã€ç‰©ä½“æ•°1000個ãらã„ã¾ã§ã¯ã€ã‚¨ã‚¢ãƒ¼ãŒå‡ºãªããªã‚Šã¾ã—ãŸãŒã€ã“れ以上ã€ç‰©ä½“æ•°ã‚’å¢—ã‚„ã™æ–¹æ³•ã¯ã‚ã‚‹ã§ã—ょã†ã‹ï¼Ÿ
ã“ã‚“ã«ã¡ã¯ã€å°‘ã—æ•™ãˆã¦ã‚‚らã„ãŸã„ã“ã¨ãŒã‚りã¾ã™ã€‚
今ç§ã¯OpenGLã¨ODEã®æ˜Žç¢ºãªé•ã„ã¯ãªã‚“ã§ã—ょã†ï¼Ÿï¼Ÿ
ãªã‚‹ã¹ã詳ã—ãæ•™ãˆã¦ãれるã¨åŠ©ã‹ã‚Šã¾ã™ã€‚
ã„ã¤ã‚‚ãŠä¸–話ã«ãªã£ã¦ã„ã¾ã™ã€melã§ã™ã€‚
ã‚らãŸã‚ã¾ã—ã¦ã€è³ªå•ãŒã‚りã¾ã™ã€‚
ä»–ã®æ–¹ã®è³ªå•ã§ã‚‚ã‚りã¾ã—ãŸãŒã€è‡ªåˆ†ã‚‚ODEã®çŠ¶æ…‹ã®ä¿å˜ã‚’ã—ã¦ã€ç‰¹å®šã®çŠ¶æ…‹ã«ãªã£ãŸã¨ãã«ã€ãã®ä¿å˜ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰å†ã‚¹ã‚¿ãƒ¼ãƒˆã—ãŸã„ã¨æ€ã£ã¦ãƒ—ãƒã‚°ãƒ©ãƒ を作ã£ã¦ã„ã¾ã™ã€‚
ジョイントã¯ã‚りã¾ã™ãŒä½ç½®æƒ…å ±ã ã‘分ã‹ã‚Œã°å•題ãªã„ã®ã§ã€ç‰©ä½“ã®ä½ç½®ã€ç‰©ä½“ã®å‘ãã€é–¢ç¯€ã®ä½ç½®ã®ï¼“ã¤ã‚’ä¿å˜ã—ã¦èªã¿è¾¼ã‚€ã“ã¨ã§ã€ä¿å˜ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰å†ã‚¹ã‚¿ãƒ¼ãƒˆã•ã›ã‚‹ã“ã¨ãŒã§ãã‚‹ã®ã§ã¯ãªã„ã‹ã¨è€ƒãˆã¦ã„ã¾ã™ã€‚
自分ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã¯ç‰©ä½“ãŒå¤šã„ãŸã‚ã€ä¸‹ã®ã‚ˆã†ãªãƒ—ãƒã‚°ãƒ©ãƒ ã§ä¸€æ°—ã«æƒ…å ±ã‚’ä¿å˜ã—よã†ã¨ã—ãŸã®ã§ã™ãŒã€Žå®šæ•°å¼ãŒå¿…è¦ã§ã™ã€ã€Žã‚µã‚¤ã‚ºãŒ 0 ã®é…列を割り当ã¦ã¾ãŸã¯å®£è¨€ã—よã†ã¨ã—ã¾ã—ãŸã€ã€Ž’const dReal *’ ã‹ã‚‰ ‘const dReal *[]‘ ã«å¤‰æ›ã§ãã¾ã›ã‚“ã€ãªã©ã®ã‚¨ãƒ©ãƒ¼ãŒå‡ºã¦ã—ã¾ã„ã¾ã™ã€‚ã©ã®ã‚ˆã†ã«æ›¸ã‘ã°ã‚¨ãƒ©ãƒ¼ã‚’出ã•ãšã«ã™ã‚€ã®ã§ã—ょã†ã‹ï¼Ÿ
for(i=0; i<=26; i++) {
const dReal *bp[i] = dBodyGetPosition(body[i]);
}
ã“ã‚“ã«ã¡ã¯
基本的ãªè³ªå•ã§ç”³ã—訳ãªã„ã®ã§ã™ãŒã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
ã¾ãŸã€éŽåŽ»ã«åŒã˜ã‚ˆã†ãªè³ªå•ãŒã‚ã£ãŸã‚‰ã™ã¿ã¾ã›ã‚“。
 作æˆã—ãŸãƒ—ãƒã‚°ãƒ©ãƒ をビルドã™ã‚‹ã¨ä»¥ä¸‹ã®ã‚ˆã†ãªã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚
「fatal error C1083: include ファイルを開ã‘ã¾ã›ã‚“。’texturepath.h’: No such file or directoryã€
 ã¾ãŸã€ä»–ã®ãƒ‘ソコンã§ä½œæˆã—ãŸãƒ—ãƒã‚°ãƒ©ãƒ ã¯å®Ÿè¡Œã§ãã‚‹ã®ã§ã™ãŒã€å††æŸ±ã®ç«¯é¢ãŒè¨å®šã—ãŸè‰²ã«ã‹ã‹ã‚らãšé»’ããªã£ã¦ã—ã¾ã„ã¾ã™ã€‚
 他ã®ãƒ‘ソコンã§ä½œæˆã—ãŸãƒ—ãƒã‚°ãƒ©ãƒ ã§ã‚‚ã€ã“ã®ãƒ‘ソコンã§ç·¨é›†ã™ã‚‹ã¨ä¸Šè¨˜ã®ã‚¨ãƒ©ãƒ¼ãŒå‡ºã¦å®Ÿè¡Œã§ããªããªã£ã¦ã—ã¾ã„ã¾ã™ã€‚
 最åˆã®è¨å®šã§ä½•ã‹ãŒé–“é•ã£ã¦ã„ã‚‹ã®ã§ã—ょã†ã‹ï¼Ÿæ•™ãˆã¦ãã ã•ã„。
 よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
ã“ã‚“ã«ã¡ã¯ã€ã“ã¡ã‚‰ã®ã‚µã‚¤ãƒˆã¨æœ¬ã‚’見ãªãŒã‚‰ODEã®å‹‰å¼·ã‚’ã—ã¦ã„ã‚‹ã®ã§ã™ãŒã€ã‚¢ãƒ¼ãƒ ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§x軸ã«ãƒªãƒ³ã‚¯ã‚’沿ã‚ã›ã‚‹ã«ã¯ã©ã†è¨å®šã™ã‚Œã°ã„ã„ã®ã§ã—ょã†ã‹ï¼Ÿ
ã„ã‚ã„ã‚ã‚„ã£ã¦ã¿ãŸã®ã§ã™ãŒé‡å¿ƒãªã©å¤‰ãˆã¦ã‚‚リンクãŒç¸¦æ–¹å‘ã®ã¾ã¾ç§»å‹•ã—ã¦ã„ã‚‹ã ã‘ã§ã¤ãªãŒã£ã¦ã„ãªã‹ã£ãŸã‚Šã¨ã„ã†é¢¨ã«ãªã£ã¦ã—ã¾ã„ã¾ã™ã€‚
ã¾ãŸåˆæœŸå§¿å‹¢ã‚’変ãˆã‚‹æ–¹æ³•ã‚‚ã‚„ã£ã¦ã¿ãŸã®ã§ã™ãŒã©ã†ã‚‚姿勢も変ã‚りã¾ã›ã‚“・・・ã“ã®å ´åˆã¯ã©ã®ç‰©ä½“ã«å§¿å‹¢è¨å®šã®APIã‚’ã„れれã°ã„ã„ã®ã§ã—ょã†ã‹ï¼Ÿ
åˆæ©çš„ãªè³ªå•ã§ã™ãŒã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
ã“ã‚“ã«ã¡ã¯ï¼Œä»¥å‰ã«ãŠä¸–話ã«ãªã£ãŸAHã§ã™ï¼Ž
早速質å•ã§ã™ãŒï¼Œ
ビルドã¯å•題ãªãã„ã‘ãŸã®ã§ã™ãŒï¼Œãã®å¾Œ
ODE INTERNAL ERROR 2
Bad argument(s) in dBodyGetRotation()
ã®ã‚¨ãƒ©ãƒ¼ãŒè§£æ±ºã§ãã¾ã›ã‚“.
何ã‹ã‚¢ãƒ‰ãƒã‚¤ã‚¹ãŒã‚れã°ãŠé¡˜ã„ã„ãŸã—ã¾ã™ï¼Ž
è¦æœ›å‹Ÿé›†9ã§è³ªå•ã•ã›ã¦ã„ãŸã ã„ãŸæ‘©æ“¦ãƒ¢ãƒ‡ãƒ«ã®å•題ã§ã™ãŒï¼Œtrqã‚„omegaã®åˆæœŸåŒ–ã‚’ã‚ã™ã‚Œã¦ã„ãŸã®ãŒåŽŸå› ã§ã—ãŸã€‚åˆæœŸåŒ–を行ã£ãŸã¨ã“ã‚,ãã¡ã‚“ã¨æ‘©æ“¦ãŒåƒã„ã¦ãれã¾ã—ãŸã€‚
返事ãŒãŠãれã¦ç”³ã—訳ã”ã–ã„ã¾ã›ã‚“。質å•ã«ãŠç”ãˆã„ãŸã ãã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸã€‚
ã„ã¤ã‚‚ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ã¾ãŸè³ªå•ãŒã‚ã‚‹ã®ã§ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
剿–¹ã«è·³èºã™ã‚‹2脚ãƒãƒœãƒƒãƒˆã‚’作りã€ãã®è·³èºã—ãŸè·é›¢ã¨é«˜ã•を測りã€ãƒ‡ãƒ¼ã‚¿ã‚’å–りãŸã„ã®ã§ã™ãŒã€ã©ã†ã™ã‚Œã°ã„ã„ã®ã§ã—ょã†ã‹ï¼Ÿ
ä½ç½®ã‚»ãƒ³ã‚µã‚’ボディã«å®Ÿè£…ã—ã¦è·³èºå‰ã®ä½ç½®ã¨è·³èºå¾Œã®ä½ç½®ã‚’知るã“ã¨ãŒã§ãるよã†ãªã‚‚ã®ã€ã‚‚ã—ãã¯ã€ã‚¹ãƒ†ãƒƒãƒ—ã”ã¨ã«ä½ç½®ã‚’å–å¾—ã§ãるよã†ãªã‚‚ã®ã‚’イメージã—ã¦ã„ã‚‹ã®ã§ã™ãŒå¯èƒ½ã§ã—ょã†ã‹ï¼Ÿ
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
以å‰ã¯ã“ã¡ã‚‰ã®ãƒ—ãƒã‚°ãƒ©ãƒ ミスã§è³ªå•ã‚’ã—ã¦ã—ã¾ã„ã”迷惑をãŠã‹ã‘ã—ã¾ã—ãŸï¼Žã¾ãŸï¼Œè³ªå•ãŒã‚ã‚‹ã®ã§ã™ãŒã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ï¼Ž
物体ã®å›žè»¢è§’度ã«ã¤ã„ã¦ã§ã™ãŒï¼ŒODE本ã§ã¯å›žè»¢è¡Œåˆ—ã‹ã‚‰pitch角を求ã‚ã‚‹éš›ã«
pitch = atan2(-r31, sqrt(r32*r32+r33*r33));
ã§æ±‚ã‚ã¦ã„ã¾ã™ãŒï¼Œcosã®å€¤ãŒ2ä¹—ã«ã‚ˆã‚Šç¬¦å·æƒ…å ±ãŒãªããªã£ã¦ã—ã¾ã†ãŸã‚atan2ã®å€¤ãŒ-pi/2~pi/2ã®ç¯„囲ã«ãªã£ã¦ã—ã¾ã„å›°ã£ã¦ã„ã¾ã™ï¼Ž
回転行列ã‹ã‚‰-pi~piã®ç¯„å›²ã§æ±‚ã‚る方法ã¯ã‚りã¾ã™ã‹ï¼Ÿ
世界軸周りã§ã®2物体間ã®è§’度差を求ã‚ãŸã„ã®ã§ã™ãŒã»ã‹ã«æ–¹æ³•ãŒã‚れã°ã”教授願ã„ã¾ã™ï¼Ž
ã‚らãŸã‚ã¾ã—ã¦ã€è³ªå•ãŒã‚りã¾ã™ã€‚
ヒンジジョイントを用ã„ã¦ï¼’脚ãƒãƒœãƒƒãƒˆã‚’製作ã—ã¦ã„ã¾ã™ã€‚
ヒンジジョイントã®åŠ›åˆ¶å¾¡ãªã‚“ã§ã™ãŒã€è†é–¢ç¯€ã«åŠ›ã‚’åŠ ãˆã¦è†ã‚’曲ã’ã¦ã„ãã€åŠ›ã‚’ä¸€æ°—ã«è§£æ”¾ã™ã‚‹ã“ã¨ã§å‰æ–¹ã«è·³èºã•ã›ãŸã„ã®ã§ã™ãŒã€ã©ã†ã—ãŸã‚‰ã„ã„ã§ã—ょã†ã‹ï¼Ÿ
ã„ã¤ã‚‚ãŠä¸–話ã«ãªã£ã¦ã„ã¾ã™ãŒã€ä»Šå›žã‚‚よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
ã“ã‚“ã«ã¡ã¯ã€ä»¥å‰ãŠä¸–話ã«ãªã‚Šã¾ã—ãŸãƒãƒƒãƒ—ã¨ç”³ã—ã¾ã™ã€‚
早速質å•ãªã®ã§ã™ãŒã€
ODEã®çŠ¶æ…‹ã®ä¿å˜ã‚’ã—ã¦ã€ä¸€æ—¦ãƒ—ãƒã‚°ãƒ©ãƒ を終了ã—ãŸå¾Œã§ã‚‚ã€ãã®ä¿å˜ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰å†ã‚¹ã‚¿ãƒ¼ãƒˆã—ãŸã„ã¨æ€ã£ã¦ãƒ—ãƒã‚°ãƒ©ãƒ を作ã£ã¦ã„ã¾ã™ã€‚
ジョイントãŒç„¡ã„状態ã§ã‚れã°ã€ä½ç½®ã€ç§»å‹•速度ã€å›žè»¢é€Ÿåº¦ã€å‘ãã‚’ä¿å˜ã—ã¦èªã¿è¾¼ã‚€ã“ã¨ã§ã€ä¿å˜ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰å†ã‚¹ã‚¿ãƒ¼ãƒˆã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã—ãŸã€‚
ジョイントãŒã‚ã‚‹ã¨ãã€ä½ç½®ã€è§’度ã€ä¸å¿ƒä½ç½®ã€é€Ÿåº¦ã‚’ä¿å˜ã—ã€èªã¿è¾¼ã‚“ã§ã„ã¾ã™ã€‚ã—ã‹ã—ã€é€Ÿåº¦ã ã‘ã¯dJointSetHingeParamã§ã‚„ã£ã¦ã„ã‚‹ã®ã§å®Œå…¨ãªå†ç¾ã«ãªã£ã¦ã„ãªã„ã›ã„ã‹ã€å®Œå…¨ã«åŒã˜çŠ¶æ…‹ã«ã¯ãªã‚‰ãªã„よã†ãªã®ã§ã™ã€‚
ã“れã¯ã©ã†ã«ã‹ãªã‚‹å•題ãªã®ã§ã—ょã†ã‹ã€‚
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
masaã•ん,
関節を速度制御ã‚ã‚‹ã„ã¯åŠ›åˆ¶å¾¡ã™ã‚Œã°è‰¯ã„ã¨æ€ã„ã¾ã™ï¼ŽODE本ã«ãã®ãƒ—ãƒã‚°ãƒ©ãƒ ãŒã‚りã¾ã™ã®ã§å‚ç…§ã—ã¦ãã ã•ã„.
ã§ã‚€
ãƒãƒƒãƒ—ã•ã‚“ã€
返事ãŒé…ããªã‚Šã™ã¿ã¾ã›ã‚“。コメントãŒå¤šã‹ã£ãŸã®ã§è¦‹è½ã¨ã—ã¦ã„ã¾ã—ãŸã€‚
ã•ã¦ã€ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã§çµåˆã•れã¦ã„るボディã«ã‹ã‹ã£ã¦ã„るトルクã¨åŠ›ã‚‚ä¿å˜ã—ã¦ã€ãれをボディã«ã‹ã‘ã‚‹ã®ã§ã¯ã§ãã¾ã›ã‚“ã‹ï¼Ÿ
çµæžœã‚’æ•™ãˆã¦ãã ã•ã„。
ã§ã‚€
返信ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
関節を力制御ã—ã¦ã¿ã‚ˆã†ã¨æ€ã„ã¾ã™ã€‚
ãã“ã§ã€ODE本ã®33ページã®ãƒ’ンジジョイントã®åŠ›åˆ¶å¾¡ã‚’å‚考ã«ã—ã¦ã„ã‚‹ã®ã§ã™ãŒã€ã“れã¯P制御ã«ã‚ˆã‚‹åŠ›åˆ¶å¾¡ã§ã€ç§ã¯PID制御ã§åŠ›åˆ¶å¾¡ã—よã†ã¨è€ƒãˆã¦ã„ã¾ã™ã€‚
ãã“ã§ã€ãƒ—ãƒã‚°ãƒ©ãƒ 上ã§ã¯ã©ã®ã‚ˆã†ã«è¨˜è¿°ã™ã‚Œã°ã„ã„ã®ã§ã—ょã†ã‹ï¼Ÿ
PID制御ã®å¾®åˆ†ã‚„ç©åˆ†ã‚’ã©ã®ã‚ˆã†ã«è¨˜è¿°ã™ã‚Œã°ã‚ˆã„ã®ã‹æ•™ãˆã¦ã„ãŸã ã‘ãŸã‚‰ã¨æ€ã„ã¾ã™ã€‚
よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
masaã•ん,
PID制御ã®å¼ã¯ã”å˜ã˜ã ã¨æ€ã„ã¾ã™ã®ã§ï¼Œãれをプãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã«ç›´ã™ã«ã¯æ•°å€¤è¨ˆç®—法を勉強ã™ã‚Œã°ã‚ˆã„ã‹ã¨æ€ã„ã¾ã™ï¼Ž
æ•°å€¤è¨ˆç®—ã®æ•™ç§‘書ã¯ã„ã‚ã„ã‚ã‚ã‚‹ã®ã§å›³æ›¸é¤¨ã‚„æ›¸åº—ã§æ°—ã«å…¥ã£ãŸã‚‚ã®ã‚’見ã¤ã‘ã¦ãã ã•ã„.
ã§ã‚€
返信ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ãŒã‚“ã°ã£ã¦ã¿ã¾ã™ã€‚
masaã•ん,
熱心ã«ã”質å•ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼Ž
å¯èƒ½ã§ã™ï¼Ž
è·³èºã ã‘ãªã‚‰ä½ç½®ã‚»ãƒ³ã‚µã‚’作らãªãã¦ã‚‚,胴体ã«ç›¸å½“ã™ã‚‹ãƒœãƒ‡ã‚£ã®ä½ç½®ã‚’å„ステップ毎ã«dBodyGetPosition()ã§èª¿ã¹ã‚Œã°ã‚ˆã„ã¨æ€ã„ã¾ã™ï¼Žä½¿ã„æ–¹ã¯ODE本もã—ãã¯ãƒ‡ãƒ¢ãƒ—ãƒã‚°ãƒ©ãƒ ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’èªã‚“ã§èª¿ã¹ã¦ãã ã•ã„.
ã§ã‚€
melã•ん,
解決ã—ã¦è‰¯ã‹ã£ãŸã§ã™ã.ã¾ãŸï¼Œã”ä¸å¯§ã«ã”返事ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼Ž
今後ã¨ã‚‚よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ï¼Ž
ã§ã‚€
ã™ã¿ã¾ã›ã‚“ã§ã—ãŸï¼Ž
å•題ãŒè§£æ±ºã—ã¾ã—ãŸï¼Ž
ã»ã‚“ã¨ï¼Œåˆæ©çš„ãªãƒŸã‚¹ã§ã—ãŸï¼Ž
å·®ã—æ”¯ãˆãªã‘れã°ãƒŸã‚¹ã‚’æ•™ãˆã¦ãã ã•ã„.
ミスãŒèµ·ãã‚‹ã®ã¯ã„ã‚ã„ã‚åŽŸå› ãŒã‚ã‚‹ã®ã§ï¼Ž
ã§ã‚€
ã¤ãŸã•ん,
シリンダ,カプセルã®åŸºæº–å§¿å‹¢ã¯ï¼ºè»¸ï¼ˆä¸Šç©ºæ–¹å‘)ã«ãã£ã¦ã„ã¾ã™ï¼ŽdRFromAxisAndAngle()ã§x軸ã¾ãŸã¯y軸をä¸å¿ƒã«90度回転ã•ã›ãŸå›žè»¢è¡Œåˆ—Rを使ã£ã¦ãƒœãƒ‡ã‚£ã®åˆæœŸå§¿å‹¢ã‚’決ã‚ã¦ãã ã•ã„.
ã§ã‚€
ã—ã‚…ã‚“ã•ん,
texturepath.hをインクルードパスã«ãŠã„ã¦ãã ã•ã„.
ã¾ãŸï¼Œå††æŸ±ã®ç«¯é¢ãŒçœŸã£é»’ããªã‚‹ã®ã§ã—ょã†ã‹ï¼Ÿç…§æ˜ŽãŒå½“ãŸã£ã¦ã„ãªã„ã›ã„ã§ã™ã‹ï¼Ÿ
ã‚ャプãƒãƒ£ã—ãŸç”»åƒãŒã‚れã°ã‚‚ã†å°‘ã—ã‚ã‹ã‚‹ã¨æ€ã„ã¾ã™ï¼Ž
ã§ã‚€
 ã•ã£ããã®ã”è¿”ç”ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
 texturepath.hã®ã‚¨ãƒ©ãƒ¼ã¯ã€ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ãƒ‘スã«å…¥ã‚Œã‚‹ã“ã¨ã§è§£æ±ºã—ã¾ã—ãŸã€‚
 ã§ã™ãŒã€å††æŸ±ã®ç«¯é¢ãŒé»’ããªã‚‹ç¾è±¡ã¯è§£æ±ºã—ã¾ã›ã‚“ã§ã—ãŸã€‚
 ã‚ャプãƒãƒ£ã—ãŸç”»åƒã‚’以下ã®URLã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã¨è½ã¨ã›ã‚‹ã‚ˆã†ã«ã—ãŸã®ã§ã€ãŠæ‰‹æ•°ã§ã™ãŒç¢ºèªã—ã¦ã¿ã¦ãã ã•ã„。
 よã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
 
 files.me.com/mameta/ 8mgb2m
ã—ã‚…ã‚“ã•ã‚“ã€
æ‹è¦‹ã—ã¾ã—ãŸã€‚drawstuffã®ä»•様ã§ã™ã€‚irrDrawstuffを使ã„ã¾ã—ょã†ï¼ˆç¬‘ã„)。
ãŸã ã€ç¾çжã®0.01ã¯äº’æ›æ€§ãŒä¸å®Œå…¨ã§ã™ã€‚次ã®0.02ã«ãªã‚‹ã¨ã‹ãªã‚Šå®Ÿç”¨çš„ã«ãªã‚‹ã¨æ€ã„ã¾ã™ã€‚
ã§ã‚€
melã•ã‚“ã€
ã“れã¯ODEãŒå•題ã§ã¯ã‚りã¾ã›ã‚“。bpã®å®£è¨€ã®ä»•æ–¹ã«å•題ãŒã‚りã¾ã™ã€‚
*bp[]ã®æ„味ã¯bpã¯é…列ã§ã€ãã®å„è¦ç´ ãŒãƒã‚¤ãƒ³ã‚¿ã¨ã„ã†æ„味ã§ã™ã€‚
宣言ã¨ä»£å…¥ã‚’別ã«ã—ã¦ãã ã•ã„。ãªãŠã€é…列宣言時ã®è¦ç´ æ•°ã¯å®šæ•°ã§ãªã‘れã°ã„ã‘ã¾ã›ã‚“。
ãªãŠã€ã“ã®æ©Ÿä¼šã«é…列ã®ãƒã‚¤ãƒ³ã‚¿*bp[]ã€ãƒã‚¤ãƒ³ã‚¿ã®é…列(*bp)[]ãªã©ã‚’å†ç¢ºèªã•れã¦ã¯ã„ã‹ãŒã§ã—ょã†ã‹ï¼Ÿã“ã®éƒ¨åˆ†ã‚’ã—ã£ã‹ã‚Šç†è§£ã—ãªã„ã¨ã¾ãŸåŒã˜ã‚ˆã†ãªã‚¨ãƒ©ãƒ¼ã«æ‚©ã¾ã•れã¾ã™ã€‚
ä»¥ä¸‹ã®æœ¬ãŒãŠå‹§ã‚ã§ã™ã€‚ç§ã¯ã“れã§ã‚ã‹ã‚Šã¾ã—ãŸã€‚
1.Cプãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžå°‚門課程ã€è—¤åŽŸåšæ–‡è‘—ã€æŠ€è¡“è©•è«–ç¤¾
2.秘ä¼C言語å•ç”ãƒã‚¤ãƒ³ã‚¿ç·¨ã€æŸ´ç”°æœ›æ´‹è‘—ã€ã‚½ãƒ•トãƒãƒ³ã‚¯ã‚¯ãƒªã‚¨ã‚¤ãƒ†ã‚£ãƒ–
ã§ã‚€
ãŠè¿”事é…ããªã‚Šã¾ã—ãŸã€å›žç”有難ã†å¾¡åº§ã„ã¾ã™ã€‚解決ã§ãã¾ã—ãŸã€‚
ãŸã ã€ã‚¢ãƒ¼ãƒ ã‚’å‹•ã‹ã—ã¦ã„ã‚‹ã¨ã‚¢ãƒ¼ãƒ ãŒãã‚‹ãã‚‹ã¨å›žã£ã¦æ¢ã¾ã‚‰ãªããªã‚‹ã®ã§ã™ãŒã‚¨ãƒ©ãƒ¼ãªã®ã‹ã€ä»•様ãªã®ã§ã—ょã†ã‹ï¼Ÿ
é…列ã¨ãƒã‚¤ãƒ³ã‚¿ã«ã¤ã„ã¦ãŠãŠã¾ã‹ã«èª¿ã¹ãŸå¾Œã«ã€å®£è¨€ã¨ä»£å…¥ã‚’行ã£ãŸã¨ã“ã‚ã€ç„¡äº‹å€¤ã‚’æ ¼ç´ã™ã‚‹ã“ã¨ãŒã§ãã¾ã—ãŸã€‚
値を表示ã—ã¦ã¿ãŸã¨ã“ã‚å•題ãªã„ã“ã¨ãŒç¢ºèªã§ããŸã®ã§ãã®å€¤ã‚’代入ã—ã¦ç‰©ä½“を生æˆã—よã†ã¨ã—ãŸã¨ã“ã‚実行ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒã§ã¦ã—ã¾ã„ã¾ã—ãŸã€‚
物体をリセットã—ã¦åˆæœŸçŠ¶æ…‹ã«æˆ»ã™ã¨ã„ã†ãƒ—ãƒã‚°ãƒ©ãƒ ã«ã¯æˆåŠŸã—ã¦ã„ã‚‹ã®ã§ã‚„り方自体ã¯å•題ãªã„ã¨æ€ã†ã®ã§ã™ãŒã†ã¾ãã„ãã¾ã›ã‚“。ã©ã‚Œã‹ã²ã¨ã¤ã ã‘生æˆã—よã†ã¨ã—ã¦ã‚‚åŒã˜ã‚¨ãƒ©ãƒ¼ãŒã§ã¦ã—ã¾ã†ã®ã§æ ¹æœ¬çš„ãªã¨ã“ã‚ã§é–“é•ã£ã¦ã„ã‚‹ã®ã‹ã‚‚ã—れã¾ã›ã‚“…
ãªãŠç‰©ä½“ã®æƒ…å ±ä¿å˜ã¨ç”Ÿæˆã¯ã“ã®ã‚ˆã†ã«è¡Œã£ã¦ã„ã¾ã™ã€‚
bp[i] = dBodyGetPosition(body[i]); //ä½ç½®
br[i] = dBodyGetRotation(body[i]); //角度
brx[i] = atan2(br[i][4],br[i][0]); //角度変æ›
bry[i] = atan2(-br[i][8], sqrt(br[i][9]*br[i][9]+br[i][10]*br[i][10]));
brz[i] = atan2(br[i][9],br[i][10]);
dJointGetHingeAnchor(joint[i],jp[i]); //ジョイントã®ä½ç½®
body[0] = dBodyCreate (world); // 物体ã®å˜åœ¨ã‚’生æˆ
dBodySetPosition (body[0],bp[0][0],bp[0][1],bp[0][2]); // 物体ã®åˆæœŸä½ç½® dBodySetPosition(body[0],ä½ç½®ï½˜åº§æ¨™,ä½ç½®ï½™åº§æ¨™,ä½ç½®ï½šåº§æ¨™);
dQuaternion e1;
dQFromAxisAndAngle (e1,0,1,0,bry[0]);
dBodySetQuaternion (body[0],e1);
dMassSetBox (&m,1,LENGTH,WIDTH,HEIGHT); // 物体ã®ã‚µã‚¤ã‚ºè¨å®š dMassSetBox(&m,1,é•·ã•,å¹…,高ã•);
dMassAdjust (&m,CMASS); // dMassAdjust(&m,é‡é‡);
dBodySetMass (body[0],&m);
box[0] = dCreateBox (space,LENGTH,WIDTH,HEIGHT); // 物体ã®é‡é‡åˆ†å¸ƒè¨å®š
dGeomSetBody (box[0],body[0]);
joint[6] = dJointCreateHinge (world,0);
dJointAttach (joint[6],body[6],body[7]);
dJointSetHingeAnchor (joint[6],jp[6][0],jp[6][1],jp[6][2]);
dJointSetHingeParam (joint[6],dParamStopCFM,1e-3);
dJointSetHingeParam (joint[6],dParamStopERP,0.9);
dJointSetHingeAxis (joint[6],0,1,0);
基本的ã«ç‰©ä½“ã¯y軸ä¸å¿ƒã®å›žè»¢ã—ã‹èµ·ããªã„ãŸã‚ã“ã®ã‚ˆã†ãªè¨å®šæ–¹æ³•ã«ãªã£ã¦ã„ã¾ã™ã€‚
ã‚¨ãƒ©ãƒ¼ã®æ–‡ç« ã¯
assertion “bNormalizationResult” failed in c:\ode\include\ode\odemath.h:319
ã§ã™ã€‚ã“ã®ã‚¨ãƒ©ãƒ¼ã¯ç‰©ä½“ã«åŠ›ã‚’åŠ ãˆã¦æŒ™å‹•を確ã‹ã‚ã¦ã„ã‚‹ã¨ãã«ã‚‚時々ã§ã¦ã—ã¾ã„ã¾ã™ã€‚関節ã«ã¯
dJointSetHingeParam (joint[],dParamFudgeFactor, 0.01);
dJointSetHingeParam (joint[],dParamStopCFM,1e-3);
dJointSetHingeParam (joint[],dParamStopERP,0.9);
ã¨ã„ã£ãŸæ„Ÿã˜ã§ã‚¨ãƒ©ãƒ¼ãŒå‡ºã«ãããªã‚‹ã‚ˆã†ã«ã—ã¦ã„ã¾ã™ãŒãれã§ã‚‚出ã¦ã—ã¾ã†ã¨ããŒã‚りã¾ã™ã€‚
ã“ã†ã„ã£ãŸå ´åˆã©ã®ã‚ˆã†ã«ã™ã‚Œã°ã„ã„ã®ã§ã—ょã†ã‹ã€‚何ã‹åˆ†ã‹ã‚‹ã“ã¨ãŒã‚りã¾ã—ãŸã‚‰ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
追伸
ODEã¨ã¯é–¢ä¿‚ãªã„よã†ãªè³ªå•ã«ã‚‚ä¸å¯§ã«ãŠç”ãˆã„ãŸã ãæœ¬å½“ã«ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚ãªã«ã¶ã‚“時間ãŒãªã„ã®ã§åŸºç¤Žã‚’勉強ã—ãªãŠã™æ™‚é–“ãŒå–れãšè‹¦ã—ã‚“ã§ã„ã¾ã™ãŒã€æ¥µåŠ›ä¸Šè¨˜ã®ã‚ˆã†ãªODEã¨ã¯é–¢ä¿‚ãªã„質å•ã¯ã—ãªã„よã†ã«å¿ƒãŒã‘ã¾ã™ã€‚申ã—訳ã”ã–ã„ã¾ã›ã‚“ã§ã—ãŸã€‚ãã—ã¦ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸã€‚
ã™ãŒãŸã‚ã†ã•ん,
ã“ã‚“ã«ã¡ã¯ï¼Œ
OpenGLã¯3Dグラフィクスライブラリ,ODEã¯å‹•力å¦è¨ˆç®—ライブラリã§ã™ï¼Žå…¨ã別物ã§ã™ï¼ŽãªãŠï¼ŒODEã«ã¯drawstuffã¨å‘¼ã°ã‚Œã‚‹ãƒ‡ãƒ¢ãƒ—ãƒã‚°ãƒ©ãƒ 表示用ã®ç°¡æ˜“3DライブラリãŒä»˜å±žã—ã¦ã„ã¾ã™ï¼Ž
ã“ã‚“ãªå›žç”ã§ã‚ˆã‚ã—ã„ã§ã—ょã†ã‹ï¼Ÿ
ã§ã‚€
ODE本ã®ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ もアームã§ã—ょã†ã‹ï¼Ÿ
ãれãªã‚‰ï¼Œãã‚‹ãる回らãªã„よã†ã«ã™ã‚‹æ–¹æ³•ãŒï¼¯ï¼¤ï¼¥æœ¬ã«æ›¸ã„ã¦ã‚りå•題(P182)ã«ã‚‚ãªã£ã¦ã„ã¾ã™ï¼Ž
ã§ã‚€
melã•ん,
>é…列ã¨ãƒã‚¤ãƒ³ã‚¿ã«ã¤ã„ã¦ãŠãŠã¾ã‹ã«èª¿ã¹ãŸå¾Œã«ã€å®£è¨€ã¨ä»£å…¥>を行ã£ãŸã¨ã“ã‚ã€ç„¡äº‹å€¤ã‚’æ ¼ç´ã™ã‚‹ã“ã¨ãŒã§ãã¾ã—ãŸã€‚
具体的ã«ã©ã†ã—ãŸã‹æ›¸ã„ã¦é ‚ã‘ã‚‹ã¨ã†ã‚Œã—ã„ã®ã§ã™ãŒï¼Ž
>ODEã¨ã¯é–¢ä¿‚ãªã„よã†ãªè³ªå•ã«ã‚‚ä¸å¯§ã«ãŠç”ãˆã„ãŸã ãæœ¬å½“ã«ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ODEã«é–¢ä¿‚ã™ã‚‹ã‹ã—ãªã„ã‹ã¯æ…£ã‚Œãªã„ã¨ã‚ã‹ã‚‰ãªã„ã®ã§æ°—ã«ã—ãªã„ã§ãã ã•ã„.
>assertion “bNormalizationResult†failed in c:\ode\include\ode\odemath.h:319
ãªãŠï¼Œä¸Šã®ã‚¨ãƒ©ãƒ¼ã¯ãƒ¢ãƒ‡ãƒ«ãŒæ‚ªã„å ´åˆã‚‚ã‚りã¾ã™ã—,ãã†ã§ã¯ãªãï¼¯ï¼¤ï¼¥ã®æ•°å€¤è¨ˆç®—ã®èª¤å·®ã«ã‚ˆã‚‹å ´åˆã‚‚ã‚りã¾ã™ï¼Žãƒ‘ラメータをã„ã‚ã„ã‚変更ã™ã‚‹ã®ã¨ï¼Œãƒ¢ãƒ‡ãƒ«ãŒé–“é•ã£ã¦ã„ãªã„ã‹ã‚’ç–‘ã£ã¦ãã ã•ã„.
ã“ã®æ‰‹ã®è³ªå•ã¯å¤šãã®äººãŒæ‚©ã‚€å•題ã§ã™ï¼Žã“れを解決ã™ã‚‹ãŸã‚ã«ã¯melã•ã‚“ã®ä½œã‚ŠãŸã„モデルをç§ãŒæ£ç¢ºã«ã‚ã‹ã£ãŸä¸Šã§ï¼Œã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’æ³¨æ„æ·±ãèªã¾ãªã„é™ã‚Šã‚ã‹ã‚Šã¾ã›ã‚“.ODEを使ã†ä¸Šã§ä¸€ç•ªã‚„ã£ã‹ãªã„å•題ã§ã™ï¼Ž
個別ã«å¯¾å¿œã™ã‚‹ã“ã¨ã¯é›£ã—ã„ã®ã§ï¼Œã“ã®ã‚ˆã†ãªå•題ãŒèµ·ããªã„æž çµ„ã¿ã‚’考ãˆã¦ã„ããŸã„ã¨æ€ã„ã¾ã™ï¼Ž
今,一年ã§ä¸€ç•ªå¿™ã—ã„シーズンãªã®ã§ã“ã®ã‚ˆã†ãªå›žç”ã§å‹˜å¼ã—ã¦ãã ã•ã„.
ã§ã‚€
返事ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
OpenGLã§ã‚‚ãƒãƒœãƒƒãƒˆå‹•ãã‚’å†ç¾ã™ã‚‹ã“ã¨ã«ã¤ã„ã¦ã¯å¯èƒ½ã ã¨
æ€ã†ã®ã§ã™ãŒã€ã‚ãˆã¦ODEを使ã†ãƒ¡ãƒªãƒƒãƒˆã®ã‚ˆã†ãªã‚‚ã®ãŒ
ã‚ã‚‹ã®ã§ã—ょã†ã‹ï¼Ÿï¼Ÿ
知りåˆã„ã«ãã“ã‚’çªã£è¾¼ã¾ã‚Œã¦ä¸Šæ‰‹ãç”ãˆã‚Œãªã‹ã£ãŸã®ã§
質å•ã—ã¾ã—ãŸã€‚
ãã®çŸ¥ã‚Šåˆã„ã«ODEã¯å‹•力å¦è¨ˆç®—エンジンã§ï¼“次元グラフィクスライブラリã§ã¯ãªã„ã“ã¨ã‚’力説ã—ã¦ãã ã•ã„.
ã‚‚ã—,ODE付属ã®drawstuffã¨OpenGLã®ã“ã¨ã§ã—ãŸã‚‰ï¼Œdrawstuffã¯ç°¡å˜ã«è³ªãŒé«˜ã„æ˜ åƒã‚’作るã“ã¨ãŒã§ãã‚‹ã¨è©±ã—ã¦ãã ã•ã„.
ãŸã ,drawstuffã¯ç°¡æ˜“ライブラリãªã®ã§ï¼Œãã®å•題点を解決ã—ã¦ã„ã‚‹ã®ãŒæœ€è¿‘ç§ãŒé–‹ç™ºã—ã¦ã„ã‚‹irrDrawStuffã ã¨è©±ã—ã¦ã‚‚らãˆã‚Œã°ã†ã‚Œã—ã„é™ã‚Šã§ã™ï¼Ž
ãªãŠï¼Œç°¡å˜ã ã¨ã„ã†ã“ã¨ã¯éžå¸¸ã«é‡è¦ã§ã™ï¼Žã‚ãšã‹140å—ã®ãƒ„ィッターãŒã“ã“ã¾ã§æˆé•·ã—ã¦ã„ã‚‹ã®ã¯ãŠæ‰‹è»½ã ã¨ã„ã†ã“ã¨ã§ã™ï¼Ž
一番é‡è¦ãªã®ã¯ä¸èº«ã§ã™ã‹ã‚‰ï¼Œãれを簡å˜ã«è¡¨ç¾ã§ãるツールãŒã‚れã°ï¼Œä¸èº«ã«å¤šãã®æ™‚間を割ã‘ã‚‹ã®ã§ã¯ãªã„ã§ã—ょã†ã‹ï¼Ÿ
ã§ã‚€
ã¨ã—ã•ん,
ç´ æ™´ã‚‰ã—ã„質å•ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼Ž
ç§ã¯è©¦ã—ã¦ã„ã¾ã›ã‚“ãŒï¼Œpremake4ã®éš›ï¼Œ–no-allca (noã®å‰ã¯ãƒžã‚¤ãƒŠã‚¹ãŒï¼’個)ã®ã‚ªãƒ—ションを付ã‘ã¦ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆãƒ•ァイルを生æˆã™ã‚Œã°ï¼Œstackã§ã¯ãªãheapメモリãŒä½¿ã‚れã¾ã™ï¼ŽãŸã ã—,é…ããªã‚‹ãã†ã§ã™ï¼Ž
試ã—ã¦ã¿ã¦çµæžœã‚’æ•™ãˆã¦é ‚ã‘ã¾ã›ã‚“ã‹ï¼Ÿ
ã§ã‚€
ã”回ç”ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ã‚„ã£ã¦ã¿ã¾ã—ãŸãŒã€çжæ³ã¯å¤‰ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚
ã‚‚ã†å°‘ã—ã„ã‚ã„ã‚試ã—ã¦ã¿ãŸã„ã¨ãŠã‚‚ã„ã¾ã™ã€‚
ä»–ã«æ³¨ç›®ã™ã‚‹é …ç›®ãªã©ã‚ã‚Œã°æ•™ãˆã¦ã„ãŸã ã‘ã‚‹ã¨åŠ©ã‹ã‚Šã¾ã™ã€‚
ã¨ã—ã•ん,
ã™ã¿ã¾ã›ã‚“.allocaã®ã‚¹ãƒšãƒ«ã‚’é–“é•ã£ã¦ã„ã¾ã—ãŸï¼Ž
–no-alloca ã®ã‚ªãƒ—ションを付ã‘ã¦ã‚‚ã†ä¸€åº¦ã‚„ã£ã¦é ‚ã‘ã¾ã›ã‚“ã‹ï¼Ÿã€€
ãã—ã¦ï¼Œãã‚ŒãŒæœ‰åйã«åƒã„ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚¹ã‚¿ãƒƒã‚¯ã®è¨å®šã‚’æ¨™æº–ã«æˆ»ã—ãŸå ´åˆã¨æ¯”較ã—ã¦é ‚ã‘ãªã„ã§ã—ょã†ã‹ï¼Ÿã¤ã¾ã‚Šï¼Œä½•個ãらã„ã¾ã§ãªã‚‰çƒãŒè¡¨ç¤ºã•れるã®ã§ã—ょã†ã‹ï¼Ÿ
ãŠé¡˜ã„ã°ã‹ã‚Šã—ã¦ã™ã¿ã¾ã›ã‚“.
ã§ã‚€
ã‚‚ã‚“ã•ん,
コメントã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼Žè¨ˆç®—ã®æ¦‚ç•¥ã«ã¤ã„ã¦ã¯ä»Šå¹´ä¸ã«ç™ºå£²ã•ã‚Œã‚‹äºˆå®šã®æƒ…å ±å¦ãƒãƒ³ãƒ‰ãƒ–ックã«ç§ã®æ‹…当部分ãŒã‚ã‚‹ã®ã§ãã“ã‚’ã”覧ãã ã•ã„.
ãªãŠï¼ŒODEã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã«é–¢ã—ã¦ã¯ç§ã®FAQã«å‚考文献ãŒã‚ã‚‹ã®ã§æ˜¯éžãã¡ã‚‰ã‚’ã”覧ãã ã•ã„.
http://demura.net/9ode/452.html#b16
ãれã¨ï¼ŒODEã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯è‡ªç”±ã«èªã‚ã¾ã™ã®ã§ï¼Œãれã§ã™ã¹ã¦ãŒã‚ã‹ã‚Šã¾ã™ï¼Žã‚ªãƒ¼ãƒ—ãƒ³ã‚½ãƒ¼ã‚¹ã¯æœ¬å½“ã«è‰¯ã„ã§ã™ã.
ã§ã‚€
ã©ã†ã‚‚ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ãœã²å‚考ã«ã•ã›ã¦ã„ãŸã ãã¾ã™ã€‚