이 블로그 검색

2020년 6월 12일 금요일

랑그릿사2 스펠 정리.

스펠 데미지 정리 

LvMRngMLv
1
2+1
3
4+1+1
5
6+1
7
8+1+1
9
10+1

Reference : https://strategywiki.org/wiki/Langrisser_II/Spells

랑그릿사의 마법시스템은, 마법 사용자의 레벨만 가지고 따진다. 
위저드가 더 강한마법을 쓴다거나, 나이트가 마법이 약하다거나 그런건 없다.

이 레일이란 말은 Tier까지 포함한 말이다. 

표에서 나오는 것 처럼, LV이 4, 8에 도달할 때 마다 범위마법의 범위가 1씩 늘어난다. 마법 사거리까지 포함하는지는 나중에 확인 후 고친다. 

또 마법LV인 MLV이 2,4,6,8,10에 도달할 때, 1씩 늘어난다. 

또  Tier에 따라서 +1씩 또 늘어난다고 한다. 하지만 지금 참조한 페이지는 통합 되어 있다. 

예를 들어 워락은 나이트,+0, 실버나이트 +1, 하이랜더 +2 나이트마스터 +3
이런 식이다.  

소환수들과 용병들은, 개발자가 제대로 고려를 하지 않아서, 데몬로드 같은 친구들은 1티어라... 마법 범위가 그 모양이다. 그래도 이 친구들도 레벨은 가지고 있으니, 최종 레벨이 되면 약간의 보너스는 얻는다. 
 Spell    Formula   Range  Cost Special (MDmg)
매직에로우0 + MLv*2  5 1 
 Blast20 + MLv  2 10 
 Fireball3+ MLv  4/3 2 
 Meteor10 + MLv  10/2 8 
 Thunder5 + MLv  7 4물위의 적 +1 보너스 
 Tornado4 + MLv*2  0/3 2비병에게 +1보너스 
 Blizzard4 + MLv*2  0/4 3 
 Earthquake10 + MLv*2  0/5 12 공중유닛 무피해.

매직에로우는 파이어볼보다 강할 수 있다. 다만 그래봐야 큰 차이는 나지 않는다. 

블라스트는 매우 강력한 대신, MLv에 따른 차이가 거의 없다. 

파볼은 가장 기본적인 범위 마법이지만, 매직에로우보다 기본 데미지가 강하다.  뭔가 게임 설계가 잘못 되었다. 

메테오는 강력한 기본데미지를 가지고 있는 범위 마법이다. 

썬더는 물위에 유닛에게 더 많은 데미지를 주는 부대단위 마법이다. 극초반에는, 파이어볼보다 더 많은 데미지를 줄 때가 있다. 

토네이도는 시전자 중심으로 사용하는 마법이다 보니, MLv추가 공식이 조금 다르다. 배우기 어려운 것이 단점이다.  범위가 블리자드보다 조금 작고, 비병에게 추뎀이 들어가서 뭔가 또 설계가 잘못되었다는 것을 알 수 있다. (마나소모가... 작음.)

블리자드는 토네이도보다 마나는 많이 쓰지만,  같은 데미지를 준다. 이상한 마법이지만, 쉽게 배울 수 있다. 설계미스인 것 같은 느낌이다. 

어스퀘이크는 메테오와 같은 기본데미지에 시전자 중심 마법특징인 추가데미지를 가진 마법이다. 사용시 노포병은 죽었다고 봐야한다. 


실제 적용 

실전에는 저 데미지가 그대로 들어가는 것이 아닌, 각 유닛의 마법 방어력, 레지스트 마법, 착용 아이템에 따라 데미지가 변화되어 적용된다. 

유닛별 기본 마방인 MDF
그리고 보너스 MDF

최종 마법 방어력은 다음과 같다 . 

total MDF = MDF + bonus MDF  x 2 
이 값이 100을 넘으면, 마법에 완전 면역을 얻게된다. 

만약 [0,100) 사이의 값이라면 다음과 같은 공식을 적용한다. 

