안경잡이개발자

728x90
반응형

운영체제 강좌 1- 운영체제의 개요
 
운영체제 : 컴퓨터의 사용자와 하드웨어 사이에서 중개자 역할을 해주는 프로그램


운영체제의 역사
 
   수작업 단일 프로그래밍 다중 프로그래밍 & 시분할 모바일 OS & 실시간 시스템
 
운영체제의 목적
 
   1. 사용자가 컴퓨터를 편리하게 사용하는 것
   2. 컴퓨터 하드웨어가 효율적으로 사용되는 것
 
컴퓨터 시스템의 처리 구조

 

 

 

   운영체제는 사용자와 하드웨어간의 전반적인 상호작용을 하면서 컴퓨터가 실행되는 동안 항상 수행되는 프로그램입니다.
     
  ※ 사용자 관점에서 볼 때 좋은 운영체제란 사용의 용이성에 중점을 두고 자원 이용의 극대화에 중점을 둔 운영체제라고 할 수 있습니다. 따라서 운영체제란 PC, 대형 컴퓨터 등을 가리지 않고 항상 사용자를 편리하게 해주는 하나의 프로그램이라고 할 수 있습니다.
     
  ※ 시스템의 관점에서 볼 때 좋은 운영체제란 하드웨어와 친밀하면서 자원을 효율적으로 할당해주는 자원 할당자 역할을 하는 운영체제입니다. 컴퓨터를 효율적이면서 공정하게 운영할 수 있도록 요청에 따라 적절한 자원을 할당해주며 사용자의 입/출력을 제어합니다.

728x90
반응형

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 8강 - 게임 화면으로 이동하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 플레이어가 실제로 곡을 선택해서 해당 곡의 난이도를 결정하고 게임을 시작할 수 있도록 게임 화면으로 이동하는 기능을 구현합니다. 게임 화면으로 이동한 뒤에는 실제로 게임이 플레이 되는 화면으로 작동할 것입니다.

※ 8강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

dynamic_beat_8.zip

 

8강 이미지 파일.zip

 

 

728x90
반응형

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 7강 - 곡 선택 기능 구현 (How To Make Java Rhythm Game) 강의 동영상입니다. 플레이어가 자신이 원하는 곡을 버튼을 눌러 선택할 수 있도록 기능을 구현합니다. 곡을 선택할 때마다 해당 곡의 하이라이트 부분이 재생되며 안정적으로 플레이어가 곡을 선택할 수 있도록 합니다.

※ 7강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

7강 음악 파일.zip

dynamic_beat_7.zip

 

728x90
반응형

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 6강 - 곡 선택 화면 디자인 (How To Make Java Rhythm Game) 강의 동영상입니다. 곡 선택 화면을 담당하는 전반적인 디자인과 음악적 요소들을 구성합니다.

※ 6강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

 

 

728x90
반응형

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 5강 - 화면 전환 (How To Make Java Rhythm Game) 강의 동영상입니다. 우리의 게임 화면에서 시작 버튼을 눌러서 메인 화면으로 넘어가는 부분을 구현해보는 시간을 가집니다.

※ 5강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

 

5강 이미지 파일.zip

dynamic_beat_5.zip

 

728x90
반응형

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 4강 - 메뉴 바 구현하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 우리가 만들 게임 화면에서의 메뉴 바 부분을 구현해보는 시간을 가집니다.

※ 4강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

4강 음악 파일.zip

4강 이미지 파일.zip

dynamic_beat_4.zip

 

728x90
반응형

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 3강 - 시작 화면에 음악 삽입하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 시작 화면에 음악을 삽입하고 그 음악을 재생하는 방법에 대해서 공부합니다.

※ 3강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

jl1.0.1.jar

 

 

dynamic_beat_3.zip

 

 

728x90
반응형

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 2강 - 게임 시작 화면 개발하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 우리가 만들 리듬게임의 게임 시작 화면을 개발하는 시간을 가집니다.

