전체 글(287)
-
[Blender] 마우스 좌클릭으로 원하는 곳에 오브젝트 쉽게 복제하기(2)
[Blender] 마우스 좌클릭으로 원하는 곳에 오브젝트 쉽게 복제하기개요블렌더에 같은 오브젝트를 여럿 배치하기 위해서는 보통 [Shift + D]로 복제하여 사용한다. 단축키를 이용한 쉬운 복제이기 때문에 이것만으로도 빠른 작업이 가능하지만 문제는 어떤 지형을lightbakery.tistory.com지난 글에서 만들었던 스크립트를 발전시켜서 기능을 추가해보았다. 전체 스크립트import bpyimport mathutilsimport randomfrom math import radiansfrom bpy_extras.view3d_utils import region_2d_to_vector_3d, region_2d_to_origin_3d# Configuration variablesObjectA = "Tr..
2024.11.11 -
[Blender] 마우스 좌클릭으로 원하는 곳에 오브젝트 쉽게 복제하기
개요블렌더에 같은 오브젝트를 여럿 배치하기 위해서는 보통 [Shift + D]로 복제하여 사용한다. 단축키를 이용한 쉬운 복제이기 때문에 이것만으로도 빠른 작업이 가능하지만 문제는 어떤 지형을 따라서 배치해야 할 경우 높이값을 하나씩 바꿔주어야 하는 문제가 있다.가령 수백 개의 나무, 돌, 풀 등의 에셋을 대량으로 배치해야 한다고 했을 때 효율적인 배치 방법이 없을 지를 고민해봤다.주의할 점은 랜덤 배치가 아닌 내가 원하는 특정 포인트에서의 배치이다. 사용 방법import bpyimport mathutilsimport randomfrom math import radiansfrom bpy_extras.view3d_utils import region_2d_to_vector_3d, region_2d_to..
2024.10.29 -
[Blender] glb, gltf 파일 Alpha 애니메이션 자동화 스크립트
개요Blender에서 glb 파일 포맷으로 export 할 때, Material 관련 애니메이션은 사용할 수 없다. 예전부터 제기되어 왔던 주제인데 아직 적용되지 않고 있는 듯 하다.Material 애니메이션 중에 가장 잘 쓸 수 있는 부분은 Alpha FadeOut 효과로, 특정 오브젝트를 투명하게 서서히 사라지게 만든다. glb/gltf 포맷에서도 마찬가지로 사용하기 위해서는 조금의 트릭이 필요하다. Alpha Fadeout을 적용하고 싶은 오브젝트를 프레임 단위로 복제하여 각각에 다른 Alpha 값을 부여하면 된다. 오브젝트를 복제한다는 것이 복잡한 오브젝트에 대해서는 꽤나 부하를 가져올 것 같은 생각이 든다. 이 부분에 대해서 Collection Instance를 테스트로 적용해보았지만 결국 오..
2024.09.27 -
[Blender] 블렌더에서 플립북 텍스쳐(FlipBook Texture) 스크립트 자동화 적용
이전 글에서 Flipbook 형태로 되어있는 텍스쳐를 사용하여 애니메이션을 만들어 보았다. 이 작업을 스크립트를 사용하여 자동화 해보았다. [Blender] 블렌더에서 플립북 텍스쳐(FlipBook Texture) 사용하기텍스쳐를 이것 저것 사용하고 찾다보면 가끔 한 장의 텍스쳐에 바둑판 형식으로 여러 개의 그림이 그려져 있는 것을 볼 수 있다. 주로 불이나 연기 표현에서 사용한 경험이 있다.유니티에서는lightbakery.tistory.com 개요glb 파일로 이펙트를 export 하는 방법 중 하나는 Flipbook 형태로 이루어져있는 Texture를 이용하는 것이다. 하나의 Texture 이미지 안에 순차적인 움직임이 들어있는 이미지를 각각의 Plane에 적용하여 연속된 하나의 애니메이션으로 ..
2024.09.24 -
[Unreal] 33일차 - 점수 표시 UI, 점수 데이터 저장, 플레이어 상체 움직임
점수 표시 UIWBP_UIScreen에서, Vertical Box를 추가해서 ScoreBox 이름으로 변경 그 아래 Text를 두 개 추가하여 CurrentScore, HighScore로 이름 변경 ScoreBox는 Anchors를 우측 상단으로, 포지션과 Alignment를 설정한다. Text를 "Current Score : 999"로 설정했고 Justification을 우측으로 두었다. High Score도 마찬가지로 설정 ScoreBox에 Size To Content 체크하고 Position 살짝 변경 실행 시 화면에서 스코어가 잘 보인다. BluePrints 폴더에 BP_TPSGameMode 블루프린트를 더블클릭한다. 좌측에서 CurrentScore, HighScore 변수를 생성한..
2024.09.15 -
[Unreal] 32일차 - 적 패트롤, 적 이동 중 회전 조절, 피격 UI 애니메이션
적 패트롤 계속GetRandomPositionInNavMesh에서 만든 GetRandomReachablePointRadius를 커스텀 함수 안에서 쓰지 않고 밖에서 바로 쓰도록 한다.GetRandomPositionInNavMesh 함수 안에서 GetRandomReachablePointRadius 노드 복사 후기존의 Get Random Position in Nav Mesh를 지우고 그 자리에 대체한다. 선택한 노드들은 뒤에서 또 쓸 예정이라 묶어서 FindPath이름의 Function으로 만든다. 그 전에 쓰던 GetRandomPositionInNavMesh는 삭제. 이제 BP_EnemyFSM의 MoveState로 간다.이동과 관련 있는 노드를 선택하고 Function으로 만든다. 만든 함수인 Fin..
2024.09.15