어제 필기시험을 연장 5시간정도 보고 곧바로 운동 하다 보니까 무언가를 할 시간이 없어서 따로 바로 쉬었습니다.

그러다보니 일지를 적지 못했습니다.

 

오늘은 Animation FSM을 살펴보며 Notify를 사용하지 않거나,

사용하더라도 Animation을 사용하는 방법이 있는지 찾아보았습니다.

결과적으로, Exit from Climb Animation은 Montage로 제작하여 Notify Event를 받아야 할 것 같습니다.

 

우선, FSM 변경으로 문제가 해결이 가능한지 고려를 해보았는데,

현재 Sub-FSM으로 묶여 있는 FullBodyMotion 밖에 복잡한 조건문을 받아 Blending 해야 했습니다.

그리고 이런 와중에서도 Animation 종료 시점은 확인해야 하기에 Notify 문제를 해결하지 못했습니다.

 

그 다음은 Animation에서 Notify Event를 받을 수 있는지 확인하는 것이었습니다만, 

이 역시 불가능 한 것 같습니다.

 

결국 이러나 저러나 Notify는 써야 하는데, 이걸 쓰려면 Montage를 써야 할 것 같습니다.

Climb 종류별로 Sub-FSM을 받는데, 이를 blend by bool로 분류하는 것을 생각 중입니다.

한가지 걱정인 것은 예전에 Blend by -를 여러개 중첩해서 쓰면 문제가 발생할 수 있다고 예전에 본 기억이 있습니다.

그리고 Montage와 Notify를 사용한지 굉장히 오래되어서 좀 걱정입니다.

 

오늘은 이왕 이렇게 된거 좀 더 쉬고, 월요일에 참고자료 보면서 만들어보려 합니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.06.25 개발일지  (0) 2020.06.25
20.06.22 개발일지  (0) 2020.06.22
20.06.15 개발일지  (0) 2020.06.17
20.06.15 개발일지  (0) 2020.06.15
20.06.11 개발일지  (0) 2020.06.11

여러 테스트케이스를 추출해보고 값을 비교해 보았으나, 틀린 점을 발견하지 못했습니다.

물론 제출 시 계속 통과도 하지 못했습니다.

그래서 다른 사람의 답안을 보고 다시 작성하였습니다.

 

더보기
#include <iostream>
#include <array>
#include <algorithm>

using namespace std;

int main()
{
    int N = 0, temp = 0;
    array<int, 1000> Series;
    array<int, 1000> Sublength;
    Series.fill(-1);
    Sublength.fill(1);

    cin >> N;
    for (int i = 0; i < N; ++i)
    {
        cin >> temp;
        Series[i] = temp;
    }

    int sol = 1;
    for (int i = 0; i < N; ++i)
    {
        Sublength[i] = 1;
        for (int j = 0; j < i; ++j)
        {
            if (Series[i] > Series[j])
            {
                Sublength[i] = (Sublength[i] > Sublength[j] + 1) ? Sublength[i] : (Sublength[j] + 1);
            }
        }
        sol = (sol > Sublength[i]) ? sol : Sublength[i];
    }

    cout << sol << endl;

    return 0;
}

자신보다 앞의 있는 숫자가 자신보다 작을 경우,

그 숫자의 sublength + 1과 자신의 현재 sublength중 큰 수를 저장합니다.

그리고 현재의 solution과 비교하여 solution보다 클 경우, 그 값을 solution으로 저장합니다.

 

정석적인 DP 풀이인데, 이걸 보니까 제가 짰던 것이 DP가 아니라 Greedy Algorithm이었던 것 같습니다.

그 와중에 예외를 찾지 못했다는 점이 한탄스러울 뿐입니다.

오늘도 문제가 해결되지는 않았지만, 몇가지 확인해볼 수는 있었습니다.

 

1. State 이동 조건을 변경하였습니다.

원래는 ClimbTrigger의 Overlap 여하에 따라 이동 여부를 확인했는데,

생각해보니 이에 따라 Climb 상태에서 탈출할 때 발생하는 몇몇 trigger 값의 변경이 있었습니다.

그래서 이들 중 하나를 조건으로 잡았습니다.

 

2. 결국은 조건의 문제였습니다.

Exit State에 하나의 Animation만 붙여보기도 했고, Exit 발생 시 Pawn을 teleport 시켜보기도 했습니다만

Animation이 정상적으로 재생되지 않고 있습니다.

State 안 조건문 문제는 아닌 것 같습니다.

 

이렇게 적어두고 잠깐 생각을 해보니, Climb 상태에서 빠져나오는 순간 Climb 상태에서 빠져나옵니다.

이 때 FullBodyMotion도 false가 되는데, 이 때문에 뒤에 붙은 Animation이 재생되지 않는 것일 수도 있겠습니다.

 

금요일에 다른 회사 온라인 테스트가 있는 관계로, 내일은 개발을 하지 못할 것 같습니다.

토요일에 Notify를 사용하거나 하여 Animation 재생이 끝난 후에 ExitClimb가 발생하도록 구상을 해볼 예정입니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.06.22 개발일지  (0) 2020.06.22
20.06.20 개발일지  (0) 2020.06.20
20.06.15 개발일지  (0) 2020.06.15
20.06.11 개발일지  (0) 2020.06.11
20.06.08 개발일지  (0) 2020.06.08

+ Recent posts