※ 2강 전체 소스 코드 & 강의 동영상을 올립니다.

728x90
반응형

728x90
반응형

  자바(JAVA) 리듬게임 만들기 강좌 1강 - 자바 개발 환경 구축 및 GUI 시작하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 기존에 진행하던 자바 리듬게임 만들기 강좌를 완전히 새롭게 개편해서 준비해보았습니다. 자바 게임 개발을 시작하기 전에 자바의 개발 환경 구축을 마치고 처음으로 자바 GUI 창을 띄워보는 시간을 가집니다. 자, 한 번 즐겁게 공부를 시작합시다.

※ 1강 소스 파일 & 강의 동영상을 올려드립니다.

 

dynamic_beat_1.zip

 

728x90
반응형

728x90
반응형

● 애니메이션의 개요

 

  애니메이션은 기본적으로 일련의 정지된 이미지(Still Image)를 연속적으로 보여주어 그 이미지를 보는 사람으로 하여금 이미지들을 연속된 동작으로 착각하도록 합니다. 이러한 현상은 잔상효과에 의한 것으로 '잔상효과'란 이미지가 이미 사라졌음에도 불구하고 사람의 눈이나 뇌에 계속 남아 있으려는 경향을 의미합니다. 일반적으로 초당 15장 이상의 그림이 보여지면 자연스러운 움직임을 얻을 수 있습니다. 텔레비전, 영사기, 비디오 플레이어는 각각이 표시하는 초당 프레임 율이 다르지만 모두 잔상효과를 이용하고 있습니다.

  애니메이션의 정의는 '생명이 없는 사물에 영혼이나 정신을 부여하는 행위'로 정의할 수 있습니다. 즉, 애니메이션은 생명을 지니지 않은 것이 작자의 의도에 따라 의인화되어 필름이나 VTR 등의 영상매체를 통하여 창조되는 기술이나 기법을 일컫습니다. 또한 애니메이션은 낱장의 그림 또는 사물의 이동을 한 프레임(Frame)씩 촬영하여 마치 살아 있는 것과 같은 효과를 보여주는 영화를 말하기도 하며 ​더 나아가서 시간, 운동, 빛에 대한 모든 영상언어와 영상기술을 총칭합니다. 현재 우리들이 접할 수 있는 대부분의 TV만화 시리즈, 단편 만화, 극장판 장편 만화영화 등의 애니메이션이 이 정의에 포함됩니다.

  애니메이션은 컴퓨터가 등장하기 이전의 2차원을 기반으로 하는 전통적 애니메이션과 컴퓨터에 의해서 만들어지는 애니메이션 그리고 특수효과로 나눌 수 있습니다.​

 - 2차원 기반의 전통적인 애니메이션

  플립북 애니메이션, 셀 애니메이션, 키프레이밍과 인비트윈 등이 있습니다.

 - 컴퓨터 애니메이션

  트위닝, 곡선을 따라 이동하는 스프라이트 애니메이션​, 방향과 크기를 정해주는 벡터 애니메이션, 스크립트 애니메이션, 3차원 컴퓨터 애니메이션, 핵심 동작만을 정해주면 중간 단계를 예측해주는 키프레이밍 애니메이션, 관절끼리의 연관을 계산해서 자연스러운 역운동학 등 다양합니다.

 - 특수효과

  실 이미지에 애니메이션을 합성하는 로토스코핑, 형태의 변환을 의미하는 모핑, 알고리즘을 이용하는 절차적 방법, 미립자 시스템 등이 있습니다.

