-
[일반] 게임 프로그래머 분들 피격판정 어떻게 구현하시나요?2019.04.07 PM 08:48
ㅈㄱㄴ
지금 애니매이션 에셋으로 사서 이렇게 만들었구요
1대1 격투게임 심플하게 구현할려고 하는데 경험있는 프로그래머분들은 피격 판정을 어떻게 구현하실까 궁금해서 글올립니다.\
지금 생각하는게
애니매이션 이벤트로 타격이 발생할때 istrigger 콜라이더 활용해서 tag로 공격 종류 식별
이렇게 할까 생각하는데 경력있으신 프로그래머분의 다른 방식이 있을까 궁금해서 질문 올립니다.
격투게임이 베이스여서
격투게임 처럼 선딜, 후딜 개념을 구현해야해서 상시 타격 콜라이더를 활성화 시키는건 힘들거 같습니다.
댓글 : 13 개
- JJOREG
- 2019/04/07 PM 08:58
저 애니메이션과 동일한 길이의 애니메이션을 만들어서 애니메이터에 넣고 선딜과 후딜사이에 event함수로 컬라이더를 on off시킬수 있습니다.
- JJOREG
- 2019/04/07 PM 08:59
혹은 저 애니메이션 자체를 편집해서 중간 이벤트로 컬라이더 on off를 구현할수 있을듯 하네요.
- 돼지 저금통
- 2019/04/07 PM 09:01
애니매이션 이벤트 말씀하시는거 맞죠?
- 多樂房
- 2019/04/07 PM 09:07
프로그래머는 아니지만 애니메이션에서 어택박스를 언제 생성하고 얼마간 지속 될 것인지 설정. 중심 기준으로 할 것인지 본에 어태치 할 것인지 설정 하고, 판정은 피격자의 피격박스에 이 어택 박스가 닿았을때 처리하고 있어요
- 돼지 저금통
- 2019/04/07 PM 09:09
피격박스 보통 얼마나 지속하나요? 3프레임??? 1프레임은 너무 빡빡할거 같은데..
- 多樂房
- 2019/04/07 PM 09:19
대전 액션게임에서 대부분 피격박스는 항상 온입니다. 단 스파의 리버설 승룡권처럼 잠깐동안 무적 판정을 줄때는 꺼두지요.
- 多樂房
- 2019/04/07 PM 09:19
결론적으로 밸런싱 영역인데 의도할때만 꺼둔다 정도가 되겠네요 :)
- 돼지 저금통
- 2019/04/07 PM 09:19
아 피격박스가 아니라 타격박스를 얼마나 지속하시나요?
- 多樂房
- 2019/04/07 PM 09:26
그건 밸런싱 영역입니다. 의도하시는 공격의 효과만큼 유지해야겠죠. 그래서 대전액션게임들 보면 가끔 판정이 엄청 오래남아 있는 경우가 있는데, 그게 의도적으로 프레임을 길게 만든것이니까요.
- 多樂房
- 2019/04/07 PM 09:31
스킬에 따라 어택박스가 크고, 작고, 길게 지속되고, 짧게 지속되고, 지속되면서 타격을 초기화하는 형태등은 밸런싱 영역이라고 생각되니 스킬에 의도에 따라 구현하시면 될 것 같습니다. 저 위의 사진 기준이라면 무릎에서 발이 펴질때 생성 시켜서 내려오기 시작할 때 없애주는게 맞겠네요!
- 돼지 저금통
- 2019/04/07 PM 09:34
좋은말씀 감사합니다
- semhip
- 2019/04/07 PM 10:03
히트 박스는 잘 끄진 않아도 됩니다. 대신 hit id 개념이 필요하고 상태 머신 같은 부분이 들어가면 좋습니다.
상대의 A공격에 내가 히트 됐을 때 on trigger 판정을 이용해 히트됐다고 판단해 버리면
공격이 긴 시간 지속 된다거 또는 모션의 방향에 따라 on trigger가 여러 번 호출 될 가능성이 있기에
각 공격 모션에 따른 hit id로 추가 판정이 필요합니다. 또 게임마다 다르지만 한 번의 공격에 다단히트의 개념을 넣는다거나 했을 경우에 hit id를 증가시키거나 하면 공격의 리셋 효과를 줄 수도 있습니다.
상대의 A공격에 내가 히트 됐을 때 on trigger 판정을 이용해 히트됐다고 판단해 버리면
공격이 긴 시간 지속 된다거 또는 모션의 방향에 따라 on trigger가 여러 번 호출 될 가능성이 있기에
각 공격 모션에 따른 hit id로 추가 판정이 필요합니다. 또 게임마다 다르지만 한 번의 공격에 다단히트의 개념을 넣는다거나 했을 경우에 hit id를 증가시키거나 하면 공격의 리셋 효과를 줄 수도 있습니다.
- 돼지 저금통
- 2019/04/07 PM 10:11
히트 id개념이라는게
스크립트로 각 공격 속성을 만들라는 뜻인거죠???
스크립트로 각 공격 속성을 만들라는 뜻인거죠???
user error : Error. B.