2012-12-19 3 views
1

모델에 붙어있는 어려움을 "뼈"의 정확성으로 다른 모델에 맞 춥니 다. 여러 포럼을 검색했지만 결과가 없습니다. 나는 많은 사람들이 같은 질문을 던졌지 만 실제 결과는 아무런 반응도 보이지 않는다는 것을 알았다. 발견 스레드 :모델을 특정 뼈대의 다른 모델에 연결하는 방법은 무엇입니까?

https://gamedev.stackexchange.com/questions/21129/how-to-attach-two-xna-models-together

https://gamedev.stackexchange.com/questions/44515/how-can-i-attach-a-model-to-the-bone-of-another-model

https://stackoverflow.com/questions/11391852/attach-model-xna

하지만 그것은 가능하다 생각합니다. 여기

내 코드 예제 접근 방식은 다를 수 내 선수

private void draw_itemActionAttached(Model modelInUse) 
    { 
     Matrix[] Model1TransfoMatrix = new Matrix[this.player.Model.Bones.Count]; 
     this.player.Model.CopyAbsoluteBoneTransformsTo(Model1TransfoMatrix); 
     foreach (ModelMesh mesh in modelInUse.Meshes) 
     { 
      foreach (BasicEffect effect in mesh.Effects) 
      { 
       Matrix model2Transform = Matrix.CreateScale(1f) * Matrix.CreateFromYawPitchRoll(0, 0, 0); 

       effect.World = model2Transform * Model1TransfoMatrix[0]; //root bone index 
       effect.View = arcadia.camera.View; 
       effect.Projection = arcadia.camera.Projection; 
      } 
      mesh.Draw(); 
     } 
    } 
+0

어떻게 다른 부모 하나 개의 모델을하라는거야? –

+0

흠. 예. 나는 다른 모델 (물체, 무기 등 ..)을 특정 뼈 (오른손)의 다른 모델 (문자)에 붙이고 싶습니다. –

답변

2

을의 손의 "큐브"연결되어 있지만이 작업을 수행하는 일반적인 방법은 "equippables에 하나 개 이상의 뼈를 추가하는 것입니다 ", 그들은 핸드 헬드 여부. 이렇게하면 오브젝트의 뼈가 플레이어의 런타임에 추가되어 원하는 위치에 항목을 "장비"할 수 있습니다.

일부 읽기 : 그래서 http://en.csharp-online.net/XNA_Game_Programming%E2%80%94PlayerWeapon

+0

Waouhh! 나는 당신의 연결 고리를 보러 갈 것이고 나는 결과를 이야기하기 위해 돌아 간다 ...이 연결은 나의 문제에 대해 나에게 완벽한 것처럼 보인다. –

+1

대단히 고마워요! 죄송합니다, 그 시간부터 오는 것을 잊어 버렸습니다. –

관련 문제