이 블로그 검색
2022년 9월 6일 화요일
kdenlive 22.08 소식. 드디어 비디오 매트파일을 지원한다고 하네요...
2022년 9월 2일 금요일
질병기록실) 코로나19 - 격리일 2022-08-24~~30.
2022년 4월 18일 월요일
랑그릿사2 리버싱 - PC판 마법적용 방식(디버프 확률 관련 작동)
걸릴 확률이 존재하지 않는 버프, 디버프 마법은 제외하고 확률로 걸리는
마법들을 설명합니다.
존, 참, 슬립, 뮤트 등이 있습니다. 참의 경우에는 제 설명에 오류가 있을 가능성이 매우 큽니다.
코드가 굉장히 복잡하기 때문입니다. 어떤진영인지 원래 어떤 진영인지 이런 정보들이 마구잡이로
들어있기 때문에 매우 복잡합니다.
첫번째 포스트에서도 사용했던, 0x40ffd3 Apply_Spell_To_Target이라 명명한, 함수에서
switch(마법타입) case문을 통해서 관찰하였습니다.
case Mute:
실패확률 | |||||
공격자 방어자 레벨차 | |||||
마방 | -8 | -4 | 0 | 4 | 8 |
20 | 0.515 | 0.356 | 0.198 | 0.040 | 0.000 |
40 | 0.713 | 0.554 | 0.396 | 0.238 | 0.079 |
60 | 0.911 | 0.752 | 0.594 | 0.436 | 0.277 |
80 | 1.000 | 0.950 | 0.792 | 0.634 | 0.475 |
99 | 1.000 | 1.000 | 0.980 | 0.822 | 0.663 |
성공확률 | |||||
공격자 방어자 레벨차 | |||||
마방 | -8 | -4 | 0 | 4 | 8 |
20 | 0.485 | 0.644 | 0.802 | 0.960 | 1.000 |
40 | 0.287 | 0.446 | 0.604 | 0.762 | 0.921 |
60 | 0.089 | 0.248 | 0.406 | 0.564 | 0.723 |
80 | 0.000 | 0.050 | 0.208 | 0.366 | 0.525 |
99 | 0.000 | 0.000 | 0.020 | 0.178 | 0.337 |
case zone:
case sleep:
case charm:
참에 대해 조금더 들여다 보자(자가치유코드 다시보기)
2022년 4월 14일 목요일
2022년 남은 기한 달력...
https://drive.google.com/file/d/1j9M9qYr3VK_VSo-1SexAQYtUHXWHKvxH/view?usp=sharing
디자인은 개판이지만... svg파일을 업로드 했으니... 색상은 본인이 직접 바꾸시면 되겠죠.
이게 저의 색상 감...입니다. 예술적인 감각이 많이 부족하죠.
2022년 4월 13일 수요일
랑그릿사2 리버싱 - PC판 마법적용 방식(버프,디버프마법 턴시작시 자가회복코드)
자가회복
부대원별 마법해제
결론
2022년 4월 12일 화요일
랑그릿사2 리버싱 - PC판 마법적용 방식
읽다간 뭔가 선행지식이 필요하다 싶으시면,
https://langrisser2.blogspot.com/2019/08/7-2.html
위 링크로 가셔서 앞부분을 학습하시기 바랍니다. 저도 저기서 많이 배웠습니다.
뭔가 바이너리가 달라서 오프셋이 서로 일치하지 않는 문제가 있지만, 게임이 통째로 바뀔 정도로
변혁이 있는건 아니기 때문에 참조하시기 충분합니다.
1. 마법 적용
오프셋 0041012c에 마법데미지 계산을 준비하는 함수가 있습니다.
https://strategywiki.org/wiki/Langrisser_II/Spells#Attack_Spells에서는 마법 방어력 아이템의 경우 x2를 적용 한다고 되어있지만, 그렇지 않습니다.저 분이 사용하신 게임과 제가 분석하는 게임이 다른 듯합니다. PC판 랑그릿사2는사실 굉장히 애매한 프로그램이라 그러려니 해주셔야 합니다.
오프셋 0040ffd3에 마법을 타겟에 적용하는 함수가 있습니다.
해당 파트는 들어가면 switch 문으로 현재 사용중인 마법을 적용하여
해당 마법 코드를 작동합니다. 타겟이 이미 정해졌기 때문인지, 포스힐1 힐1은 같은 함수를
호출합니다.
현재사용중인 마법값이 소환마법일 경우는 이미 발키리로 고정되어 있습니다.
2. 공격마법
매직에로우
블라스트
썬더
파이어볼
메테오
블리자드, 토네이도, 어스퀘이크
외국위키와 비교.
나머지 마법 데미지 공식
3. 메테오 및 어스퀘이크 (지형붕괴 로직)
4. 중요한 발견,
6. 버프마법 디버프 마법
2022년 3월 22일 화요일
HOMM3_리버싱 - 데쓰스테어 작동 로직.
일단 이 로직은, 유닛번호 체크를 해서, 강력한 고르곤에게만 작동하게 되어 있습니다.
유닛이 살아있을 때, 유닛숫자만큼 루프를 돌면서, 1-100 dice < 11 계산 즉 10%의 확률로
죽일 유닛숫자를 더합니다.
다음 죽일 유닛에 숫자와 비교를 하는 코드가 있으나 잘못 보여주고 있는 것 같군요. 일단 최대값으로
상대 유닛숫자로 제한을 겁니다.
dfsddfdfdfsdfsfsdfdf
이어서 중요한 부분이 보입니다. 고르곤의 숫자에다 +9를 더한후 10으로 나눕니다.
그러면 소수점 버림 연산이 이루어지며, 1-10은 1로 11-20은 2로 상한선 값을 얻게 됩니다.
이후 이 값으로 숫자를 바꿉니다.
죽일 유닛의 숫자가 1보다 작다면 아무것도 이루어 지지 않습니다.
-----------------------------------------------------------------------------------------------------------
이미 알려진 것과 다른 것은 없습니다. 알고 싶었던 것은 다만, 1/10을 넘어갈 때 어차피 필요 없으므로 즉시 종료하는지 아닌지에 대한 것이 었는데, 아주 무식하게 9999마리일 때, 9999번 계산을 수행한다는 사실이 추가될 뿐이죠.
마무리하기전에 헛소리를 하나 하자면 고르곤을 먹고사는 러스트 드래곤은, 산성데미지가 25로 고정이 아니라, 러스트 드래곤의 최저 최대 데미지 사이에서 주사위로 값을 뽑아 러스트드래곤 수를 곱한후 나누기 2를 하는 것이더군요. 그런데 최저 최대 데미지가 50입니다. 블레스와 저주로 이런 상황을 만들면 아주 약소한 변화가 있겠다 할 수 있겠습니다.
2021년 5월 10일 월요일
HOMM3 - Spell Fire Shield 데미지 계산식.
전투마법, 보조마법(버프) -
16 스펠포인트를 사용하며, 1 Spell Power당 1라운드로 작동한다.
Basic : 방어자가 받은 근접데미지의 20%의 데미지만큼, 공격자에게 불속성 마법데미지를 입힌다.
Spell points 소모는 Basic 부터 12이다.
Advanced : Basic과 같다. 다만 25%
Expert : Basic과 같다. 다만 30%
2021년 1월 20일 수요일
heroes community 글 번역 작업. Hero Spell 전문성 처리 서브루틴.
http://heroescommunity.com/viewthread.php3?TID=42152&pagenumber=10
Maurice의 글에서 발췌 2018년 2월 15일
2020년 10월 19일 월요일
frei0r - 오픈소스 이미지 콤포지션(트랜지션) 상세설명.(1) - Mixer2 Part1 alpha...
Frei0r
Mixer2
- ᅟAddition (더하기)
알파의 값은 두 알파의 최소 값으로 한다.
고로 항등 image에 해당하는 윗 이미지는 (0,0,0,255)로 이루어진 이미지이다.
2번 레이어의 알파는 min연산이다보니, 중간 값을 이용하기 보다는, 이진의 마스크 효과를 사용할 수 있고, 윗 레이어를 통해 닷지 효과처럼 사용한다.
그리고 중요한 점 중 하나는, 윗레이어(마스크)와 아래레이어(배경)의 교환 법칙이 성립한다는 것이다. 많은 효과들이 교환 법칙이 성립하지만, 아닌 것들도 많다. gimp의 이미지 합성 툴 가운데에도 그런 것이 있다.
그룹레이어를 사용하지 못하는 경우에 교환 법칙이 성립하는 것을 유용하게 사용할 수 있고, (서로는 순서가 상관 없지만 그 각각도 위아래가 따로 있으므로 )노드 방식의 이미지 에디터에서 연결순서가 바뀌어도 같은 경과가 나오기에 유용하다. 이제 아래부터는 그냥 교환법칙이 성립한다로 끝내도록 한다.
- Addition_alpha (알파더하기)
- Alphaatop( alpha atop)
매우 복잡하다.
일단, 결과값의 알파는 2번의 알파와 같다.
결과의 알파가 0이라면, 리소스 낭비를 줄이기 위해 모든 결과값을 0으로 한다. 이후에도 알파값을 먼저 계산하면 다 그러해서 설명하지 않는다.
0이 아닐 때는, 다음과 같은 계산을 거친다.
w1 = alpha2
w2 = 255 - alpha1
rgb_dst = [(prgb1 * w1 ) + (prgb2*w2)]/ alpha_dst
rgb_dst = rgb1*alpha1 + rgb2* [(1-alpha1)]
직관적으로 이해하기 어렵다.
2번의 알파값이 그대로 작동하므로 알파마스크처럼 사용되며,
1번의 알파값에 따라, 1,2번의 색상의 rgb 사잇값을 사용한다.
- alphain
- alphainjection (오래된 api라 1,2번이 다를 수 있음)
- alphaout
- alphaover
- alphaxor
2020년 10월 5일 월요일
남이 Natron으로 만든 Lower Third를 연습하다가 템플릿처럼 사용하는 방법을 알게 되었다.
Natron은 node 기반 opensource vfx application이다.
vfx 및 드로잉 툴들은 어느정도 발전이 되었다면, node기반 또는 레이어 기반의 형태로 나아간다.
Node기반 툴들은 Davinci resolve,(NLE) Blackmagic Fusion(VFX)이라는 걸출한 유료프로그램이 있고, Blender라는 NLE, 3D modeling, Node vfx를 지원하는 툴도 있다.
Natron은 무료이며 일단 openfx기반이라 다양한 행위를 할 수 있다고 하는데, 그게 무슨 장점인지는 모르겠다.
Natron은 일단 Fusion이라는 툴을 써본 결과로 말하자면, 아무것도 배우지 않은 백지 상태에서는 차이를 알 수 없다. 왜냐 ... Layer기반을 쓰다가 이걸 처음 만지면, 어떻게 하는지 알수가 없기에... 그러하다. 뇌에서 Layer가 아닌 모든 것들이 다 공통으로 묶인 것으로 여겨진다.
Natron Youtube Lower third 강좌를 따라해보니, Natron은 결과물 출력으로 단일영상 또는 이미지시퀀스로 처리한다.
여기까지 따라하니, 내 이름을 특정 Text대신 쓰고난 이후에,
다양한 상황에서 쓰기 어렵다는 생각이 들어, 템플릿으로 쓸 방법을 찾는다.
일단 Natron Project파일은 xml기반이라, 노가다를 하고, nodejs를 사용하면, 텍스트 기반이니 당연히 가능하다.
일단 여러 검색을 해보니, Natron을 터미널에서 사용해, 출력물을 얻는 방법이 있음을 알게 되었다.
외부 툴을 사용하지 않고, Natron만 가지고 이것을 하고 싶다. xml은 구조화는 잘되어 있지만 인간이 접근하기 좋은 규격은 아니다.
Natron은 python script를 사용할 수 있고, 잘못검색을 하면, python을 프로젝트 파일처럼 사용하는 부분만 보게된다.
좀 더 신경을 쓰면, 프로젝트파일을 불러오고, onload시 python을 불러오는 옵션이 있다.
-b는 터미널에서 바로 출력물을 얻겠다.
-l(L이다. ) 이 해당하는 python 스크립트이다.
natron -b Natron.project.ntp -l python1.py
이 두 명령으로 python1실행으로 내부가 변한 상태의 출력물을 얻을 수 있다.
저 python1.py의 구조가 이제 중요하다.
내부 노드에 어떻게 접근을 할 수 있을까?
Natron은 일단 프로젝트 파일을 불러온 후 프로젝트 xml을 잘 정리해서 app1이라는 클래스에 모든 정보를 넣는다. 그리고 노드이름으로 간단히 접근할 수 있다.
1
2 node = app1.Text1
3
4 node.text.set("hello World")
내 경우는 위 처럼 2줄짜리 프로그램으로 글자를 바꿀 수 있게 된다.
뭐 더 고친다면 소속까지 한 줄 더 작성하는 정도이겠다.
자이제 natron 명령으로 여러명의 개인 소개용 Lower Third를 만들도록하자.
bash까지 사용하면 못할게 없고, sed 명령어를 사용해 쉽게 작업할 수 있다.
(sed를 사용하면, 애초에 매우 쉽다. )
자료리스트
konkuk으로 시작하는 친구들은, writer까지 작업이 되어있어서 편리하다. 원본이랑 사실 별차이 없다.
300프레임에 25MB정도씩 나와서 생각보다 무겁지만 재미있는 작업이 될 것이다.
csv파일로 로고파일주소, Text1 내용 Text_2 내용 등을 만들어 놓으면, 여러사람에 대해 설명하는 작업을 해서 재미있게 할 수 있을 것이다.
열심히 썼지만, 문제가 있는데, Natron은 저 움직이는 이미지 작업 자체가 더럽다. 뭐... 개인적으로 3D Text의 두깨 기능이 지원이 안되서, 배우는건 Natron으로 하고, 실지로는 Blender를 쓰지 않을까...
돈있으면, after effect용 템플릿을 구하면 된다.
이 글에서 가장 중요한건, app1이라는 클래스 이름이다.
우분투 리눅스에서 모니터 오버클락하기.
리눅스에서 디스플레이 해상도 등과 관련된 패키지는 xrandr이다.
xrandr을 통해 다양한 display mode를 체험할 수 있다.
지금 현재 사용하고 있는, 모니터는 DELL 2312HM으로 홈페이지상 스펙으로는 1920x1080 60이 한계인 것으로 나타난다.
처음 xrandr을 누르면, 이 이하의 설정가능한 다양한 해상도 등이 나온다.
1080x1024 75.02 60
640x480 75 59.94
등이 나오는데, 이 값들은 일종의 디스플레이 업계의 약속된 추천해상도라고 할 수 있다.
윈도우 시스템의 경우는 드라이버에 따라서, 굉장히 다양한 해상도 설정이 가능한 경우가 있는데, 이 해상도들은, 일종의 업계 호환해상도라고 할 수 있다.
이 호환 해상도에 해당하는 것이 바로 gtf, cvt라는 것이다. (위키에 검색해보시오)
여기에는 그래픽카드에서 모니터로 신호를 보낼 때, 어떤 주파수로 신호를 보내고, 어디서부터 어디까지인지 신호를 보낼지에 대한 일종의 약속이다. 이 신호는 결국 픽셀정보를 직렬로 보내다보니 직사각형의 화면정보를 열별로 나누어 보내게 되고, 어디부터 시작인지 어디가 끝인지, 열의 시작과 끝이 어디인지 및 몇가지 정보전달을 위한 위한 메타데이터를 필요로 하게되고 이러한 값들이 직사각형 정보덩어리의 테두리 여백으로 들어가게 된다.
기본 규약은 어차피 자동으로 처리가 되므로 필요한 것은 저 호환 해상도에 해당하는 gtf와 cvt이다.
리눅스의 경우 gtf를 누르면 다음처럼 나오고,
xrandr --mode "1920x1080_60.00"
자 이제부터 모니터 오버클럭이야기를 해보자.
원래부터 지원되는 해상도임에도 불구하고 저렇게 입력하면, dvi single link나(대부분 와이드 해상도 면... 맞아...) 오래된 hdmi 버전을 쓰는 모니터는 먹통이 된다. 저 첫번째 숫자부분이 165를 넘어가면 먹통이 된다. (내 테스트는 164도 먹통이었음 163.xx까지는 잘 되었음. 이 현상은 케이블 먹통이라 하자.)
당연히 약속이 잘되어 있는 친구들이, 메타데이터가 덜 필요하다. 약속만 되어 있으면, 봉화 몇개로도, 전쟁유무가 파악되는 법 ...
예비약속이다보니, 더 많은 정보가 필요하다.
이 예비약속들만으로는 되지 않는다. 윈도우 처럼 넘실거리는 수많은 모니터 해상도 지원은 가능하지만, 오버클럭은 불가능하다.
아날로그 시대에 비해 디지털 시대에 HD가 붙기 시작하는 친구들은 해상도가 더 큰 편이다보니, 메타데이터를 잘 접어서 구석에 넣는 방법이 생겼다.
(이 문장은 내 개인 추측이다. 틀렸을 수 있다. )
그 방법을 cvt-rb 방식이라 한다.
https://en.wikipedia.org/wiki/Coordinated_Video_Timings#Reduced_blanking
우분투에서는 cvt-rb 방식을 apt로 받는 cvt에서 지원을 한다.
보면 알겠지만, 갑자기 165MHz까지 가기에는 많이 남게된다.
그런데 안타깝게도, 이 규약은 원래 나올 때, 60Hz의 배수만을 지원하기 위해 나왔다. (아마 표준 나오고 빠른 모니터가 너무 빨리 나왔을때 나온걸로 보인다)
그러다보니 이툴은 60-120hz사이의 다른값들을 쓰기에 부적절하다. 뭐 구글에 linux monitor overclock이라 검색하면 수정된 cvt와 더 다르게 구겨넣는 방식인 cvt-rb2까지 지원하는 녀석이 깃헛에 있음을 알 수 있다.
❯ wget http://www.uruk.org/~erich/projects/cvt/cvt.c
$ curl https://raw.githubusercontent.com/kevinlekiller/cvt_modeline_calculator_12/master/cvt12.c --output cvt12.c
Compilation:
$ gcc cvt12.c -O2 -o cvt12 -lm -Wall
앞 친구는 60hz 배수를 써야하는 규약을 무시하고 중간 친구들을 만들어주고, 뒷친구는 cvt-rb2까지 지원을 하는 친구인데 뒤에걸 일단 쓰는 걸로 하자. 뒤에 것은 c 옵션으로 강제조항이 있다.
그 방법을 통해 60까지 지원하는 h2312hm을
Modeline "1920x1080_73.86_rb2" 164.99 까지 올렸다.
일단 강제조항을 써서 얻은 cvt-rb는 dell이 나름 메인스트림 회사라 지원을 제대로 안한다. 이상한 회사라면 지원했을 수도 있어서 .. 75성공했을텐데...
일단 dvi-d sigle-link에서는 이 이상 올릴 수가 없다.
일단 저위에 그림처럼, 24라는 표준 깜빡임의 배수로 설정할 예정이다만, 저정도로 가득채워서 올릴 수 있다.
나중에 display port를 지원하는 그래픽카드가 있으면 좀 더 노력을 해보겠다.
이러한 방식으로 linux에서는 디스플레이 오버클럭을 한다.
모니터가 지원을 안하고 힘들어 할 수 있지만, 보통은 여유를 가지고 지원을 해주므로, refresh 속도를 더 올려보자.
내 모니터는 75정도에서 한계점을 가진게 맞는지... 1280 720에서 여유가 많이 있음에도 120 90은 실패했다.
여러번의 시도를 거치면 적당한 해상도에서 최대 refresh값을 얻을 수 있지 않을까... 리눅스는 노가다다.
2020년 9월 24일 목요일
Image Compositing 정리. 1 (Screen, Multiply) 스크린, 곱하기
태그
- 1호차
- 3D
- 3g
- 간호사
- 결혼
- 공익근무
- 광고차단
- 국민의당
- 군대
- 그리드엔진
- 김현정의 뉴스쇼
- 날씨
- 당번병
- 댓글삭제
- 더민주
- 더불어민주당
- 데몬
- 도커
- 라이브리
- 러블리즈
- 무한재부팅
- 민주당
- 바람
- 베링거
- 베링어
- 병역
- 병역거부
- 보건
- 삼성
- 소나기
- 소셜댓글
- 슈퍼컴퓨터
- 신천지
- 썰
- 악보
- 압축
- 애드
- 애드블록
- 양호
- 에드
- 에드블록
- 역선택
- 연구실
- 오디 오인터페이스
- 오픈뱅크
- 왜곡
- 왜곡기사
- 외도
- 원클릭구매
- 유틸리티
- 이번주아내가바람을핍니다
- 인터넷언론
- 자막
- 적성 카페 빵집
- 전해철
- 정치
- 조선비즈
- 조선일보
- 조선biz
- 조형기
- 진상훈기자
- 차떼기
- 카카오
- 카카오스토리
- 컴퓨터
- 코로나
- 쿠키
- 크롬
- 클러스터
- 테스크스풀러
- 학교보건법
- 한탄
- 헌법재판소
- 헌재
- adapter
- aes
- Amazon
- Ardour
- Audio
- audio interface
- banking
- Behringer
- bundle
- bz2
- bzip2
- compositon
- coreOS
- curl
- daemon
- DAW
- dbus
- docker
- ethernet
- fedora
- g4
- gram
- gridengine
- gunzip
- gz
- gzip
- gzip2
- Heroes of Might and Magic3
- HOMM3
- HOTA
- interface
- iptime
- jack audio connection kit
- jackd
- jtbc드라마
- kdenlive
- ladspa
- LG
- lilypond
- linux
- LiveRe
- lmms
- lower
- LTC
- lte
- lv2
- lzma
- midi
- MOD
- modem
- MTC
- natron
- neobundle
- nvim
- one click
- Oneman Band
- OnTheGo
- open
- OTG
- pbzip2
- pigz
- plugin
- psk
- python
- qdbus
- quick-scope
- rsync
- scp
- sftp
- sge
- sim
- spool
- ssh
- tar
- task
- task-spooler
- terminal
- third
- ts
- tsp
- ubuntu
- UMC
- UMC202HD
- usb
- vfx
- video
- vim
- vim8
- VR
- vundle
- wifi
- WOG
- wpa
- wttr.in
- xz
가장 많이 본 글
-
리눅스에서 디스플레이 해상도 등과 관련된 패키지는 xrandr이다. xrandr을 통해 다양한 display mode를 체험할 수 있다. 지금 현재 사용하고 있는, 모니터는 DELL 2312HM으로 홈페이지상 스펙으로는 1920x1080 6...
-
과정 1. 열풍기로 후면 커버 한쪽을 가열한다. 권장 100도 30초. 2. 공기압 고정장치(?:화장실 벽 등에 고정시키는데 쓰는)로 후면커버에 고정시킨 후 들면, 후면커버에 부착된 점착제가 늘어나면서 공간이 생김. 그곳을 기반으로 벌리면서, 열풍기...
-
https://sca.coffee/sca-news/25/issue-13/towards-a-new-brewing-chart 원본은 위 주소로가서 보세요. 인터넷에 검색하면, 핸드드립에 물을 얼마나 써야하나요라고 검색하면, 다음과 같은 차트를 많이 만납...