개요편집이의 제기
속성(Attributes)은 몹과 플레이어의 버프와 디버프를 조정하는 시스템으로, 엔티티의 특정 수치적 특성을 제어한다[1][2]. 모든 엔티티는 각 속성에 대한 기본값을 가지며, 수정자(Modifiers)에 의해 최종 값이 결정된다[2]. 속성은 기본값, 기본값(언디파인드 시 사용), 하드코딩된 최소·최댓값을 가지며, 계산된 값은 항상 최소·최댓값으로 제한된다[1]. 수정자는 속성의 기본값에 작용하며, 연산 유형(add, multiply_base, multiply)에 따라 더하거나 곱하는 방식으로 값을 변경한다[1][2]. 속성과 수정자는 /give, /summon, /attribute 명령어의 데이터 태그를 통해 아이템이나 몹에 추가할 수 있으며, UUID로 고유하게 식별된다[1][2].
이름편집이의 제기
- 다른 언어 공식 이름: Attribute (English) · 属性 (日本語) · Atributo (Español) · Atributo (Português) · Attribut (Français) [3]
상세편집이의 제기
작동 방식
속성 시스템은 몹과 플레이어의 버프 및 디버프를 조정하는 체계이다 [1]. 각 속성은 기본값을 가지며 수정자가 적용되어 최종 수치가 결정된다 [1][2]. 최종 수치는 속성별 최솟값과 최댓값 사이에서 제한된다 [1][2]. 수정자는 연산 유형에 따라 기본값에 더해지거나 곱해지는 방식으로 작동한다 [1][2]. 동일한 UUID를 가진 수정자가 같은 속성에 중복 적용되면 가장 최근에 적용된 것만 유효하다 [1].
규칙
속성은 네임스페이스가 붙은 식별자로 구분되며 각 속성마다 기본값·최솟값·최댓값이 정의되어 있다 [2]. 대부분의 속성은 모든 생명체 엔티티에 공통으로 존재하지만 일부는 특정 엔티티 유형에만 적용되거나 해당 유형에서만 기본값이 다르다 [1][2]. 수정자는 이름·수량·연산·UUID를 가지며 이름은 동작을 정의하지 않고 연산이 동작을 결정한다 [1][2]. 연산은 세 가지가 있다 [1][2].
- add (연산 0): 현재 속성값에 수정자 수량을 더한다 [1][2]. 예: 기본값 3에 {Amount:2, Operation:0}과 {Amount:4, Operation:0} 적용 시 9가 된다(3+2+4) [1].
- multiply_base / add_multiplied_base (연산 1): 현재 속성값에 (1 + 전체 수정자 수량의 합)을 곱한다 [1][2]. 예: 기본값 3에 {Amount:2, Operation:1}과 {Amount:4, Operation:1} 적용 시 21이 된다(3 × (1+2+4)) [1].
- multiply / add_multiplied_total (연산 2): 각 수정자마다 현재 속성값에 (1 + 해당 수정자 수량)을 순차적으로 곱한다 [1][2]. 예: 기본값 3에 {Amount:2, Operation:2}과 {Amount:4, Operation:2} 적용 시 45가 된다(3 × (1+2) × (1+4)) [1].
게임은 먼저 기본값을 X로 두고 모든 add 연산을 수행한 뒤 결과를 Y로 두고 multiply_base 연산을 수행하고 마지막으로 multiply 연산을 순차적으로 수행한다 [1][2]. 최종값은 속성의 최솟값·최댓값 범위 내로 제한된다 [1][2].
구성 요소
주요 속성 목록
- 공통 속성 (모든 생명체): 최대 체력, 이동 속도, 추적 범위, 넉백 저항, 공격 피해, 방어력, 방어 강도, 점프력, 중력, 낙하 피해 배율, 안전 낙하 거리, 크기, 마찰 계수 수정자, 공기 저항 수정자, 튀김 정도, 연소 시간 배율, 폭발 넉백 저항, 이동 효율, 수중 이동 효율, 디딤 높이, 산소 보너스, 최대 흡수, 이름표 거리, 네임플레이트 점수 거리, 카메라 거리, 웨이포인트 수신 범위, 웨이포인트 송신 범위, 몹 유혹 범위 [2].
- 플레이어 전용 속성: 공격 속도, 블록 파괴 속도, 블록 상호작용 범위, 엔티티 상호작용 범위, 행운, 채굴 효율, 잠행 속도, 수중 채굴 속도, 휩쓸기 피해 비율 [2].
- 말 전용 속성: 문서에 별도 분류로 명시됨 [1].
- 앵무새·꿀벌 전용 속성: 문서에 별도 분류로 명시됨 [1].
- 좀비 전용 속성: 좀비 강화 — 좀비, 드라운드, 허스크, 좀비 주민, 좀비화 피글린, 프로스트바이트(예정)에 적용 [2].
- 미확인 속성 속성: 게임이 알 수 없는 속성 이름을 만나면 기본 속성(최솟값 0, 최댓값 1.7×10³⁰⁸, 기본값 0)을 적용한다 [1].
수정자 출처 (바닐라 기준)
- 명령어:
/attribute명령어로 특정 수정자 추가·제거 가능 [1][2]./give,/summon의 NBT 태그(AttributeModifiers,Attributes)로 아이템·몹에 속성 부여 가능 [1]. 슬롯(mainhand,offhand,head,chest,legs,feet) 지정 가능 [1]. - 아이템 컴포넌트:
attribute_modifiers컴포넌트로 장착 시 자동 적용, 해제 시 제거 [2]. 바닐라 무기와 갑옷이 사용 [2]. - 마법 부여: 마법 부여 속성 효과로 장착 시 자동 적용 [2]. 슬롯별 ID 부여 [2].
- 유황 큐브 원형: 특정 아이템을 주면 자동 적용, 회수 시 제거 [2].
- 하드코딩된 수정자: 데이터 팩·컴포넌트와 무관하게 게임 코드에서 직접 적용 [2].
등장 장소·조건
- 모든 생명체 엔티티: 공통 속성 기본 보유 [2].
- 플레이어: 플레이어 전용 속성 추가 보유 [1][2].
- 말: 말 전용 속성 보유 [1].
- 앵무새·꿀벌: 앵무새·꿀벌 전용 속성 보유 [1].
- 좀비류(좀비, 드라운드, 허스크, 좀비 주민, 좀비화 피글린, 프로스트바이트): 좀비 강화 속성 보유 [2].
- 명령어 사용 시: 치트 권한이 있는 환경에서
/attribute,/give,/summon으로 임의 속성·수정자 적용 가능 [1][2]. - 장비 착용 시:
attribute_modifiers컴포넌트가 있는 아이템(무기, 갑옷 등)을 해당 슬롯에 착용하면 자동 적용 [2]. - 마법 부여 아이템 착용 시: 해당 마법이 부여된 아이템을 지정 슬롯에 착용하면 자동 적용 [2].
- 유황 큐브에 아이템 제공 시: 원형 정의에 맞는 아이템을 주면 자동 적용 [2].
- 상태 효과 부여 시: 해당 효과가 있는 동안 하드코딩된 수정자 적용 [2].
- 게임 로직상 조건 만족 시: 좀비 공격 시 강화 좀비 소환 확률 등 특정 상황에서 하드코딩된 수정자 적용 [2].
공략편집이의 제기
명령어로 속성 적용하기
/give 명령어에 AttributeModifiers 태그를 추가해 아이템에 속성 수정자를 부여할 수 있다. 네더라이트 검에 공격력 20(하트 10개) 추가 피해를 주는 수정자를 붙이려면 Operation을 0(add)으로 설정한다. Operation을 1(multiply_base)로 바꾸면 기본 공격력에 곱셈 방식으로 적용된다. [1]
/give @s netherite_sword{AttributeModifiers:[{AttributeName:"generic.attack_damage", Name:"generic.attack_damage", Amount:20.0, Operation:0, UUID:[I; 42853, 1689024593, -201178, -1559272105]}]} 1 [1]
소환 명령어로 몹의 기본 속성 값을 변경할 수 있다. 좀비의 추적 범위(Follow Range)를 기본 40블록에서 100블록으로 늘리려면 Base 값을 100.0으로 지정한다. [1]
/summon zombie ~ ~ ~ {Attributes:[{Name:"generic.follow_range", Base:100.0}]} [1]
아이템의 장착 슬롯을 지정해 특정 슬롯에서만 수정자가 작동하게 할 수 있다. Slot 값은 mainhand, offhand, head, chest, legs, feet 중 하나를 사용한다. 다이아몬드 도끼를 주손에 들 때만 공격력 20을 추가하려면 Slot을 mainhand로 설정한다. [1]
/give @p diamond_axe{AttributeModifiers:[{Slot:"mainhand", AttributeName:"generic.attack_damage", Name:"generic.attack_damage", Amount:20.0, Operation:0, UUID:[I; -192596, -61963, -161679, -10288428]}]} 1 [1]
방패에 공격 속도 수정자를 부여해 1.8 버전 스타일의 공격 속도(초당 1.8회)를 1.9 이후 버전에서 구현할 수 있다. Amount를 1000.0으로, Slot을 offhand로 설정한다. [1]
/give @s shield{Unbreakable:1,AttributeModifiers:[{Slot:"offhand", AttributeName:"generic.attack_speed", Name:"generic.attack_speed", Amount:1000.0, Operation:0, UUID:[I; -110663, 103297, -1423577, 206238]}]} 1 [1]
1.16 버전부터 /attribute 명령어로 엔티티의 속성 기본값을 직접 조작할 수 있다. 플레이어의 행운(Luck) 속성을 1024로 설정하면 낚시로 보물 등급 아이템을 거의 매번 획득할 수 있다. [1]
/attribute @p minecraft:generic.luck base set 1024 [1]
수정자 연산 이해하기
수정자 연산(Operation)은 세 가지가 있다. add(0)는 기본값에 수치를 더한다. 예: 기본값 3에 Amount 2, 4인 add 수정자 두 개를 적용하면 3 + 2 + 4 = 9가 된다. [1]
multiply_base(1)는 기본값에 (1 + 모든 multiply_base 수정자 Amount의 합)을 곱한다. 예: 기본값 3에 Amount 2, 4인 multiply_base 수정자 두 개를 적용하면 3 × (1 + 2 + 4) = 21이 된다. [1]
multiply(2)는 현재 값에 (1 + 각 수정자 Amount)를 순차적으로 곱한다. 예: 기본값 3에 Amount 2, 4인 multiply 수정자 두 개를 적용하면 3 × (1 + 2) × (1 + 4) = 45가 된다. [1]
게임은 내부적으로 기본값 X를 설정한 뒤 모든 add 연산을 수행해 X를 갱신하고, Y = X로 둔 뒤 모든 multiply_base 연산을 수행해 Y를 갱신하고, 마지막으로 모든 multiply 연산을 수행해 최종 값을 구한다. [1]
UUID 중복 방지
수정자 UUID는 무작위로 생성해 다른 수정자와 겹치지 않게 해야 한다. 같은 UUID와 같은 속성을 가진 수정자는 중첩되지 않고 가장 최근에 적용된 것만 유효하다. [1]
바닐라 수정자 참고
바닐라 게임에서 사용되는 수정자 이름과 값은 데이터 팩이나 위키 문서에서 확인할 수 있다. 일부 UUID는 고정 문자열로 정의돼 있고 일부는 생성 시마다 달라진다. [2]
명령어로 수정자 추가·제거
/attribute 명령어로 특정 엔티티의 속성에 수정자를 추가(add), 제거(remove), 값 설정(base set)할 수 있다. 플레이어가 아닌 엔티티는 /data 명령어로도 NBT를 직접 편집해 수정자를 다룰 수 있다. [2]
아이템 컴포넌트로 자동 적용
아이템의 attribute_modifiers 컴포넌트에 수정자 목록을 정의하면 해당 아이템을 특정 슬롯에 장착할 때 자동으로 수정자가 적용되고 벗을 때 제거된다. 바닐라 무기와 방어구 모두 이 방식을 사용한다. [2]
마법 부여로 수정자 부여
마법 부여의 attribute 효과를 사용하면 마법이 부여된 아이템을 장착했을 때 수정자가 자동으로 추가되고 해제된다. 마법 부여 ID 뒤에 슬롯 이름이 붙어 구분된다. [2]
황 큐브 원형으로 수정자 관리
황 큐브(유황 큐브) 원형(archetype) 정의에 따라 특정 아이템을 주면 수정자가 추가되고 회수하면 제거된다. [2]
하드코딩된 수정자
상태 효과(Effect) 적용 시 자동으로 추가되는 수정자 등 게임 코드에 하드코딩된 수정자가 있다. 상태 효과의 경우 최종 속성 값에 효과 증폭도(amplifier + 1)를 곱한 값이 적용된다. 좀비 계열(좀비, 드라운드, 허스크, 좀비 주민, 좀비화 피글린, 프로스트바이트)에게는 강화 좀비 소환 확률 등 특수 수정자가 하드코딩돼 있다. [2]
최종 값 제한
모든 수정자 연산이 끝난 뒤 최종 값은 속성별 최소·최댓값 범위 내로 제한(clamp)된다. [2]
이 문서는 공식 공개 자료 3개를 AI가 문단별로 새로 정리하고, 문단마다 별도의 AI 검수를 거친 초안입니다. 자료에 확인되지 않는 내용은 적지 않았습니다. 패치 내역과 관련 문서는 아래에 따로 모아 보여 줍니다. 세부 설정과 최신 수치는 출처를 확인하세요. 일부 내용은 CC BY-NC-SA 3.0 라이선스 자료를 바탕으로 새로 썼으며, 같은 조건이 이 문서의 해당 부분에 적용됩니다. [1]