● 애니메이션의 종류

 1) 플립북 애니메이션​(Flip-Book Animation)

  플립북 애니메이션은 가장 기본이 되는 애니메이션으로 프레임(Frame) 애니메이션이라고도 합니다. 애니메이션 내에 존재하는 모든 프레임을 한 장 한 장 그려나가는 것으로 어렸을 때 책의 가장 자리에 그림을 그려 빠르게 넘기면 나타나는 효과를 떠올리면 됩니다. 플립북 애니메이션은 파일 크기가 크기 때문에 인터넷과 같이 제한된 데이터 전송 환경에서는 사용하기 힘들다는 장점이 있습니다.

 2) 셀 애니메이션(Cel Animation)

   1913년 존 랜돌프가 개발하여 지금에 이르는 모든 전통적 애니메이션은 이 방법으로 만들어졌습니다. 셀 애니메이션의 "CEL"이란 단어는 투명한 종이를 뜻하는 Celluloid의 "CEL"을 의미합니다. 애니메이션을 만들기 위해서는 하나의 배경 CEL과 여러 장의 전경 CEL이 필요하고, 일반적으로 이러한 CEL들이 여러 개의 층을 이루어 하나의 프레임을 만들어 냅니다.

 3) 스프라이트 애니메이션(Sprite-based Animation)

  스프라이트는 애니메이션에서 독립적으로 움직이는 개체를 말합니다. 아케디으 게임 속에 등장하는 캐릭터들의 애니메이션이 이 항목에 속합니다. 스프라이트 애니메이션은 플립북 애니메이션과는 달리 스프라이트만을 다시 그려주면 되기 때문에 파일의 크기나 요구되는 데이터 전송 대여폭도 플립북 애니메이션보다 적습니다.

 ​

 4) 벡터 애니메이션(Vector Animation)

  이 방식은 스프라이트가 Bitmap이 아닌 수학적인 공식으로 이루어진 것을 제외하면 스프라이트 애니메이션과 일치합니다. 벡터 애니메이션의 또 하나의 장점은 크기에 상관 없이 깨끗하게 보여진다는 것입니다. 이러한 성질을 Scalable하다고 말합니다.

 5) 키 프레이밍과 트위닝(Key-Framing and Tweening)

  일반적인 만화영화 제작에서, 숙련된 애니메이터는 키 프레임(Key Frame)이라는 중요한 장면만을 그리고 그 나머지는 값싼 애니메이터를 이용해 애니메이션을 완성해 나갑니다. 트위닝은 이러한 키 프레임 사이(Between)를 채우면서 애니메이션을 만든다는 의미인 IN-BETWEENING에서 유래되었습니다. 여기서 프레임이란 '각 화면 이미지'를 뜻하며 보통 1초 동안 보여주는 화면의 수를 프레임 율(Frame Rate)라고 말합니다. 프레임 레이트가 높을수록 화질이 선명하고 부드러운 표현이 가능하지만 그만큼 용량이 커진다는 단점이 있습니다.

​ 6) 모핑(Morphing)

  모핑은 2개의 서로 다른 이미지나 3차원 모델 사이의 '변화하는 과정을 서서히 나타내는 것'을 말합니다.​ 모핑의 원리는 간단합니다. 처음 프레임과 마지막 프레임을 지정해 주고 나머지는 컴퓨터가 생성하도록 하는 것입니다. 이러한 과정을 인터폴레이션(Interpolation)이라고 합니다.

 7) 로토스코핑(Rotoscoping)

  로토스코핑은 크게 2가지 의미로 사용됩니다. 하나는 실제 영화의 한 장면에 애니메이션을 삽입하는 것이고, 다른 하나는 사진 속에 있는 특정 인물이나 사물을 투명종이 위에 그려 넣는 작업을 말합니다.​ 대개 로토스코핑은 전자보다는 후자를 일컫습니다.

 8) 미립자 시스템(Particle System)

  비, 불, 연기, 폭발 등의 자연 현상들을 시뮬레이션 하기에 좋은 컴퓨터 애니메이션을 의미합니다. Particle System에서는 분자들의 다발에 대해 그 행동과 특성을 하나하나 부여해 비디오나 영화에서 폭발 등의 특수효과에 사용합니다. 영화 트위스터는 토네이도를 시뮬레이션 하기 위해 미립자 시스템을 이용하였습니다.

