목록공부/3D강의 (101)
응애맘마조
애니메이션 효과에 보간을 넣어서 끊김 없이 자연스럽게 움직이는 모션을 강의했습니다. 또한 이제 로더에서 이미지 변경을 하고 저장 후에 게임 프로젝트에 가져왔지만 이제 그럴 필요 없이 게임 내에서 조절할 수 있도록 했습니다. void Transform::UpdateAnim(Matrix&& bone) { S = Matrix::CreateScale(scale); R = Matrix::CreateFromYawPitchRoll(rotation.y, rotation.x, rotation.z); T = Matrix::CreateTranslation(position); RT = R * T * bone; W = S * RT; if (parent) { S = S * parent->S; RT = RT * parent->RT..
어제 애니메이션 로드에 실패했지만 오늘 성공했습니다. 스켈레톤 클래스를 제거하고 애니메이션 클래스를 따로 만들어서 프레임과 뼈대를 합치게 되었습니다. #pragma once #define MAX_BONE 256 class Animation { public: UINTframeMax; UINTboneMax; Matrix**arrFrameBone; floattickPerSecond; stringfile; Animation(); ~Animation(); void LoadFile(string file); void SaveFile(string file); }; class Animations { private: static shared_ptr TPose; public: static void CreateStaticMe..
애니메이션 구현에 들어갔습니다. 2D때와는 다르게 보간을 이용해서 자연스럽게 움직이는 모션을 사용하게 되며 자세한 내용은 키프레임 과제 https://keisukeaso.tistory.com/210를 참고해 주시면 감사하겠습니다. 하지만 어째서인지 오늘 강의에서는 효과 구현에 실패하고 시간상 과제로 되었으니 추후에 게시하겠습니다. cbuffer VS_Anim : register(b3) { matrix Frame[MAX_BONE]; } hlsl 파일에 뼈대와 별개로 애니메이션 효과 구현에 필요한 코드를 추가했습니다. D3D11_BUFFER_DESC desc = { 0 }; desc.ByteWidth = sizeof(Matrix) * MAX_BONE; desc.Usage = D3D11_USAGE_DYNAMI..
어제 완성하지 못했던 본을 완성시켰습니다. [flatten] if (input.Weights.x) output.Position = mul(output.Position, SkinWorld(input.Indices, input.Weights)); output.Position = mul(output.Position, World); Common.hlsl 파일에 뼈대를 구성할 코드가 추가되었습니다. matrix SkinWorld(float4 indices, float4 weights) { matrix transform = 0; transform += mul(weights.x, Bones[(uint) indices.x]); transform += mul(weights.y, Bones[(uint) indices.y]..