=Max( Integer((( 100 - (total MDF) ) * MAT ) / 100 ) + MDmg , 1 ) 

면역이 아니라면 무조건 1의 데미지는 입는다. 위에 Integer는 내림연산으로 정수값만 얻는 것이다. 마법 저항력이 1이라도 있으면, 데미지를 1은 줄일 수 있다. 

버그로 인해, 아뮬렛을 착용한 지휘관은 100을 넘어도 아래식만 적용해 1의 데미지를 입는다. 


변수 

Resist Spell : 비용2 사거리 8 부대단위, MDF+25


2020년 5월 26일 화요일

VIM 환경을 위한 fcitx 설정. ESC를 누르면, 비활성화 되도록,


fcitx는 비활성화 상태가 1번 IM이다.

데스크탑에서는 "미국 영어(국제, AltGr DeadKey포함)"으로
랩탑에서는 "미국 영어" 또는 "한국어 104key"로 설정한다.



두번째 칸은 원하는 한글입력기로 설정한다. 나 같은 경우는 신세벌 P2방식이다.
(갈마들이를 이용해, 공세벌식 비스무리한걸 숫자키 영역 침범 없이 해결)




한글을 입력하다 보면, vim에서 사용하는 i, o,v, y, p 같은 키들을
노말모드에서 사용하려고 할 때,

한글이 나와서 낭패를 보는 일이 많다.


이것을 해결하는 방법은 여러개가 있다.

1. vim상에서 자체적으로 한글입력을 탑재하게 하여 입력모드시에만
    IM이 작동하도록

2. vim에서 esc버튼을 누르면, xim에 IM disable message를 보내도록 하는 방법

3.  사용하는 IM자체적으로 ESC를 누르면 그렇게 되도록.


아래는 삽질의 결과물들이다.  그냥 2번으로 하자.  vim8이나 nvim을 쓰면서,  python3-dbus 와 같은 패키지가 필요할 것이다. 쉘에다가 바로 보내는 것도 해봤는데, 화면에 글자가 안보이는 등 이상한 결과들이 나온다. 그리고 먼가 filter로 사용할 때 말고는, 제대로 작동이 되는지도 의문이 생겨서 python으로 dbus call을 하도록 한다.

.vimrc에 다음과 같이 입력한다.


흠 특수문자들이 날아가서 그림으로 보이도록 하겠다. 를 쓰면 작업이 많음.


아래쪽은 삽질의 기록이다.

2020년 2월 11일 화요일

한눈에 보는 Blending mode 색섞기. (on GIMP)



Top Layer


Bottom Layer


일단 다음처럼 두개의 레이어를 만들고, 여러 효과를 넣어본다.
편의상 여기서는 integer 8bit 로만 나타내며 0-255로 표현한다.
gimp 최신버전 코드를 깟는데 float로 계산한다.

가장 많이 쓰는 Screen 과 overlay 그리고 Multiply(곱)
Screen
Overlay

Multiply












in이 top이고 layer가 바닥이다. 
comp[c] = in[c] * layer[c];

0-1값으로 생각하면 쉽게 어두워짐을 알 수 있다.  이 다음부터는 그림만가지고 이야기한다.

그림은 많이 쓰이는 순서이지만 설명은 Multiply부터 하는 것이 쉽다.



comp[c] = 1.0f - (1.0f - in[c]) * (1.0f - layer[c]);
Screen은 반전 후 곱한 색상을 반전하는 것과 같다.  반대로 좀 더 밝아 짐을 볼 수 있다.


Overlay부터는 top layer와 bottom layer가 서로 동등하지 않다. 일단 normal모드 부터 동등하지 않으므로 이상한 것은 아니다.
if (in[c] < 0.5f)
      val = 2.0f * in[c] * layer[c];
else
     val = 1.0f - 2.0f * (1.0f - layer[c]) * (1.0f - in[c]);
무언가 복잡하다.  Screen과 Multiplay의 중간 느낌이다.
아직 메뉴얼은 그대로지만 photoshop으로 대동단결 했다.
Hard light에서 복사해오자.

