반응형

2011년 2학기 플래시 애니메이션 제작 수업.

여덟번째 시간 : 사운드
- 사운드 녹음/편집, 애니메이션에 사운드 추가

1. 애니메이션 사운드
   - 애니메이션에 사운드를 추가하여 더 큰 생동감을 줄 수 있음
   - 사운드를 직접 녹음하거나 편집 가능
   - 인터넷을 통해 사운드 파일을 구할수 있음

2. 플래시에 사운드 추가
   - 사운드 포맷 : wav와 mp3만 가능
   - 플래시 라이브러리에 사운드 파일 추가하는 방법
     - Import -> Import to Library -> 사운드 파일 선택 후 OK 클릭
   - 플래시에 사운드를 추가하는 방법
     - 사운드를 추가할 위치에 키프레임을 생성하여 해당 키프레임에서 라이브러리의 사운드 파일을 스테이지로 drag
     - 해당 키프레임의 Properties 탭에서 sound의 콤보박스를 통해 라이브러리에 등록된 사운드 선택

3. 사운드 녹음
   - Sound Recorder, Adobe Audition v.3.0 (Cool Edit)를 이용하여 목소리 녹음

4. 사운드 편집
   - Adobe Audition v.3.0 (Cool Edit)를 이용하여 잡음 제거, 볼륨 조절, 효과 추가 등의 사운드 편집

5. 애니메이션 제작
   - 사운드 녹음 및 편집


<수업 자료>
Animasi Flash 08_Suara.zip

반응형
 
반응형

2011년 2학기 플래시 애니메이션 제작 수업.

일곱번째 시간 : 텍스트 효과
- 텍스트 효과 연습 및 애니메이션 제목 화면 만들기

1. 필터
   - 필터는 Movie Clip, Button, Text에만 적용 가능
   - 종류 : Drop Shadow, Blur, Glow/Gradient Glow, Bevel/Gradient Bevel

2. 필터 사용 방법
   - Text Tool을 선택하여 스테이지에 텍스트 생성
   -> Conver to Symbol (movie clip)
   -> Properties 탭 옆에 위치한 Filters 탭 선택
   -> Add Filter 아이콘을 클릭하여 원하는 효과 선택
   * Filters 탭이 안 보이는 경우 Window -> Properties -> Filters 메뉴 선택

3. 텍스트 효과 연습(4가지)
   - outer text 만드는 방법

5. 애니메이션 제작
   - 제목 화면 만들기 : 제목 및 제작자


<수업 자료>
Animasi Flash 07_Animating(3).zip

반응형
 
반응형

2011년 2학기 플래시 애니메이션 제작 수업.

여섯번째 시간 : 카메라 효과
- 카메라 효과 연습

1. 카메라 효과
   - Close up
   - Zoom in
   - Zoom out
   - Panning

2. 샘플 파일을 이용한 카메라 효과 연습

3. 애니메이션 제작
   - 캐릭터 및 배경 제작
   - 애니메이션 첫 화면 제작


<수업 자료>
Animasi Flash 06_Animating(2).zip
* 내용이 많지 않지만, 연습을 해야 하는 내용이라 2교시 분량으로 적당하다.
  아이들에게 최소한 2번은 보여줘야 제대로 따라하기 때문에 시간이 부족할 수도 있다.

반응형
 
반응형

2011년 2학기 플래시 애니메이션 제작 수업.

다섯번째 시간 : 애니메이션 효과
- 움직이는 캐릭터 만들기

1. 걷는 캐릭터 만들기
   - 모두 그림을 그려 frame by frame으로 걷는 캐릭터 구성
   - 머리, 몸통, 다리 부분을 나누어 심볼로 만든 후 걷는 캐릭터 구성

2. 각 부분으로 캐릭터 만드는 방법
   - 머리, 몸통, 다리 부분을 각각 그림
   -> 포토샵에서 편집(색칠)
   -> *.png 파일로 저장
   -> 플래시에 import
   -> movic clip 심볼 생성하여 각각의 레이어에 그림을 위치시킴 (움직이는 부분에 키프레임을 삽입하여 움직임 효과를 줌)
   -> bitmap을 Modify -> Bitmap -> Trace Bitmap으로 벡터화
   -> 테스트 무비

