鬱だ氏のう DirectX (Part 8)
■ このスレッドは過去ログ倉庫に格納されています
0635名前は開発中のものです。
03/04/26 04:09ID:iHMdMR3Y現在ソースを解析して、サンプルを勉強中です。
サンプルを以下のように改造してみました。
void CMyD3DApplication::UpdateFrameMatrices(LPD3DXFRAME pFrameBase, LPD3DXMATRIX pParentMatrix)
{
D3DXFRAME_DERIVED *pFrame = (D3DXFRAME_DERIVED*)pFrameBase;
D3DXMATRIX rotMatrix;
if (pFrame->Name && strcmp(pFrame->Name, "Bip01_Head") == 0)
D3DXMatrixRotationY(&rotMatrix, D3DX_PI / 3);
else
D3DXMatrixIdentity(&rotMatrix);
if (pParentMatrix != NULL)
D3DXMatrixMultiply(&pFrame->CombinedTransformationMatrix, &(rotMatrix * pFrame->TransformationMatrix), pParentMatrix);
else
pFrame->CombinedTransformationMatrix = pFrame->TransformationMatrix;
:
:
フレームの名前が"Bip01_Head"だったら、適当な回転行列をかけて、横を向かせようとしています。
横を向くのだからY軸回転だろう、と思ったのですが、D3DXMatrixRotationYを使うと、Z軸回転をして
首を傾げたような状態になってしまいます。
なぜかD3DXMatrixRotationXを使用すると、希望する動作をするのですが・・・
なぜこんな風になってしまうのか教えてください。
■ このスレッドは過去ログ倉庫に格納されています