Top Layer를 흰색에서 회색, 회색에서 검정 두부분으로 나누어,  어두운곳은 Multiply효과를  밝은 곳은 Screen효과를 준다. 
중간영역의 대비가 커진다. 그 결과 색상이 강해지고, 경계가 날카로와 진다.


다음은 LightenOnly와 DarkenOnly이다.
각값에서 밝은 값과 어두운 값을 취한다.
comp[c] = MAX (in[c], layer[c]);
comp[c] = MIN (in[c], layer[c]);






















다음은 Burn과 Dodge이다.

Dodge
   256 x B / { (255-T} +1 }
comp[c] = safe_div (in[c], 1.0f - layer[c]);


Burn
255- 256x (255-B)/{ T+1}
comp[c] = 1.0f - safe_div (1.0f - in[c], layer[c]);
Dodge의 반대로 작용한다.

Linear burn
그냥 덧셈이다. clipping이 될 수 있다. 
            comp[c] = in[c] + layer[c] - 1.0f;


다음은 조명 계통이다.  
Hard light, soft light, vivid light pin light 등이다. 

Hard light
 255 - (255-2(T-128)) x (255-B) /256   if T > 128
  2 x T x B                                             if T <=128

Top Layer를 흰색에서 회색, 회색에서 검정 두부분으로 나누어,  어두운곳은 Multiply효과를  밝은 곳은 Screen효과를 준다. 
중간영역의 대비가 커진다. 그 결과 색상이 강해지고, 경계가 날카로와 진다.
 if (layer[c] > 0.5f)
{
     val = (1.0f - in[c]) * (1.0f - (layer[c] - 0.5f) * 2.0f);
     val = MIN (1.0f - val, 1.0f);
 }
 else
{
      val = in[c] * (layer[c] * 2.0f);
      val = MIN (val, 1.0f);
}
 Overlay와 동등한 식이지만, 기준이 bottom layer이다. in <-->layer를 하면, 같다. xy축을 바꾸면 바로 알 수 있다. 
Soft light
이름과 달리 Hard light와는 별관련이 없다.  Screen Mode와 매우 유사하다.

멏몇 버전의 GIMP에서는 Screen과 같다. ( 계속 다시 옜날로 가는 경우가 있나보다. )

스크린된 Pixel을 S라고 하자. 

S= 255 - (255-T) x (255-B) / 255

{  (255-B)xT + S} x B / 255   이다. 다만 홈페이지에 오류가 있는 것으로 보인다. 앞항도 255로 나누어야한다. 

무언가 식만 보고 이해하기는 어렵다. 그리고 제대로 적용될지 확신할 수 없기에 쓰면 안될 것으로 보인다. 나머지는 gimp의 코드를 까봐야할 것 같다. 
일단 여기까지 작성하자. 

gfloat multiply = in[c] * layer[c];
gfloat screen   = 1.0f - (1.0f - in[c]) * (1.0f - layer[c]);
gfloat val      = (1.0f - in[c]) * multiply + in[c] * screen;

상위 픽셀에 따라, multiply와 screen을 얼마나 섞을지 정한다. 


Vivid light
if (layer[c] <= 0.5f)
{
     val = 1.0f - safe_div (1.0f - in[c], 2.0f * layer[c]);
     val = MAX (val, 0.0f);
}
else
{
     val = safe_div (in[c], 2.0f * (1.0f - layer[c]));
     val = MIN (val, 1.0f);
}

Overlay처럼 구간을 나누어, dodge와 burn을 적용한다.

Pin light

이것은 lighten과 darken을 조합하는 것 같다.
 if (layer[c] > 0.5f)
                val = MAX(in[c], 2.0f * (layer[c] - 0.5f));
              else
                val = MIN(in[c], 2.0f * layer[c]);



Linear light

if (layer[c] <= 0.5f)
     val = in[c] + 2.0f * layer[c] - 1.0f;
else
     val = in[c] + 2.0f * (layer[c] - 0.5f);
그렇다.




더하기 .

