프로그래밍 공부

프로그래밍 700

카테고리 설명
  • 기본 이동 애니메이션에 무기를 장착하고 이동하는 애니메이션을 추가한다. 무기를 장착시 일반적인 쿼터뷰 게임 처럼, 캐릭터는 언제나 정면을 바라보면서 이동하게 할 것 이다. 우선 필요한 애니메이션을 정의한다. 기본적인 공격, 이동, 무기들고 달리기 등의 애니메이션을 사용한다. 애니메이션은 Mixamo에서 가져와 사용하였다. ABP만들기 무기의 장착모션의 ABP를 정의해야 한다. 이번에는 ABP의 블랜드 스페이스를 1D가 아닌 일반 블렌드 스페이스를 사용한다. 블렌드 스페이스 기본적인 블렌드 스페이스의 위치이다. 2개의 축을 사용하고, Speed와 정면기준 -180~ 180 의 각도를 사용한다. 좌측 180도를 이동하고 우측 180 도를 이동하여, 객체의 속도를 기준으로 애니메이션을 블랜딩 한다. 모든 애니..

  • 언리얼 의 RaytoCollision을 사용해서 케릭터의 머티리얼을 변환시켜보자. Line을 그리는 객체에 위의 블루프린트를 BeginPlay에 연결해준다. 시작할 때, Player객체를 확인하고, 해당 객체의 Mesh데이터를 참고하여 Material을 변수로 받아온 다음, 해당 캐릭터의 Mesh데이터를 참조하여 Mesh데이터를 새로만드는 DynmaicMaterial instance로 변환해준다. 그렇게 하면, BodyMaterial에 Player의 Material데이터를 받아올 수 있다. 이제 이 정보를 수정해보자. TickRate에 대해 충돌검사 판별하는 코드부분을 수정하자. 충돌시를 판별하여, 충돌했을 경우, 해당Actor를 Break하여, HitActor를 받아온다음, 이 데이터를 BP_Playe..

  • 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..

  • 코드를 한줄이라도 작성하기 전에 프로그램이 어떠해야 하는지 먼저 디자인해보는 것이 좋다. 어떤 데이터 구조를 사용할 것인가? 무슨 클래스를 작성할 것 인가? 여러 개발자가 참여한다면 사전에 계획을 짜는 것이 더더욱 중요해진다. 프로그램을 작성하는 데 같이 작업하는 동료가 무슨 생각을 하는지 전혀 알지 못하면서 프로그램이 제대로 완성되길 기대하는 것은 무모하다. 사전에 계획된 디자인이 있어야 이런 문제를 해결할 수 있다. 4.1 프로그램 디자인이란? 프로그램 디자인 또는 소프트웨어 디자인은 주어진 기능정, 성능적 요건을 구현하기 위한 아키텍처의 설명서다. 좀더 쉽게 말하면 프로그램을 작성하기 위한 계획이다. 디자인은 문서로 작성되고 남겨져야 하는데 소프트웨어 디자인 문서는 일반적으로 통용되는 형태가 있다...

  • 3.7 스타일 적용의 장애물 프로젝트를 새로 시작할 때 이번에는 제대로 해보자는 생각을 하게 된다. 파라미터나 변수가 변경되지 않을 때는 const로 확실하게 표시하고, 모든 변수명은 간결하면서도 이해하기 쉬운 이름을 부여하며, 블록 중괄호의 칼럼 위치를 지키고, 소스 편집툴의 탭/공백 설정도 팀 내 가이드에 맞춘다. 하지만 이러한 스타일을 계속해서 유지할 수 없게 만드는 몇 가지 이유가 있다. const의 경우 어떤때는 그 사용법을 잘 배우지 못한 프로그래머가 있을 수 있다. 그리고, const를 제대로 활용하지 못한 코드나 라이브러리를 만나게 될 수도 있다. 훌륭한 프로그래머라면 어쩔 수 없을 때만 const_cast를 통해 변수의 const를 잠시 해제하고 사용한다. 그런데, 경험이 없는 프로그래머..

  • 3.6.2 괄호 사이 공백 같은 라인 안에서 괄호에 공백을 어떻게 적용할지도 논쟁거리다. 연산자와 함수 파라미터 목록의 쉼표와 키워드 뒤에 공백을 삽입하고있다. 그리고 수식의 연산 우선순위를 잘드러나게 하려면 괄호를 사용한다. if (i == 2) { j = i + (k / m); } 다른 방법으로는 if문을 함수와 같은 스타일로 처리하여 괄호와 키워드 사이에 공백을 두지 않을 수도 있다. 수식에 사용되는 연산 우선순위 표시용 괄호도 특별히 수식의 의미에 영향을 주지 않는다면 사용하지 않는다. if (i == 2) { j = i + k / m; } 둘의 차이는 크나, 어느쪽이 더 낫다고 할 수는 없다. 3.6.2 탭과 공백 탭과 공백의 사용 방식은 단순히 개인 취향 문제로 끝나지 않는다. 개발팀 내에서 ..