3. 애니메이션 효과 연습
   - 오브젝트 이동, 크기 변화, 색깔 변화
   - 캐릭터 얼굴 표현 : 눈을 깜박이고, 이야기 하는 얼굴

4. 애니메이션 제작
   - 캐릭터 및 배경 디자인
   - Stage size : 640 X 480 pixel


<수업 자료>
Animasi Flash 05_Animating(1).zip

반응형
 
반응형

2011년 2학기 플래시 애니메이션 제작 수업.

네번째 시간 : 배경 디자인
- 배경 및 기타 오브젝트 디자인

1. 배경 만드는 방법
   - 스케치 -> 스캔 -> 편집
   - 플래시나 포토샵에서 바로 그리기

2. 그림을 사용한 배경 디자인
   - 연필과 싸인펜으로 스케치 -> 스캔 -> 포토샵에서 편집 -> 플래시에 그림 파일 import
   - 단, 배경 디자인시 가장 큰 배경을 기준으로 디자인

3. 애니메이션 제작
   - 배경 및 기타 오브젝트 디자인

4. 숙제
   - 배경 및 기타 오브젝트 스케치/디자인


<수업 자료>
Animasi Flash 04_Desain latar.zip
* XI TKJ1의 경우 3주차가 휴일이라 4주차에 캐릭터 디자인 수업과 병행하여 이루어졌기 때문에 내용을 짧게 구성했다.

반응형
 
반응형

2011년 2학기 플래시 애니메이션 제작 수업.

세번째 시간 : 캐릭터 디자인
- 플래시와 포토샵을 사용한 캐릭터 디자인

1. 캐릭터 만드는 방법
   - 스케치 -> 스캔 -> 편집
   - 플래시나 포토샵에서 바로 그리기

2. 그림을 사용한 캐릭터 디자인
   - 연필과 싸인펜으로 스케치 -> 스캔 -> 포토샵에서 편집 -> 플래시에 그림 파일 import

3. 플래시에서 그림 파일 사용하는 방법
   - 그림 파일 import 후 바로 사용하는 방법
     : 라이브러리에서 stage로 drag-> stage의 그림 선택 -> Modify > Bitmap > Trace Bitmap (minimum area : 1)
       -> Paint Bucket Tool 선택하여 색칠 -> 움직임을 위하여 부분적으로 심볼 등록
   - 플래시에서 다시 그리기
     : Insert New Layer -> Pencil Tool로 그림의 라인을 다시 그림 -> Paint Bucket Tool로 그림에 색칠 -> 심볼 등록

