전체 글 236

[Unity 3D] Mixamo 애니메이션 적용 시 기본 포즈(t-pose)만 나오는 문제

모델링을 가져오고, mixamo에서 애니메이션 파일을 다운받아 적용했는데, 실행하니 애니메이션이 제대로 출력되지 않고 사진과 같은 형태만 유지하는 문제가 생겼다 해결방법은 animation의 인스펙터 창에서 Rig -> Animation Type을 Humanoid로 변경해 주면 된다기본값은 Generic으로 되어 있는데, 이 경우 모델의 뼈대명과 애니메이션 파일의 뼈대명이 일치하는 경우에만 매핑을 해 준다. 그런데 다운받은 애니메이션과 모델의 파일을 각각 열어보면 뼈대명이 위와 같이 되어 있어, 자동으로 매핑이 안 된 것이다 Animation Type을 Humanoid로 변경하게 될 경우, 유니티에서 Model을 기반으로 새 Avatar를 생성해 매핑해주기 때문에 정상적으로 애니메이션을 뼈대에 맞춰 출..

[Unity 3D] 애니메이션 출력 시 Y축 떠 있는 문제 (Bake into pose)

Dying 애니메이션을 다운받아서 모델에 넣고 실행시켜 보니 사진처럼 공중에 뜬 상태로 넘어지는 모션이 출력되는 문제가 생겼다 https://docs.unity3d.com/kr/560/Manual/RootMotion.html 루트 모션 - 작동 방식 - Unity 매뉴얼바디 트랜스폼은 캐릭터의 질량 중심입니다. 메카님의 리타게팅 엔진에서 사용되고 가장 안정적인 변위 모델을 제공합니다. 바디 오리엔테이션은 아바타 T-포즈를 기준으로 한 하위 및 상위 오docs.unity3d.com Bake Into Pose에 체크를 해제할 경우, 애니메이션에 의해 실제 게임 오브젝트의 회전값이나 position이 변경될 수 있다따라서 이걸 방지하기 위해 Bake Into Pose에 체크를 해 두면, 회전값이나 포지션값이 ..

[CSS] flex 부모 밑의 가변 크기 자식의 크기가 고정되지 않는 문제

왼쪽의 패널의 크기를 동일하게 맞추어 놓았는데 canvas를 렌더시키면 자꾸만 오른쪽 패널의 자리를 침범하는 문제가 생겼다 부모 클래스에 display: flex가 들어가 있었고, 자식 클래스에 canvas가 들어가 있었는데 canvas는 가변 요소라 부모 클래스에서 지정한 값을 넘어서 자꾸 확장되는 문제가 발생했다 기본적으로 flex에서는 min-width가 auto이기 때문에 자식 콘텐츠의 크기를 제한하지 않고 있어서, 부모에서 지정한 크기보다 자식 콘텐츠 크기가 커지만 그만큼 늘어나서 표시된다 canvas뿐만 아니라 text 등 가변적으로 크기가 변하는 콘텐츠 전체에 해당된다 해결방법minWidth: 0자식 클래스의 스타일에 min width: 0으로 설정해 주면, 자식 콘텐츠의 크기가 0보다 작아..

[React] Three js로 glb 3D 모델 띄우기