● 애니메이션 기법

 1) 양파껍질 효과(Onion-Skinning)

  Onion-Skinning은 부드러운 동작을 만들어내기 위해 셀 애니메이션에서 사용되었던 방법을 빌려온 것으로, 양파 껍질이 투명하다는 사실에서 이같은 용어가 사용되었습니다. 셀 애니메이션에서 셀이 가지는 의미는 애니메이터들이 어느 한 프레임에 대한 작업을 진행하는 동안 그 전후 프레임들을 볼 수가 있다는 것입니다. 셀과 유사한 개념인 Onion-Skinning을 사용하게 되면, 한 눈으로 프레임의 처음부터 끝까지 볼 수 있어, 프레임이 어떤 식으로 흘러 가는지 쉽게 알아 볼 수 있다는 것입니다.​

​ 2) 도려내기 효과(Cut-Out)

  Cut-Out은 셀 애니메이션에서 역시 사용했던 방식입니다. 손을 흔드는 등과 같이 캐릭터의 동작이 정해져 있을 경우에 캐릭터의 몸 전체를 다시 그리는 것보다는 손만을 다시 그리는 것이 효과적입니다. 따라서 캐릭터의 몸은 한 번만 그려서 백그라운드로 사용하고, 분리되어 있는 손과 합성하여 동작을 만들어냅니다.​

​ 3) 가감속(Ease-out/Ease-in)

  실세계에서 사물들은 항상 같은 속도로 움직이는 것이 아닙니다. 예를 들어 차가 출발할 때 서서히 가속이 되고, 커브를 돌 때는 서서히 속도가 줄어듭니다. 애니메이션에서 출발이나 정지, 회전과 같이 하나의 동작에서 다른 동작으로의 이동은 전형적으로 키 프레임(Key-Frame)을 사용합니다. 한 물체가 키 프레임으로 다가가거나 멀어질 때, 점차 느려지는 것을 Ease-in, 점차 빨라지는 것을 Ease-Out이라고 말합니다.

 4) 반복(Cycle)

  많은 동작들은 반복적이어서 여러 개의 프레임을 하나의 ​Cycle이나 Loop로 만들 수 있습니다. 가장 기본적인 Cycle은 걷기 동작입니다. 한 번 Cycle을 만들면 그 Cycle을 반복하면서 무한정으로 움직이게 할 수 있습니다.

 5) 찌그러짐과 늘어남​(Squash and Stretch)

  찌그러짐과 늘어남은 물체가 유연성이나 탄성을 갖도록 하여 고무과 같이 부드럽고 물컹거리는 느낌을 갖도록 한다는 것입니다. 따라서 물체가 멈추거나 방향을 바꿀 때 또는 딱딱한 물체에 부딪혔을 때 움직이는 방향으로 물체가 압축되어 눌릴 수 있습니다. 찌그러지거나 늘어나는 효과는 움직이는 물체가 무게가 있다는 것을 느끼게 하거나, 짓눌리고 잡아 당겨지는 동작을 강조하기 위해 사용되는 동작입니다.

 6) 보조 액션과 중첩 액션(Secondary Action/Overlapping Action)

  보조 액션은 주액션에 더해지는 간단한 동작을 의미합니다. 이렇게 만들어진 보조 액션을 주 액션에 더하여 애니메이션을 완성하여 나가는 것을 중첩 액션이라고 말합니다.

 7) 과장(Exaggeration)

  과장 역시 애니메이션에 강한 인상을 심어줄 수 있는 좋은 방법입니다. 특히, 웹에서의 애니메이션은 데이터 전송의 한계성을 가지므로 애니메이션의 크기가 작고, 따라서 경우에 따라 색깔과 동작을 과장을 통하여 이용자의 눈에 띄도록 합니다.

728x90
반응형