4. 컴퓨터 캐릭터 디자인
   - Oval Tool, Rectangle Tool, Paint Bucket Tool 등을 이용하여 캐릭터 디자인
   - 인터넷 참조 (링크 : http://shadow.pufs.ac.kr/Lecture/lecture.html -> Flash_Lec02.ppt)

5. 스캔한 그림 파일을 이용한 포토샵 캐릭터
   - 그림 파일 오픈 -> Create New Layer -> Pencil Tool 선택 -> 새로 추가한 레이어에 스케치한 그림의 선을 따라 그림
     -> Paint Bucket Tool로 그림에 색을 칠함 -> *.png 파일로 저장 -> Flash에 import

6. 애니메이션 제작
   - 캐릭터 디자인

7. 숙제
   - 캐릭터 스케치


<수업 자료>
Animasi Flash 03_Desain karakter.zip

반응형
 
반응형

2011년 2학기 플래시 애니메이션 제작 수업.

두번째 시간 : Inbetween
- 화면 전환 방법 연습

1. Inbetween
   - 키 프레임 : 단일 스틸 이미지
   - 인비트윈 프레임 : 두 키 프레임 사이의 프레임
   - 애니메이션을 보다 자연스럽게 하기 위해 인비트윈 프레임 사용

2. 화면 전환 방법
   - Cut
   - Fade-in/Fade-out
   - Dissolve
   - Iris
   - Flip, Wipe, etc.

3. 카메라 움직임
   - Close up
   - Zoom in
   - Zoom out
   - Panning

4. 애니메이션 제작
   - 스토리보드(콘티) 작성

5. 숙제
   - 스토리보드 작성


<수업 자료>
Animasi Flash 02_Inbetween.zip

반응형
 
반응형

2011년 2학기 플래시 애니메이션 제작 수업.

첫번째 시간 : 애니메이션 기초
- 애니메이션 제작 프로세스, 플래시 기초 복습

1. 수업 안내
   - 수업목표 : Macromedia Flash 8과 Adobe Photoshop 프로그램을 사용하여 10초 이상의 2D 애니메이션 제작
   - 수업 시간 : 화/수 오전 8:30~10:00
   - 수업 구성 : 학생들 발표(10~20분), 수업(40~50분), 애니메이션 제작(30분)

2. 애니메이션이란?
   - 여러장의 화면을 움직이도록 보이게 만든 것

3. 애니메이션 종류
   - 2D, 3D, 프레임, 벡터, 몰핑, 셀, 컴퓨터 등

4. 애니메이션 제작 프로세스
   - 프리 프로덕션 : 컨셉/시나리오, 캐릭터 디자인, 스토리보드 제작
   - 프로덕션 : (레이아웃,) 원화/동화 제작, 스캐닝, 채색(, 렌더링)
   - 포스트 프로덕션 : 사운드(더빙, 음악, 믹싱), 편집, 비주얼 이펙트, CD 제작

5. 애니메이션 원리 
   - Pose : 이야기에 대한 정보(감정 및 분위기)를 나타냄
   - Timing : 어떤 동작이 행해지는 시간을 결정
   - Spacing : 키프레임 사이의 시간을 채우는 것
   -> 좋은 포즈를 적절한 타이밍에 배치하고 세심하게 스페이싱하면 된다고...... (애니메이터 김정환 님의 자료 참조)
   - 12가지 원리 : 인니어설명, 한글설명

6. 플래시에서 사용하는 애니메이션
   - Frame by frame : 각 프레임마다 각각의 그림 배치
   - Motion tweening : 오브젝트의 이동, 크기 변화 등
   - Shape tweening : 오브젝트의 모양 변화 (예 : 원 -> 텍스트)

7. 플래시 애니메이션 복습
   - Motion Tweening, Shape Tweening, Guide, Masking

8. 애니메이션 제작
   - 시놉시스 작성
   - 테마 선택 : 1. 정보기술 / 2. 교육의 중요성 / 3. 애니메이션을 통한 Fun education / 4. 자연 / 5. 스마랑 또는 SMKN7

9. 숙제
   - 시놉시스 작성
  

<수업 자료>
Animasi Flash 01_Dasar animasi.zip

* 본 단원이 애니메이터가 아니고, 고등학교 과정이므로 아주 깊이있는 애니메이션 수업은 아니라는 것을 미리 밝힌다.
  본 수업의 목적은 학생들이 애니메이션 대회에 참가할 수 있도록 연습하는 것이다.

반응형
 
반응형

자바로 만든 가계부 프로그램.
http://juyayang.tistory.com/110 (v.1.0)
http://juyayang.tistory.com/113 (v.1.4)

<버그 수정>
- 초기 프로그램 실행 속도 개선


<설치 방법>

1. JRE를 다운받아 설치한다. (이미 설치되어 있으면 다시 설치할 필요 없음)
   ☞ JRE 다운로드 링크

2. JuyaAccount v.1.6을 다운받는다. (압축 파일의 형태로 배포)


3. 다운받은 파일의 압축을 푼다.
   처음 사용하는 경우라면 데이터를 보관하고 싶은 폴더에 압축을 푼다.
   (예 : D:\가계부\JuyaAccount --> C:\의 경우 포맷시 데이터 백업이 필요하므로 D:\에 압축 해제)

4. 만약 이미 v.1.0이 설치되어 있다면 다운받은 JuyaAccount.exe 파일과 JuyaAccount.jar 파일을 기존에 설치된 폴더(default : C:\Program Files\JuyaAccount)에 덮어쓰기 한다.
   v.1.0 설치가 안 되어 있다면 압축을 푼 폴더의 JuyaAccount.exe를 우클릭하여 보내기 -> 바탕화면을 선택하여 바탕화면에 바로가기를 생성하여 사용하면 편리하다.


<버그 리포팅>
- chakanju@gmail.com
반응형
 

[자바] Java DB

[공부]/컴퓨터 | 2011. 4. 26. 04:05
Posted by 주야양
반응형

개인적으로 달력을 보완하고 있는데 양력-음력 변환을 위하여 DB를 사용하기로 했다.
기존 SmallSQL의 경우 자료가 많아지면 속도가 현저히 떨어지는 문제가 있어 여러가지 DB를 시험중이다.

<Java DB 개요>
Java DB는 자바로 만들어진 라이트웨이트 DBMS이다.
아파치 더비(Apache Derby)는 Java DB의 핵심기술이다.
현재 Sun에서 지원하고 있다. (Java 6버전의 릴리스를 시작으로, Sun은 JDK에 Java DB를 패키지 하기 시작했다.)

JavaDB의 특징은 Apache Derby의 특징과 같다.
1. base engine과 JDBC driver 모두 합쳐 2메가바이트
2. 자바와 JDBC, SQL을 기초로 만들어짐
3. client/server 모드를 Derby Network Client JDBC driver and Derby Network Server를 통해 지원 가능
4. 설치 및 디플로이, 사용이 편함

또한 JavaDB는 다음과 같은 환경에 적합하다고 소개되어 있다.
- 자바 애플리케이션 개발 및 테스트, 임베디드 애플리케이션, 멀티 플랫폼 환경, Web 2.0 기반의 브라우져 based 환경, PDA와 같이 J2ME CDC에서 돌아가는 애플리케이션

<Java DB 설치 및 DB 생성>
1. Java DB를 다운로드 받아 설치한다.
   ☞ http://www.oracle.com/technetwork/java/javadb/downloads/index.html
   단, 이미 Java SE(JDK 6)이 설치되어 있으면 이미 C:\Program Files\Sun\JavaDB 경로에 설치되어 있다.

2. 환경변수를 셋팅한다. JDK 설치시 이미 설치되어 있으므로 아래와 같이 설정한다. 
   - DERBY_HOME => C:\Program Files\Sun\JavaDB
   - Path                 => %DERBY_HOME%\bin;
   만약, 다운로드 받아 설치했다면, 매뉴얼의 DERBY_HOME =>c:\Derby_10, Path => %DERBY_HOME%\bin로 한다.

3. DB 생성 (실행 > cmd)

C:\Users\Administrator>cd %DERBY_HOME%
C:\Program Files\Sun\JavaDB\bin>ij
ij 버전 10.4
ij> connect 'jdbc:derby:juya_calendar;create=true';
ij> create table juya_calendar(num INT, yyyy INT, mm INT, dd INT, lyyyy INT,lmm INT, ldd INT, holiday varchar(100), memo varchar(100));
0행이 삽입됨/갱신됨/삭제됨
ij> select * from juya_calendar;
NUM        |YYYY       |MM         |DD         |LYYYY      |LMM      |LDD      |HOLIDAY      |MEMO
---------------------------------------------------------------------------------------------
0행이 선택되었습니다.
ij> exit;
C:\Program Files\Sun\JavaDB\bin>

- Java DB(Derby)가 설치된 위치의 bin 하위에 DB가 생성된다.
  (내 경우는 'C:\Program Files\Sun\JavaDB\bin\juya_calendar')

4. 자바 프로그램에서의 사용은 SimpleApp 로 대체한다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class SimpleApp
{
   
/* the default framework is embedded*/
   
public String framework = "embedded";
   
public String driver = "org.apache.derby.jdbc.EmbeddedDriver";
   
public String protocol = "jdbc:derby:";

   
public static void main(String[] args)
   
{
       
new SimpleApp().go(args);
   
}

   
void go(String[] args)
   
{
       
/* parse the arguments to determine which framework is desired*/
        parseArguments
(args);

       
System.out.println("SimpleApp starting in " + framework + " mode.");

       
try
       
{
           
/*
               The driver is installed by loading its class.
               In an embedded environment, this will start up Derby, since it is not already running.
             */

           
Class.forName(driver).newInstance();
           
System.out.println("Loaded the appropriate driver.");

           
Connection conn = null;
           
Properties props = new Properties();
            props
.put("user", "user1");
            props
.put("password", "user1");

           
/*
               The connection specifies create=true to cause
               the database to be created. To remove the database,
               remove the directory derbyDB and its contents.
               The directory derbyDB will be created under
               the directory that the system property
               derby.system.home points to, or the current
               directory if derby.system.home is not set.
             */

            conn
= DriverManager.getConnection(protocol +
                   
"derbyDB;create=true", props);

           
System.out.println("Connected to and created database derbyDB");

            conn
.setAutoCommit(false);

           
/*
               Creating a statement lets us issue commands against
               the connection.
             */

           
Statement s = conn.createStatement();

           
/*
               We create a table, add a few rows, and update one.
             */

            s
.execute("create table derbyDB(num int, addr varchar(40))");
           
System.out.println("Created table derbyDB");
            s
.execute("insert into derbyDB values (1956,'Webster St.')");
           
System.out.println("Inserted 1956 Webster");
            s
.execute("insert into derbyDB values (1910,'Union St.')");
           
System.out.println("Inserted 1910 Union");
            s
.execute(
               
"update derbyDB set num=180, addr='Grand Ave.' where num=1956");
           
System.out.println("Updated 1956 Webster to 180 Grand");

            s
.execute(
               
"update derbyDB set num=300, addr='Lakeshore Ave.' where num=180");
           
System.out.println("Updated 180 Grand to 300 Lakeshore");

           
/*
               We select the rows and verify the results.
             */

           
ResultSet rs = s.executeQuery(
                   
"SELECT num, addr FROM derbyDB ORDER BY num");

           
if (!rs.next())
           
{
               
throw new Exception("Wrong number of rows");
           
}

           
if (rs.getInt(1) != 300)
           
{
               
throw new Exception("Wrong row returned");
           
}

           
if (!rs.next())
           
{
               
throw new Exception("Wrong number of rows");
           
}

           
if (rs.getInt(1) != 1910)
           
{
               
throw new Exception("Wrong row returned");
           
}

           
if (rs.next())
           
{
               
throw new Exception("Wrong number of rows");
           
}

           
System.out.println("Verified the rows");

            s
.execute("drop table derbyDB");
           
System.out.println("Dropped table derbyDB");

           
/*
               We release the result and statement resources.
             */

            rs
.close();
            s
.close();
           
System.out.println("Closed result set and statement");

           
/*
               We end the transaction and the connection.
             */

            conn
.commit();
            conn
.close();
           
System.out.println("Committed transaction and closed connection");

           
/*
               In embedded mode, an application should shut down Derby.
               If the application fails to shut down Derby explicitly,
               the Derby does not perform a checkpoint when the JVM shuts down, which means
               that the next connection will be slower.
               Explicitly shutting down Derby with the URL is preferred.
               This style of shutdown will always throw an "exception".
             */

           
boolean gotSQLExc = false;

           
if (framework.equals("embedded"))
           
{
               
try
               
{
                   
DriverManager.getConnection("jdbc:derby:;shutdown=true");
               
}
               
catch (SQLException se)
               
{
                    gotSQLExc
= true;
               
}

               
if (!gotSQLExc)
               
{
                   
System.out.println("Database did not shut down normally");
               
}
               
else
               
{
                   
System.out.println("Database shut down normally");
               
}
           
}
       
}
       
catch (Throwable e)
       
{
           
System.out.println("exception thrown:");

           
if (e instanceof SQLException)
           
{
                printSQLError
((SQLException) e);
           
}
           
else
           
{
                e
.printStackTrace();
           
}
       
}

       
System.out.println("SimpleApp finished");
   
}

   
static void printSQLError(SQLException e)
   
{
       
while (e != null)
       
{
           
System.out.println(e.toString());
            e
= e.getNextException();
       
}
   
}

   
private void parseArguments(String[] args)
   
{
       
int length = args.length;

       
for (int index = 0; index < length; index++)
       
{
           
if (args[index].equalsIgnoreCase("jccjdbcclient"))
           
{
                framework
= "jccjdbc";
                driver
= "com.ibm.db2.jcc.DB2Driver";
                protocol
= "jdbc:derby:net://localhost:1527/";
           
}
           
if (args[index].equalsIgnoreCase("derbyclient"))
           
{
                framework
= "derbyclient";
                driver
= "org.apache.derby.jdbc.ClientDriver";
                protocol
= "jdbc:derby://localhost:1527/";
           
}
       
}
   
}
}

앗, 속도의 문제가......
나만 느린건가......




반응형
 

블로그 이미지

주야양

소소한 일상에 대한 기록

카테고리

Juyayang's hiStory (391)
[정보] (40)
[여행] (72)
[취미] (38)
[공부] (23)
[일상 생활] (9)
[자료실] (7)
[hiStory] (197)