1. 터미널에서 gltfjsx 다운로드(gltf/glb를 jsx 파일 형태로 변환하기 위한 라이브러리)npm install gltfjsx 2. glb 모델을 폴더에 넣고, 해당 폴더 위치에서 터미널을 열어 아래 명령어 입력npx gltfjsx [파일명].glb 3. 생성된 jsx를 열어서 glb 모델 파일의 위치를 알맞게 수정하고, 함수명을 원하는대로 변경 4. 기본적으로 Canvas 안에 넣어야 하고, 카메라 위치 및 light를 조정해 줄 수 있다모델은 group 단위로 묶어서 넣어두면 된다import { Canvas } from '@react-three/fiber'import React from 'react'export default function View() { return ( ..

[C++][백준 1697] 숨바꼭질(BFS)

https://www.acmicpc.net/problem/1697풀이 (BFS)3가지 선택지(*2, -1, +1)가 존재하므로 3갈래로 계속 나눠지는 그래프를 BFS로 탐색한다고 생각하면 된다총 몇 초가 흘렀는지를 체크해야 하기 때문에 queue를 pair로 설정해주었다 제출 코드 (BFS)#include #include using namespace std;bool visited[100001];int bfs(int start, int target){ queue> q; q.push(make_pair(0, start)); visited[start] = true; while (!q.empty()) { int cur = q.front().second; int ..

[C++][백준 1389] 케빈 베이컨의 6단계 법칙(BFS, 플로이드 워셜)

https://www.acmicpc.net/problem/1389문제를 읽어보면 모든 정점에서 모든 정점까지의 거리를 전부 구해야 하므로 플로이드 워셜 알고리즘을 쓰면 되는데, 우선은 BFS로 풀이해 보았다 풀이 1 (BFS)평범한 BFS 알고리즘 기반이나, 몇 단계를 거쳐서 도달했는지 체크해야 하기 때문에 queue를 pair로 만들어 주었다처음 시작은 0단계로 시작하고, 단계를 거칠 때마다 pair의 first 부분에 +1씩 해서 계산해 준다 제출 코드 (BFS)#include #include #include using namespace std;vector v[101];int bfs(int start, int target, bool visited[101]){ queue> q; q.push..

[C++][백준 30804] 과일 탕후루

https://www.acmicpc.net/problem/30804풀이투 포인터 알고리즘을 활용하여, 시작점을 고정시켜놓고 끝점을 늘려나다가, 과일의 개수가 2개를 초과하면 시작점을 하나씩 앞으로 당겨오는 방식을 반복과일의 개수가 2개를 초과하거나 주어진 배열 밖으로 벗어날 경우 구간의 길이를 구하여 max값을 업데이트해 준다 제출 코드#include using namespace std;int fruit[200001];int fCount[10];bool check(){ int cnt = 0; for (auto& f : fCount) if (f > 0) cnt++; return cnt > n; for (int i = 0; i > fruit[i]; while(start

[C++][백준 17626] Four Squares

https://www.acmicpc.net/problem/17626 풀이dp(제곱수의 개수)로 풀이했을 때, dp[i - 1]의 값에 +1을 하거나, 어떤 dp 값에 제곱수를 하나 더하는dp[x] + 1 중 가장 작은 값을 선택해 나가는 식으로 진행하면 된다만약 13의 제곱수의 개수를 구해야 한다고 했을 때, 제곱수로 13을 만들 수 있는 경우의 수는3^2 + 1 + 1 + 1로 표현되는 12에 +1 하거나또는 3^2으로 표현되는 9에 +2^2 또는 2^2로 표현되는 4에 +3^2 하는 식으로 제곱수를 하나 더함으로써 만들 수 있다따라서 가능한 경우 중 가장 작은 값을 골라주면 된다 제출 코드#include using namespace std;int dp[50001];int main(){ ios::..

[C++] lower_bound, upper_bound에 대하여(배열에서 key 위치 찾기)

정렬되어 있는 배열에서 이진 탐색으로 원하는 key의 인덱스를 반환해 주는 함수들이다lower_bound: 원하는 val 값과 같거나 큰 값(이상)이 최초로 등장하는 인덱스를 반환한다upper_bound: 원하는 val 값보다 큰 값(초과)이 최초로 등장하는 인덱스를 반환한다 lower_bound와 upper_bound의 코드는 아래와 같다사실상 다른 건 다 동일하고 if문에서 이하인지 초과인지를 체크하는 부분만 다르다// lower_boundtemplate ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val){ ForwardIterator it; iterator_traits::differenc..

Programing/C++ 2025.02.21