comp[c] = in[c] + layer[c];






빼기, 차이 






2019년 9월 28일 토요일

히어로즈 메뉴얼 정리된거 보다가 혹했으나 아닌 내용.


망각 마법이 걸린 유닛은 근거리 패널티가 없는 유닛도 생긴다고 적혀 있으나, 컴플리트 버전, hota1.5.4에서는 그렇지 않다는 것을 확인함.

타이탄한테 걸어보았으나... 그런거 없었음.

관련 글보니 영문커뮤니티에 관련 내용이 있으나, 거긴 법사할배로 한 내용이라 알아볼 예정.

2019년 9월 10일 화요일

음 ??? 도대체 USB-MIDI 인터페이스는 왜 만든거야??"?

https://www.gearslutz.com/board/electronic-music-instruments-and-electronic-music-production/1112683-do-usb-midi-interfaces-send-midi-faster-than-midi-spec-2.html

단순히 입출력을 한 선으로 처리하려고 한건가...


사람들이 USB랑 DIN 인터페이스 속도차이를 가지고 막 이야기를 하고 있는데


usb-midi 스펙 작성자가 나와서 결론을 내주는데...



daw상에서 미디로 떠있는 친구들은 호환성을 위해서 31.25kbit이상의 패킷 전송을 안한다고 해버리는구만...




뭐 그래서인지... DAW상에서 MIDI가 아니라 그냥 장치이름으로 바로 인식해서 쓰여지기는 하더만... 이게 무슨 짓거리인지...

USB를 쓰는 이득이 없는데 왜 USB???

MIDI 2.0에서는 이게 개선되는것은 맞는건가???



아니면 작성자도 제대로 모르는건가???

과연 DIN MIDI 정도의 속도로 MIDI Wind Instrument의 데이터를 처리할 수 있나??

뭐여

2019년 7월 8일 월요일

2019년 6월 28일 금요일

2019년 6월 27일 - 뉴스.

양현석은 어떻게 내사종결될 것이라는 사실을 알고 있었을까???

블러핑일까? 경찰에서 내부정보가 새고 있는 것일까???
http://imnews.imbc.com/replay/2019/nwdesk/article/5381596_24634.html

27일 양현석은 조사 받으러 나갔고, 버닝썬 관련 법원 출석이 있었지만 28일 새벽인 현재 YG나 버닝썬관련 기사가 daum 연예 많이 본 뉴스 1-30위까지에 '최종훈 정준영 직업은 무직 '으로 4위에 올라간 것 말고 없다. 

  여기는 차트를 볼 때도, 의심이 갔는데, 조회수를 만지는 어떤 방안을 가지고 있는게 아닐까라는 생각을 한다. 주어는 daum kakao일 수도 YG일 수도 있고 주어가 심지어 없을 수도 있다.

송송 커플 이혼 조정 이야기 

태양의 후예를 안봤고, 송중기 나오는 드라마는 본 적 없고, 송혜교 나오는건 순풍산부인과 밖에 없어서, 관심이 좀 덜 했는데, 하루 종일 언론에서 때려대니까? 강제로 관심이 가게 된다. 이거 뭐임??? 
  거기다, 박보검까지 시끄럽다. 아 박보검 나온 것도 본적이 없다. 

정준영 최종훈 법원 출석 

C.N.Blue 이종현하고, 빅뱅 승리는 왜?? 같이 법원에 출석하지 않았을까??

승리는 조사라도 받았다는 보도가 한달전에 있었지만, 이종현은 군검찰에 수사를 받았는지? 검찰에 수사를 받았는지에 대한 기사가 없다. 

아니 북한 통통배가 강원도로 내려와서, 시끄러운 와중에도, 언론을 잠재우는 카드로 이종현을 사용하지 않은 것을 보면, 그냥 조용히 군 안에서 문제를 지우려는게 아닐까 의심이 든다. 

한국당, 女당원 '바지 내리고 엉덩이춤' 논란..여야 "저질 행태"  

흔한 자유당이 자유당한 사건이다. 

가장 많이 본 글