[시리즈] 컨픽 기초
· 컨픽 기초 - 클래스 컨픽



어지간한 팀창이라면 한번쯤 만져봤을 컨픽에 대해 정리해보고자 이 글을 쓴다


되게 기초적인 내용을 다루는거라 다 아는 내용일 수 있다


콘솔과 명령어가 무엇인지는 알고 있다는 전제하에 글을 쓰도록 하겠다


사용한 메모장 프로그램은 Notepad다 없어도 된다




먼저 컨픽이 무엇이냐?


컨픽은 인게임에서 설정할 수 있는 설정값을 텍스트로 저장해놓은 파일을 말한다


인게임 설정에서 세팅할 수 있는 모든 설정들은 그에 할당되는 명령어들이 있다


그 명령어들을 게임 외부에 적어두고 게임 플레이 전, 중 언제든 써먹을 수 있게 미리 적어놓은게 컨픽이라고 보면 된다



어디서 찾을 수 있나?


Steam\steamapps\common\Team Fortress 2\tf\cfg


이 경로로 들어가면 여러 파일들을 찾을 수 있을거다



백지상태라면 cfg 폴더 내의 파일은 꼴랑 4개가 끝이다


게임하면서 이것저것 추가됐을수도 있긴한데 cfg폴더를 통째로 지우고 게임을 켜면 저렇게 4개가 만들어진다


폴더 지우면 인게임 설정 다 날라가니 일단 지우지는 말자


motd와 블랙리스트는 신경안써도 된다


sixense_binding.cfg는 게임패드의 조작을 설정한다


게임패드로 팀포하는놈이 있을리가 없을테니 안건드리겠다




그래서 우리가 주목할건



첫번째 config.cfg


이 파일은 인게임 설정을 명령어 텍스트로 모아놓은 컨픽으로 게임을 켤 때 읽고 끌 때 쓴다


무슨 소리인지 천천히 설명해보겠다




먼저, 여기에 값을 적고 게임을 켜면 실제 게임에 반영이 된다


예를 들어 내가 config.cfg 맨 끝자락에 인게임 볼륨을 바꾸는 명령어 'volume' 을 써넣고 게임을 켜면



게임은 'volume 0'이라는 명령어가 게임에 적용되어 인게임 볼륨을 0으로 바꾼다






하지만 config.cfg 파일은 게임이 쓰기(writing)도 한다


그 말은 인게임 설정을 그대로 반영한다는거다



내가 만약 게임 볼륨을 다시 높인 뒤 게임을 끄면





내가 써놓았던 volume 라인은 없어지고



config.cfg 파일 중간에 볼륨을 조정한 그대로 새 명령어가 쓰인다


실제로 내가 인게임에서 어떤 설정값을 바꾸고 게임을 끄면


config.cfg는 그 설정값을 그대로 들고와서 저장을 한다



정리하자면 config.cfg는 게임을 켤 때 읽는 파일이고


게임을 끌 때 저장하는 유동적인 파일이다



config.cfg는 지워도 문제가 없다 지워도 게임을 켤 때 끌 때 새로 생긴다


단지 지우면 읽을 명령어들이 없으니 기본설정으로 만들어질거라


따로 컨픽없이 인게임에서 건드린 설정들이 모두 날라갈 뿐이다



사실 cfg 폴더 자체가 그렇다 지워도 설정을 디폴트로 바꿀 뿐 문제가 없다


궁금한 사람들은 cfg폴더 자체를 tf폴더 바깥으로 뺀 뒤에 게임을 한 번 켜보면 된다


그럼 귀청 찢어지는 풀볼륨과 구린내 가득한 fov_desired 75, viewmodel_fov 54가 반겨줄 것이다




따라서 인게임 설정에 무관하게 고정적인 어떤 값을 쓰고 싶다면


config.cfg가 아닌 다른 파일에 명령어를 저장해야한다




그럼 우리가 써먹을건



두번째 autoexec.cfg


그딴거 없는데? 라고 할 수 있다


실제로 깨끗한 cfg 폴더에 그딴건 없다


팀포 기본 설정은 파일을 미리 만들어주는 친절을 베풀지 않는다


직접 메모장 만들어서 이름을 autoexec으로 바꾸고 확장자를 .txt 에서 .cfg로 바꿔주자


귀찮으면 config.cfg 복사한 다음 내용 싹 지우고 이름만 autoexec.cfg 로 바꿔도 된다




autoexec.cfg는 "게임을 켰을 때" 항상 자동으로 실행된다


이름도 아주 뻔뻔하게 auto execute의 줄임말이다



예를 들어 콘솔에 메시지를 출력하는 echo 명령어를 써보자



이렇게 적어두고 게임을 켜면



콘솔 끝자락에 메세지가 출력된다



autoexec.cfg는 config.cfg와 다르게 게임에서 쓰지(writing)않는다


즉 인게임 설정을 아무리 바꾸든 여기 적혀있는건 안건든다는 소리다


인게임에서 설정을 바꿔도 영구적으로 바뀌지 않는 설정값을 원한다면


여기 autoexec에 적어주면 된다



autoexec에 volume 0.03을 써놓으면


인게임에서 아무리 소리를 바꾸고 쓴다한들


게임을 껐다가 다시 켜면 소리가 0.03으로 맞춰진다



컨픽에 관심없는 대부분의 사람들은 인터넷에서 긁어온 스크립트를 여기다가 때려박고 쓴다


그래도 문제될건 없다 작동만 잘하면 되지



그래도 이왕인거 좀 더 깔끔하게 써보자


앞으로 autoexec을 깔끔하게 쓰는 것도 정보글로 써 볼 생각이다





이제 config와 autoexec의 순서에 관해 얘기를 해보자


인게임에서 설정을 바꾸고 게임을 껐다 켰을 때 autoexec의 명령어가 실행되는건


더 정확히는 게임을 끌 때 바꾼 값이 명령어 형태로 config.cfg에 저장됐다가


게임을 켤 때 config.cfg를 불러온 뒤 autoexec.cfg를 불러와서 다시 덮어씌워지는 메커니즘이다



아래와 같이 적어뒀다고 해보자





config.cfg 마지막 줄에는 1을 출력하도록 적어놨고


autoexec.cfg 에는 2를 출력하도록 적어놨다


이제 게임을 켜면



1이 출력된 뒤 2가 출력되는걸 볼 수 있다


즉 config에 적혀있던 명령어들이 먼저 실행되고 autoexec에 적힌게 실행된다


순서만 보면 config이 다 해먹는거 같아 보이지만 config은 문제가 있다



아까 volume 부분에서 눈치챘을수도 있는데


config.cfg를 다시 켜보면 내가 써놓은 echo 1이 감쪽같이 사라졌을 것이다



인게임에서 설정하지 않는 echo같은 명령어는 게임을 끄면 사라진다


사실 config.cfg는 "쓰기" 개념이 아니다 정확히는 매번 게임을 끌 때마다 인게임 설정을 가져와서 매번 새 파일을 만드는 것이다


그래서 내가 config.cfg에 뭔 짓을 해놔도 그 뭔짓이 인게임 설정을 직접 건드는게 아니면 얘가 저장을 안한다



그러니 앞으로 인터넷에서 긁어온 스크립트같은걸 config에 붙여넣는 실수는 하지 않도록 하자




오늘은 여기까지


다음에는 클래스컨픽에 대해 얘기해보자


질문 문제제기 환영