fntl
대표칭호 없음
이해도 | 입문자 |
---|---|
게임버전 (JE) | 1.20.1 |
게임버전 (BE) | 관련없음 |
한 개의 디스플레이를 애니메이팅 하는 방법은 알아냈는데, 여러 개의 디스플레이로 더 복잡한 애니메이션을 만들고 싶을때는 하나하나 움직이는 것 말고 더 편한 방법이 없나요? 아무리 검색해봐도 모르겠네요...
이해도 | 입문자 |
---|---|
게임버전 (JE) | 1.20.1 |
게임버전 (BE) | 관련없음 |
한 개의 디스플레이를 애니메이팅 하는 방법은 알아냈는데, 여러 개의 디스플레이로 더 복잡한 애니메이션을 만들고 싶을때는 하나하나 움직이는 것 말고 더 편한 방법이 없나요? 아무리 검색해봐도 모르겠네요...
김형원
2023.11.30아래 설명은 디스플레이 엔티티의 transformation, interpolation과 데이터팩에 대한 기본적인 이해가 있는 사람이라는 가정 하에 이야기하는 것입니다
```execute as @e[tag=개쩌는태그] on passengers run function 개쩌는함수```
1. 이런 식으로 작성하게 된다면 개쩌는태그를 가진 엔티티의 탑승자가 하나씩 차례대로 개쩌는함수를 실행한다
2. 때문에 개쩌는함수의 첫 줄에서 스코어를 1 더하는 명령어를 넣는다면 몇번째 디스플레이인지 알 수 있다
아래 코드는 제가 코뿔소의 걷기 애니메이션을 만든 방식을 살짝 변경한 방식의 코드입니다
들여쓰기와 #으로 표기된 부분은 실행된 함수입니다
```
scoreboard players set display_cnt num 0
execute as @e[tag=Dinosaur] on passengers run function pack:animation
#execute if score display_cnt num matches 0 run data merge entity @s {transformation:{...},start_interpolation:0,interpolation_duration:숫자}
#execute if score display_cnt num matches 1 run data merge entity @s {transformation:{...},start_interpolation:0,interpolation_duration:숫자}
#execute if score display_cnt num matches 2 run data merge entity @s {transformation:{...},start_interpolation:0,interpolation_duration:숫자}
#(이하 반복)
#scoreboard players add display_cnt num 1
```
위 코드에서 (이하 반복) 부분에는 display_cnt의 num을 감지하는 부분의 숫자만 바꿔서 작성하시면 됩니다
앞의 분이 태그를 붙이라고 말한 것은 ```execute store result score display_cnt num if entity @e[tag=leg1]```위와 같이 처럼 어떤 디스플레이인지 구분하기 위함이었지만, 스코어를 더하는 방식으로 셀 수 있으니 특별한 태그는 없어도 됩니다
다만, 페이퍼와 같은 특수한 경우에서는 엔티티가 소환된 순서대로 명령어가 작동하지 않기에 애니메이션이 작동하지 않을 수 있습니다