2507회 채점기준표
This commit is contained in:
27
.gitignore
vendored
27
.gitignore
vendored
@@ -1,3 +1,19 @@
|
|||||||
|
# 파이썬 가상환경
|
||||||
|
.venv
|
||||||
|
|
||||||
|
# 수험자 답안 파일
|
||||||
|
output
|
||||||
|
|
||||||
|
회차별채점자료/*/정답파일
|
||||||
|
회차별채점자료/*/정답
|
||||||
|
|
||||||
|
# 열려있는 xlsx파일
|
||||||
|
~*.xlsx
|
||||||
|
psdExport_3.js
|
||||||
|
|
||||||
|
# 포토샵 개발중
|
||||||
|
output_json
|
||||||
|
|
||||||
# ---> Node
|
# ---> Node
|
||||||
# Logs
|
# Logs
|
||||||
logs
|
logs
|
||||||
@@ -131,14 +147,3 @@ dist
|
|||||||
.yarn/install-state.gz
|
.yarn/install-state.gz
|
||||||
.pnp.*
|
.pnp.*
|
||||||
|
|
||||||
output
|
|
||||||
|
|
||||||
# xpath notebook
|
|
||||||
.xbook
|
|
||||||
|
|
||||||
회차별채점자료/*/정답파일
|
|
||||||
회차별채점자료/*/정답
|
|
||||||
|
|
||||||
# 열려있는 xlsx파일
|
|
||||||
~*.xlsx
|
|
||||||
psdExport_3.js
|
|
||||||
|
|||||||
BIN
00_DIC_2506A_TEST.xlsx
Normal file
BIN
00_DIC_2506A_TEST.xlsx
Normal file
Binary file not shown.
Binary file not shown.
@@ -38,8 +38,8 @@ def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, t
|
|||||||
print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.")
|
print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.")
|
||||||
|
|
||||||
# 사용법
|
# 사용법
|
||||||
exam_round = "2506"
|
exam_round = "2507"
|
||||||
source_directory = r"C:\Users\dra\project\data\제2506회 정기\답안파일\제2506회 디지털정보활용능력 답안파일\충북강원지부\신촌정보통신학교" # 원본 디렉토리 경로
|
source_directory = r"D:\project\GOM\DIC\회차별채점자료\2507\정답" # 원본 디렉토리 경로
|
||||||
|
|
||||||
target_directory_a = f".\\output\\{exam_round}\\A" # '1교시'의 타겟 경로
|
target_directory_a = f".\\output\\{exam_round}\\A" # '1교시'의 타겟 경로
|
||||||
target_directory_b = f".\\output\\{exam_round}\\B" # '2교시'의 타겟 경로
|
target_directory_b = f".\\output\\{exam_round}\\B" # '2교시'의 타겟 경로
|
||||||
|
|||||||
BIN
250730_DIC_2507A_채점결과.xlsx
Normal file
BIN
250730_DIC_2507A_채점결과.xlsx
Normal file
Binary file not shown.
BIN
250730_DIC_2507B_채점결과.xlsx
Normal file
BIN
250730_DIC_2507B_채점결과.xlsx
Normal file
Binary file not shown.
BIN
250730_DIC_2507C_채점결과.xlsx
Normal file
BIN
250730_DIC_2507C_채점결과.xlsx
Normal file
Binary file not shown.
BIN
250730_DPI_2507B_채점결과.xlsx
Normal file
BIN
250730_DPI_2507B_채점결과.xlsx
Normal file
Binary file not shown.
7
DIC.code-workspace
Normal file
7
DIC.code-workspace
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{
|
||||||
|
"path": "."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
737
DIC_2507A.json
Normal file
737
DIC_2507A.json
Normal file
@@ -0,0 +1,737 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "$.children[?(@.name=='계곡')].name",
|
||||||
|
"value": "계곡",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].name",
|
||||||
|
"value": "In the Valley",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "Arial",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].text.font.names[0]",
|
||||||
|
"value": "Arial-BoldItalicMT",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].text.font.sizes[0]",
|
||||||
|
"value": 48,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "fffc09",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "$.children[?(@.name=='산속 계곡에서')].name",
|
||||||
|
"value": "산속 계곡에서",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "$.children[?(@.name=='산속 계곡에서')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "GulimChe",
|
||||||
|
"point": 2,
|
||||||
|
"desc": {
|
||||||
|
"돋움체": "DotumChe",
|
||||||
|
"궁서체": "GungsuhChe",
|
||||||
|
"굴림체": "GulimChe",
|
||||||
|
"휴먼옛체": "YetR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "$.children[?(@.name=='산속 계곡에서')].text.font.sizes[0]",
|
||||||
|
"value": 36,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "$.children[?(@.name=='산속 계곡에서')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "05aa20",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "$.children[?(@.name=='노란꽃')].name",
|
||||||
|
"value": "노란꽃",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 35)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 35
|
||||||
|
},
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[not(@Length<='5' and @ClipLength='-1')]/@ClipIndex",
|
||||||
|
"type": "mediaOrder",
|
||||||
|
"value": ["동영상.mp4", "이미지2.jpg", "이미지3.jpg", "이미지1.jpg"],
|
||||||
|
"point": 4,
|
||||||
|
"desc": "비디오1 트랙에 있는 클립의 ClipIndex값을 기준으로 CRClipArr에서 Path값을 가져와서 정답 채점, 클립의 ClipIndex값이 -1인 경우와 길이가 5프레임 이하인 경우는 제외한다."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
|
||||||
|
"type": "oneAnswer",
|
||||||
|
"value": {
|
||||||
|
"speed": "150"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "100당 1배속 / 130 = 1.3배속"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "startEnd",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"start": "0",
|
||||||
|
"end": "380"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "시작시간과 재생시간 정답값 입력, 3번문항은 '동영상.mp4' 클립의 길이를 확인하는 문항이므로 media는 수정할 필요가 없다."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "effect",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"ID": "168",
|
||||||
|
"VID100": "0.80000001",
|
||||||
|
"VID102": "8"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "value값의 키값(VID___)은 이펙트의 속성종류에 따라 변경되므로 채점기준표작성시 확인 필요"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "집을 드나드는 토끼",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "궁서체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "98",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "682f00",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Location",
|
||||||
|
"value": ["0.33229166", "0.93703705"],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "정답 파일의 자막 좌표를 기준으로 프로그램 내부적으로 0.1까지 오차를 허용한다"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.StartTime",
|
||||||
|
"value": 150,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Mute",
|
||||||
|
"type": "Mute",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": "1",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "103",
|
||||||
|
"VID102": "8"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "13",
|
||||||
|
"Range": "500:560",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": 210,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "128",
|
||||||
|
"VID100": "3"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "20",
|
||||||
|
"Range": "710:770",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "67",
|
||||||
|
"VID101": "4"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "10",
|
||||||
|
"Range": "920:950",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "동물들의 생활 (Animal Life)",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "휴먼옛체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "140",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "d0f29c",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text.Outline",
|
||||||
|
"value": {
|
||||||
|
"width": "20",
|
||||||
|
"color": "1f5617"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "두께는 XML에서는 소수점으로 표기되지만, 프로그램 내부적으로 변환하여 사용하므로 현재 파일에서는 정수로 작성"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "opening.Text.FadeInEffect",
|
||||||
|
"value": {
|
||||||
|
"VID505": "4",
|
||||||
|
"VID507": "2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "오프닝자막의 나타나기 효과를 확인하는 문항. id속성은 VID505, playtime속성은 VID507으로 XML 내부에 표기되어 있다."
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "opening.StartTime",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오프닝자막의 시작시간 value 속성만 수정"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "opening.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"ele": "",
|
||||||
|
"type": "audio.StartTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "audio.EndTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 890,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "audio.Effect",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": {
|
||||||
|
"ID": "1",
|
||||||
|
"Duration": "60"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "350"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*350"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "자유 변형 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "layer.exists",
|
||||||
|
"ele": "//Layer/Name/@value",
|
||||||
|
"value": "Flower",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "Flower 레이어가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "layer.Effects",
|
||||||
|
"ele": "//Layer[Name[@value='{search}']]/Effects/Item",
|
||||||
|
"search": "Flower",
|
||||||
|
"value": {
|
||||||
|
"name": "생동감",
|
||||||
|
"option": {
|
||||||
|
"생동감": "40"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": {
|
||||||
|
"흑백": "강도",
|
||||||
|
"밝기/대비": ["밝기", "대비"],
|
||||||
|
"노출": "노출",
|
||||||
|
"색조/채도": ["색조", "채도", "명도"],
|
||||||
|
"감마":["리프트","감마","게인"],
|
||||||
|
"세피아":["U","V"],
|
||||||
|
"생동감": "생동감"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "올가미 도구/이미지 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Effects/Item/Name/@value",
|
||||||
|
"value": "세피아",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "세피아 효과가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "ELLIPSE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 타입이 타원인지 체크"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 120,
|
||||||
|
"height": 120
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "shape.color",
|
||||||
|
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "7097BB",
|
||||||
|
"point": 6,
|
||||||
|
"desc": ""
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "layer.blend.opacity",
|
||||||
|
"ele": "//Layer",
|
||||||
|
"value": {
|
||||||
|
"BlendOp": "반사",
|
||||||
|
"Opacity": "80"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "450"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*450"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "배경색 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Layering",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "레이어 마스크 설정 확인"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "가로방향 흐릿하게 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//shape_type/@value",
|
||||||
|
"value": "ROUNDED_RECTANGLE",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 400,
|
||||||
|
"height": 60
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "gradient.color",
|
||||||
|
"ele": "//Layer/Shapes/Shape",
|
||||||
|
"startColor": "gradient_start_color/@value",
|
||||||
|
"endColor": "gradient_end_color/@value",
|
||||||
|
"value": {
|
||||||
|
"startColor": "ffe000",
|
||||||
|
"endColor": "34A159"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "text.exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
||||||
|
"value": "흰 꽃 사이 노란 꽃",
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
||||||
|
"value": "맑은 고딕",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/{style}/@value",
|
||||||
|
"style": "Italic",
|
||||||
|
"value": "True",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
||||||
|
"value": "30",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "b46Ef8",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
||||||
|
"value": "7",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"value": "ffffff",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Clipping",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"사각형": "RECTANGLE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"type": "clipping.size",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": {
|
||||||
|
"width": 150,
|
||||||
|
"height": 150
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": "7",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"type": "clipping.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": "e8e88e",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"type": "shadow",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": {
|
||||||
|
"shadow": true,
|
||||||
|
"width": "3",
|
||||||
|
"distance": "5",
|
||||||
|
"blur": "1",
|
||||||
|
"angle": "320"
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
751
DIC_2507B.json
Normal file
751
DIC_2507B.json
Normal file
@@ -0,0 +1,751 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].name",
|
||||||
|
"value": "My Friend Parrot",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "Arial",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.names[0]",
|
||||||
|
"value": "Arial-BoldItalicMT",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.sizes[0]",
|
||||||
|
"value": 48,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "1bc553",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].name",
|
||||||
|
"value": "내 친구 앵무새",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "GungsuhChe",
|
||||||
|
"point": 2,
|
||||||
|
"desc": {
|
||||||
|
"돋움체": "DotumChe",
|
||||||
|
"궁서체": "GungsuhChe",
|
||||||
|
"굴림체": "GulimChe",
|
||||||
|
"휴먼옛체": "YetR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.sizes[0]",
|
||||||
|
"value": 36,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "ffea00",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[not(@Length<='5' and @ClipLength='-1')]/@ClipIndex",
|
||||||
|
"type": "mediaOrder",
|
||||||
|
"value": ["동영상.mp4", "이미지1.jpg", "이미지3.jpg", "이미지2.jpg"],
|
||||||
|
"point": 4,
|
||||||
|
"desc": "클립의 ClipIndex값이 -1인 경우와 길이가 5프레임 이하인 경우는 제외한다."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
|
||||||
|
"type": "oneAnswer",
|
||||||
|
"value": {
|
||||||
|
"speed": "130"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "100당 1배속 / 130 = 1.3배속"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "startEnd",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"start": "0",
|
||||||
|
"end": "320"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "start: 시작시간 / end: 재생시간( 12.20 = 12*30 + 20 = 380 )"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "effect",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"ID": "43",
|
||||||
|
"VID100": "20",
|
||||||
|
"VID103": "1.3"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "value값의 키값(VID___)은 이펙트의 속성종류에 따라 변경되므로 채점기준표작성시 확인 필요"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "화려한 앵무새",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "굴림체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "110",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "23a23f",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Location",
|
||||||
|
"value": ["0.36354166", "0.92962962"],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "정답 파일의 자막 좌표를 기준으로 프로그램 내부적으로 0.1까지 오차를 허용한다"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.StartTime",
|
||||||
|
"value": 170,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Mute",
|
||||||
|
"type": "Mute",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": "1",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": 150,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "99",
|
||||||
|
"VID100": "60"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "15",
|
||||||
|
"Range": "440:470",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "173",
|
||||||
|
"VID101": "250"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "14",
|
||||||
|
"Range": "590:650",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "102",
|
||||||
|
"VID100": "4"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "9",
|
||||||
|
"Range": "800:830",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "휴먼옛체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "150",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "aff32a",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text.Outline",
|
||||||
|
"value": {
|
||||||
|
"width": "35",
|
||||||
|
"color": "0b00ff"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "두께는 XML에서는 소수점으로 표기되지만, 프로그램 내부적으로 변환하여 사용하므로 현재 파일에서는 정수로 작성"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "opening.Text.FadeInEffect",
|
||||||
|
"value": {
|
||||||
|
"VID505": "1",
|
||||||
|
"VID507": "3"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "오프닝자막의 나타나기 효과를 확인하는 문항. id속성은 VID505, playtime속성은 VID507으로 XML 내부에 표기되어 있다."
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "opening.StartTime",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오프닝자막의 시작시간 value 속성만 수정"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "opening.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"ele": "",
|
||||||
|
"type": "audio.StartTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "audio.EndTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 820,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "audio.Effect",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": {
|
||||||
|
"ID": "1",
|
||||||
|
"Duration": "60"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "350"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*350"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "자유 변형 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "layer.exists",
|
||||||
|
"ele": "//Layer/Name/@value",
|
||||||
|
"value": "Valley",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "Valley 레이어가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "layer.Effects",
|
||||||
|
"ele": "//Layer/Effects/Item",
|
||||||
|
"ele_temp": "//Layer[Name[@value='{search}']]/Effects/Item",
|
||||||
|
"search": "Valley",
|
||||||
|
"value": {
|
||||||
|
"name": "선명하게",
|
||||||
|
"option": {
|
||||||
|
"양": "7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": {
|
||||||
|
"흑백": "강도",
|
||||||
|
"밝기/대비": ["밝기", "대비"],
|
||||||
|
"노출": "노출",
|
||||||
|
"색조/채도": ["색조", "채도", "명도"],
|
||||||
|
"감마": ["리프트", "감마", "게인"],
|
||||||
|
"세피아": ["U", "V"],
|
||||||
|
"생동감": "생동감",
|
||||||
|
"흐리게": "반경",
|
||||||
|
"글로우": ["반경", "밝기", "대비"],
|
||||||
|
"픽셀효과": "셀크기",
|
||||||
|
"선명하게": "양"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "올가미 도구/이미지 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Effects/Item/Name/@value",
|
||||||
|
"value": "세피아",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "세피아 효과가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"모서리가 둥근 사각형": "ROUNDED_RECTANGLE",
|
||||||
|
"사각형": "RECTANGLE",
|
||||||
|
"타원": "ELLIPSE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 335,
|
||||||
|
"height": 35
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "shape.color",
|
||||||
|
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "46A64A",
|
||||||
|
"point": 6,
|
||||||
|
"desc": ""
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "layer.blend.opacity",
|
||||||
|
"ele": "//Layer",
|
||||||
|
"value": {
|
||||||
|
"BlendOp": "중첩",
|
||||||
|
"Opacity": "80"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "450"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*450"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "배경색 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Layering",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "레이어 마스크 설정 확인"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "가로방향 흐릿하게 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//shape_type/@value",
|
||||||
|
"value": "ROUNDED_RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "모서리가 둥근 사각형 : ROUNDED_RECTANGLE / 사각형 : RECTANGLE"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 400,
|
||||||
|
"height": 50
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "gradient.color",
|
||||||
|
"ele": "//Layer/Shapes/Shape",
|
||||||
|
"startColor": "gradient_start_color/@value",
|
||||||
|
"endColor": "gradient_end_color/@value",
|
||||||
|
"value": {
|
||||||
|
"startColor": "3CB241",
|
||||||
|
"endColor": "931FAD"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "text.exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
||||||
|
"value": "도깨비골 스카이밸리",
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
||||||
|
"value": "돋움",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/{style}/@value",
|
||||||
|
"style": "Italic",
|
||||||
|
"value": "True",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
||||||
|
"value": "24",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "AA2318",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
||||||
|
"value": "5",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"value": "FFFFFF",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Clipping",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "ELLIPSE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"사각형": "RECTANGLE",
|
||||||
|
"원형/타원형": "ELLIPSE",
|
||||||
|
"17~20 문항 option값 변경":""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"type": "clipping.size",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": {
|
||||||
|
"width": 170,
|
||||||
|
"height": 170
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": "3",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"type": "clipping.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": "4B7E5C",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"type": "shadow",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": {
|
||||||
|
"shadow": true,
|
||||||
|
"width": "5",
|
||||||
|
"distance": "2",
|
||||||
|
"blur": "1",
|
||||||
|
"angle": "320"
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
739
DIC_2507C.json
Normal file
739
DIC_2507C.json
Normal file
@@ -0,0 +1,739 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].name",
|
||||||
|
"value": "Wooden Playground",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "Arial",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].text.font.names[0]",
|
||||||
|
"value": "Arial-BoldItalicMT",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].text.font.sizes[0]",
|
||||||
|
"value": 48,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "084f0e",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "$.children[?(@.name=='나무로 만든 놀이터')].name",
|
||||||
|
"value": "나무로 만든 놀이터",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "$.children[?(@.name=='나무로 만든 놀이터')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "GungsuhChe",
|
||||||
|
"point": 2,
|
||||||
|
"desc": {
|
||||||
|
"돋움체": "DotumChe",
|
||||||
|
"궁서체": "GungsuhChe",
|
||||||
|
"굴림체": "GulimChe",
|
||||||
|
"휴먼옛체": "YetR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "$.children[?(@.name=='나무로 만든 놀이터')].text.font.sizes[0]",
|
||||||
|
"value": 36,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "$.children[?(@.name=='나무로 만든 놀이터')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "f5e103",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[not(@Length<='5' and @ClipLength='-1')]/@ClipIndex",
|
||||||
|
"type": "mediaOrder",
|
||||||
|
"value": ["동영상.mp4", "이미지3.jpg", "이미지1.jpg", "이미지2.jpg"],
|
||||||
|
"point": 4,
|
||||||
|
"desc": "클립의 ClipIndex값이 -1인 경우와 길이가 5프레임 이하인 경우는 제외한다."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
|
||||||
|
"type": "oneAnswer",
|
||||||
|
"value": {
|
||||||
|
"speed": "110"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "100당 1배속 / 130 = 1.3배속"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "startEnd",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"start": "0",
|
||||||
|
"end": "355"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "시작시간과 재생시간 정답값 입력, 3번문항은 '동영상.mp4' 클립의 길이를 확인하는 문항이므로 media는 수정할 필요가 없다."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "effect",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"ID": "90",
|
||||||
|
"VID104": "5",
|
||||||
|
"VID103": "2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "value값의 키값(VID___)은 이펙트의 속성종류에 따라 변경되므로 채점기준표작성시 확인 필요"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "다양한 연주 악기들",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "굴림체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "110",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "ffeb3b",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Location",
|
||||||
|
"value": ["0.3125", "0.92962962"],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "정답 파일의 자막 좌표를 기준으로 프로그램 내부적으로 0.1까지 오차를 허용한다"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.StartTime",
|
||||||
|
"value": 160,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Length",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Mute",
|
||||||
|
"type": "Mute",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": "1",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "173",
|
||||||
|
"VID105": "30"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "8",
|
||||||
|
"Range": "475:535",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "128",
|
||||||
|
"VID100": "10"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "10",
|
||||||
|
"Range": "685:715",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "184",
|
||||||
|
"VID100": "20"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "19",
|
||||||
|
"Range": "805:835",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "돋움체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "140",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "ff7419",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text.Outline",
|
||||||
|
"value": {
|
||||||
|
"width": "35",
|
||||||
|
"color": "3d30cd"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "두께는 XML에서는 소수점으로 표기되지만, 프로그램 내부적으로 변환하여 사용하므로 현재 파일에서는 정수로 작성"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "opening.Text.FadeInEffect",
|
||||||
|
"value": {
|
||||||
|
"VID505": "13",
|
||||||
|
"VID507": "2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "오프닝자막의 나타나기 효과를 확인하는 문항. id속성은 VID505, playtime속성은 VID507으로 XML 내부에 표기되어 있다."
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "opening.StartTime",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오프닝자막의 시작시간 value 속성만 수정"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "opening.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"ele": "",
|
||||||
|
"type": "audio.StartTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "audio.EndTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 820,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "audio.Effect",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": {
|
||||||
|
"ID": "1",
|
||||||
|
"Duration": "30"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "350"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*350"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "자유 변형 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "layer.exists",
|
||||||
|
"ele": "//Layer/Name/@value",
|
||||||
|
"value": "Flower",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "Flower 레이어가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "layer.Effects",
|
||||||
|
"ele": "//Layer[Name[@value='{search}']]/Effects/Item",
|
||||||
|
"search": "Flower",
|
||||||
|
"value": {
|
||||||
|
"name": "생동감",
|
||||||
|
"option": {
|
||||||
|
"생동감": "40"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": {
|
||||||
|
"흑백": "강도",
|
||||||
|
"밝기/대비": ["밝기", "대비"],
|
||||||
|
"노출": "노출",
|
||||||
|
"색조/채도": ["색조", "채도", "명도"],
|
||||||
|
"감마": ["리프트", "감마", "게인"],
|
||||||
|
"세피아": ["U", "V"],
|
||||||
|
"생동감": "생동감"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "올가미 도구/이미지 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Effects/Item/Name/@value",
|
||||||
|
"value": "세피아",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "세피아 효과가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "ELLIPSE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 타입이 타원인지 체크"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 120,
|
||||||
|
"height": 120
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "shape.color",
|
||||||
|
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "7097BB",
|
||||||
|
"point": 6,
|
||||||
|
"desc": ""
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "layer.blend.opacity",
|
||||||
|
"ele": "//Layer",
|
||||||
|
"value": {
|
||||||
|
"BlendOp": "반사",
|
||||||
|
"Opacity": "80"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "450"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*450"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "배경색 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Layering",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "레이어 마스크 설정 확인"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "가로방향 흐릿하게 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//shape_type/@value",
|
||||||
|
"value": "ROUNDED_RECTANGLE",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 400,
|
||||||
|
"height": 60
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "gradient.color",
|
||||||
|
"ele": "//Layer/Shapes/Shape",
|
||||||
|
"startColor": "gradient_start_color/@value",
|
||||||
|
"endColor": "gradient_end_color/@value",
|
||||||
|
"value": {
|
||||||
|
"startColor": "ffe000",
|
||||||
|
"endColor": "34A159"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "text.exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
||||||
|
"value": "흰 꽃 사이 노란 꽃",
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
||||||
|
"value": "맑은 고딕",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/{style}/@value",
|
||||||
|
"style": "Italic",
|
||||||
|
"value": "True",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
||||||
|
"value": "30",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "b46Ef8",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
||||||
|
"value": "7",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"value": "ffffff",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Clipping",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"사각형": "RECTANGLE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"type": "clipping.size",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": {
|
||||||
|
"width": 150,
|
||||||
|
"height": 150
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": "7",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"type": "clipping.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": "e8e88e",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"type": "shadow",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": {
|
||||||
|
"shadow": true,
|
||||||
|
"width": "3",
|
||||||
|
"distance": "5",
|
||||||
|
"blur": "1",
|
||||||
|
"angle": "320"
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
751
DPI_2507B.json
Normal file
751
DPI_2507B.json
Normal file
@@ -0,0 +1,751 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].name",
|
||||||
|
"value": "My Friend Parrot",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "Arial",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.names[0]",
|
||||||
|
"value": "Arial-BoldItalicMT",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.sizes[0]",
|
||||||
|
"value": 48,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "1bc553",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].name",
|
||||||
|
"value": "내 친구 앵무새",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "GungsuhChe",
|
||||||
|
"point": 2,
|
||||||
|
"desc": {
|
||||||
|
"돋움체": "DotumChe",
|
||||||
|
"궁서체": "GungsuhChe",
|
||||||
|
"굴림체": "GulimChe",
|
||||||
|
"휴먼옛체": "YetR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.sizes[0]",
|
||||||
|
"value": 36,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "ffea00",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[not(@Length<='5' and @ClipLength='-1')]/@ClipIndex",
|
||||||
|
"type": "mediaOrder",
|
||||||
|
"value": ["동영상.mp4", "이미지3.jpg", "이미지1.jpg", "이미지2.jpg"],
|
||||||
|
"point": 4,
|
||||||
|
"desc": "클립의 ClipIndex값이 -1인 경우와 길이가 5프레임 이하인 경우는 제외한다."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
|
||||||
|
"type": "oneAnswer",
|
||||||
|
"value": {
|
||||||
|
"speed": "120"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "100당 1배속 / 130 = 1.3배속"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "startEnd",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"start": "0",
|
||||||
|
"end": "350"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "start: 시작시간 / end: 재생시간( 12.20 = 12*30 + 20 = 380 )"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "effect",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"ID": "43",
|
||||||
|
"VID100": "10",
|
||||||
|
"VID103": "1.2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "value값의 키값(VID___)은 이펙트의 속성종류에 따라 변경되므로 채점기준표작성시 확인 필요"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "재미있는 테마공원",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "바탕체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "110",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "8c3030",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Location",
|
||||||
|
"value": ["0.32291669", "0.92962962"],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "정답 파일의 자막 좌표를 기준으로 프로그램 내부적으로 0.1까지 오차를 허용한다"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.StartTime",
|
||||||
|
"value": 160,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Length",
|
||||||
|
"value": 150,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Mute",
|
||||||
|
"type": "Mute",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": "1",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "94",
|
||||||
|
"VID101": "7"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "32",
|
||||||
|
"Range": "470:530",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": 150,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "99",
|
||||||
|
"VID100": "70"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "13",
|
||||||
|
"Range": "650:680",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": 210,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "102",
|
||||||
|
"VID102": "10"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "19",
|
||||||
|
"Range": "830:890",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "굴림체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "150",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "31b45e",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text.Outline",
|
||||||
|
"value": {
|
||||||
|
"width": "35",
|
||||||
|
"color": "ffffff"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "두께는 XML에서는 소수점으로 표기되지만, 프로그램 내부적으로 변환하여 사용하므로 현재 파일에서는 정수로 작성"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "opening.Text.FadeInEffect",
|
||||||
|
"value": {
|
||||||
|
"VID505": "3",
|
||||||
|
"VID507": "2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "오프닝자막의 나타나기 효과를 확인하는 문항. id속성은 VID505, playtime속성은 VID507으로 XML 내부에 표기되어 있다."
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "opening.StartTime",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오프닝자막의 시작시간 value 속성만 수정"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "opening.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"ele": "",
|
||||||
|
"type": "audio.StartTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "audio.EndTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 870,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "audio.Effect",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": {
|
||||||
|
"ID": "1",
|
||||||
|
"Duration": "90"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "350"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*350"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "자유 변형 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "layer.exists",
|
||||||
|
"ele": "//Layer/Name/@value",
|
||||||
|
"value": "Valley",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "Valley 레이어가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "layer.Effects",
|
||||||
|
"ele": "//Layer/Effects/Item",
|
||||||
|
"ele_temp": "//Layer[Name[@value='{search}']]/Effects/Item",
|
||||||
|
"search": "Valley",
|
||||||
|
"value": {
|
||||||
|
"name": "선명하게",
|
||||||
|
"option": {
|
||||||
|
"양": "7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": {
|
||||||
|
"흑백": "강도",
|
||||||
|
"밝기/대비": ["밝기", "대비"],
|
||||||
|
"노출": "노출",
|
||||||
|
"색조/채도": ["색조", "채도", "명도"],
|
||||||
|
"감마": ["리프트", "감마", "게인"],
|
||||||
|
"세피아": ["U", "V"],
|
||||||
|
"생동감": "생동감",
|
||||||
|
"흐리게": "반경",
|
||||||
|
"글로우": ["반경", "밝기", "대비"],
|
||||||
|
"픽셀효과": "셀크기",
|
||||||
|
"선명하게": "양"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "올가미 도구/이미지 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Effects/Item/Name/@value",
|
||||||
|
"value": "세피아",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "세피아 효과가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"모서리가 둥근 사각형": "ROUNDED_RECTANGLE",
|
||||||
|
"사각형": "RECTANGLE",
|
||||||
|
"타원": "ELLIPSE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 335,
|
||||||
|
"height": 35
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "shape.color",
|
||||||
|
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "46A64A",
|
||||||
|
"point": 6,
|
||||||
|
"desc": ""
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "layer.blend.opacity",
|
||||||
|
"ele": "//Layer",
|
||||||
|
"value": {
|
||||||
|
"BlendOp": "중첩",
|
||||||
|
"Opacity": "80"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "450"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*450"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "배경색 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Layering",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "레이어 마스크 설정 확인"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "가로방향 흐릿하게 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//shape_type/@value",
|
||||||
|
"value": "ROUNDED_RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "모서리가 둥근 사각형 : ROUNDED_RECTANGLE / 사각형 : RECTANGLE"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 400,
|
||||||
|
"height": 50
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "gradient.color",
|
||||||
|
"ele": "//Layer/Shapes/Shape",
|
||||||
|
"startColor": "gradient_start_color/@value",
|
||||||
|
"endColor": "gradient_end_color/@value",
|
||||||
|
"value": {
|
||||||
|
"startColor": "3CB241",
|
||||||
|
"endColor": "931FAD"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "text.exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
||||||
|
"value": "도깨비골 스카이밸리",
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
||||||
|
"value": "돋움",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/{style}/@value",
|
||||||
|
"style": "Italic",
|
||||||
|
"value": "True",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
||||||
|
"value": "24",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "AA2318",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
||||||
|
"value": "5",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"value": "FFFFFF",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Clipping",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "ELLIPSE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"사각형": "RECTANGLE",
|
||||||
|
"원형/타원형": "ELLIPSE",
|
||||||
|
"17~20 문항 option값 변경":""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"type": "clipping.size",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": {
|
||||||
|
"width": 170,
|
||||||
|
"height": 170
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": "3",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"type": "clipping.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": "4B7E5C",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"type": "shadow",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": {
|
||||||
|
"shadow": true,
|
||||||
|
"width": "5",
|
||||||
|
"distance": "2",
|
||||||
|
"blur": "1",
|
||||||
|
"angle": "320"
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
61
extract_psd_layers.py
Normal file
61
extract_psd_layers.py
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
import os
|
||||||
|
import json
|
||||||
|
from psd_tools import PSDImage
|
||||||
|
|
||||||
|
def extract_layer_info(psd_path):
|
||||||
|
psd = PSDImage.open(psd_path)
|
||||||
|
canvas = []
|
||||||
|
layers = []
|
||||||
|
|
||||||
|
canvas.append({
|
||||||
|
"size": psd.size
|
||||||
|
})
|
||||||
|
|
||||||
|
for layer in psd:
|
||||||
|
layers.append({
|
||||||
|
"name": layer.name,
|
||||||
|
"left": layer.left,
|
||||||
|
"top": layer.top,
|
||||||
|
"right": layer.right,
|
||||||
|
"bottom": layer.bottom,
|
||||||
|
"visible": layer.visible,
|
||||||
|
"opacity": layer.opacity,
|
||||||
|
})
|
||||||
|
|
||||||
|
return {
|
||||||
|
"file": os.path.basename(psd_path),
|
||||||
|
"canvas": canvas,
|
||||||
|
"layerCount": len(psd),
|
||||||
|
"layers": layers
|
||||||
|
}
|
||||||
|
|
||||||
|
def walk_and_export_json(root_dir, output_base_dir):
|
||||||
|
for dirpath, _, filenames in os.walk(root_dir):
|
||||||
|
for file in filenames:
|
||||||
|
if file.lower().endswith(".psd"):
|
||||||
|
full_path = os.path.join(dirpath, file)
|
||||||
|
print(f"처리중: {full_path}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
info = extract_layer_info(full_path)
|
||||||
|
|
||||||
|
# 상대 경로 유지
|
||||||
|
rel_dir = os.path.relpath(dirpath, root_dir)
|
||||||
|
output_dir = os.path.join(output_base_dir, rel_dir)
|
||||||
|
os.makedirs(output_dir, exist_ok=True)
|
||||||
|
|
||||||
|
# JSON 파일 경로 구성
|
||||||
|
json_name = os.path.splitext(file)[0] + ".json"
|
||||||
|
json_path = os.path.join(output_dir, json_name)
|
||||||
|
|
||||||
|
with open(json_path, "w", encoding="utf-8") as f:
|
||||||
|
json.dump(info, f, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"❌ 오류: {file} - {e}")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
walk_and_export_json(
|
||||||
|
root_dir=r".\output\2506\A\TEST",
|
||||||
|
output_base_dir=r".\output_json\2506\A\TEST"
|
||||||
|
)
|
||||||
@@ -4,6 +4,8 @@ const _ = require('lodash');
|
|||||||
|
|
||||||
const findSimilarString = require('./findSimilarString');
|
const findSimilarString = require('./findSimilarString');
|
||||||
|
|
||||||
|
module.exports = getGpdpScore;
|
||||||
|
|
||||||
function parseColorToHex(colorString) {
|
function parseColorToHex(colorString) {
|
||||||
// 정규식을 사용하여 B, G, R, A 값 추출
|
// 정규식을 사용하여 B, G, R, A 값 추출
|
||||||
const regex = /B:\s*(\d+),\s*G:\s*(\d+),\s*R:\s*(\d+),\s*A:\s*(\d+)/;
|
const regex = /B:\s*(\d+),\s*G:\s*(\d+),\s*R:\s*(\d+),\s*A:\s*(\d+)/;
|
||||||
@@ -26,8 +28,6 @@ function parseColorToHex(colorString) {
|
|||||||
return `${rHex}${gHex}${bHex}`;
|
return `${rHex}${gHex}${bHex}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = getGpdpScore;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /Document/Layers/Layer/Shapes/Shape/draw_type 속성값
|
* /Document/Layers/Layer/Shapes/Shape/draw_type 속성값
|
||||||
* > Interior: 내부 채우기 / Outline: 외곽선
|
* > Interior: 내부 채우기 / Outline: 외곽선
|
||||||
@@ -134,7 +134,7 @@ function getGpdpScore(gpdpData, scoringJson, index) {
|
|||||||
|
|
||||||
// 채점기준표 문항별 분류
|
// 채점기준표 문항별 분류
|
||||||
for (const key in scoringData) {
|
for (const key in scoringData) {
|
||||||
console.log(`[❔]문제번호 : [${index}-${key}]`)
|
console.log(`❔❔ 문제번호 : [${index}-${key}]`)
|
||||||
|
|
||||||
let ele = scoringData[key].ele;
|
let ele = scoringData[key].ele;
|
||||||
let ele2 = scoringData[key].ele2;
|
let ele2 = scoringData[key].ele2;
|
||||||
@@ -174,7 +174,7 @@ function getGpdpScore(gpdpData, scoringJson, index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (type === "none") {
|
if (type === "none") {
|
||||||
console.log("❌ 채점하지 않음");
|
console.log("⚠️ 채점하지 않음");
|
||||||
scoringResult[key] = "확인필요";
|
scoringResult[key] = "확인필요";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -379,48 +379,58 @@ function getGpdpScore(gpdpData, scoringJson, index) {
|
|||||||
let normalizedAnswer = null;
|
let normalizedAnswer = null;
|
||||||
let isMatched = false;
|
let isMatched = false;
|
||||||
|
|
||||||
for (const item of items) {
|
const isGradient = type.includes("gradient");
|
||||||
if (type.includes('gradient')) {
|
const isSingleColor =
|
||||||
const startColorXpath = scoringData[key].startColor;
|
type.includes("shape") || type.includes("text") || type.includes("clipping");
|
||||||
const endColorXpath = scoringData[key].endColor;
|
|
||||||
|
|
||||||
const startColorRGB = xpath.select1(startColorXpath, item).value;
|
// 정답 색상 정규화
|
||||||
const endColorRGB = xpath.select1(endColorXpath, item).value;
|
if (isGradient) {
|
||||||
|
|
||||||
const startColor = parseColorToHex(startColorRGB);
|
|
||||||
const endColor = parseColorToHex(endColorRGB);
|
|
||||||
|
|
||||||
userAnswer = {
|
|
||||||
startColor: startColor,
|
|
||||||
endColor: endColor,
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSON파일에서 대문자로 입력된 경우 소문자로 변환
|
|
||||||
normalizedAnswer = {
|
normalizedAnswer = {
|
||||||
startColor: rightAnswer.startColor.toLowerCase(),
|
startColor: rightAnswer.startColor.toLowerCase(),
|
||||||
endColor: rightAnswer.endColor.toLowerCase(),
|
endColor: rightAnswer.endColor.toLowerCase(),
|
||||||
|
};
|
||||||
|
} else if (isSingleColor) {
|
||||||
|
normalizedAnswer = rightAnswer.toLowerCase?.();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 하나라도 일치하면 정답
|
// 각 항목 비교
|
||||||
if (JSON.stringify(userAnswer) == JSON.stringify(normalizedAnswer)) {
|
for (const item of items) {
|
||||||
|
// 그라데이션 컬러의 채점
|
||||||
|
if (isGradient) {
|
||||||
|
// 시작점과 끝점의 컬러를 구할 xpath구문
|
||||||
|
const startColorXpath = scoringData[key].startColor;
|
||||||
|
const endColorXpath = scoringData[key].endColor;
|
||||||
|
|
||||||
|
// 해당 xpath를 이용 RGB값 추출
|
||||||
|
const startColorRGB = xpath.select1(startColorXpath, item)?.value;
|
||||||
|
const endColorRGB = xpath.select1(endColorXpath, item)?.value;
|
||||||
|
|
||||||
|
// RGB to HEX
|
||||||
|
const userStartColor = parseColorToHex(startColorRGB);
|
||||||
|
const userEndColor = parseColorToHex(endColorRGB);
|
||||||
|
|
||||||
|
userAnswer = {
|
||||||
|
startColor: userStartColor,
|
||||||
|
endColor: userEndColor,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (JSON.stringify(userAnswer) === JSON.stringify(normalizedAnswer)) {
|
||||||
isMatched = true;
|
isMatched = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// else {
|
if (isSingleColor) {
|
||||||
else if (type.includes('shape') || type.includes('text') || type.includes('clipping')) {
|
|
||||||
const color = parseColorToHex(item.value);
|
const color = parseColorToHex(item.value);
|
||||||
userAnswer = color;
|
userAnswer = color;
|
||||||
normalizedAnswer = rightAnswer.toLowerCase?.();
|
|
||||||
|
|
||||||
// 하나라도 일치하면 정답
|
|
||||||
if (userAnswer === normalizedAnswer) {
|
if (userAnswer === normalizedAnswer) {
|
||||||
isMatched = true;
|
isMatched = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
totalScore += compareAndScore(userAnswer, normalizedAnswer, point, key, scoringResult);
|
totalScore += compareAndScore(userAnswer, normalizedAnswer, point, key, scoringResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,18 +9,17 @@ const { DOMParser } = require('xmldom');
|
|||||||
const findSimilarString = require('./findSimilarString');
|
const findSimilarString = require('./findSimilarString');
|
||||||
const getGpdpScore = require('./gpdpScoring.js');
|
const getGpdpScore = require('./gpdpScoring.js');
|
||||||
const getToday = require('./getToday.js');
|
const getToday = require('./getToday.js');
|
||||||
// const { userInfo } = require('os');
|
|
||||||
// const { get } = require('http');
|
|
||||||
const todayDate = getToday();
|
const todayDate = getToday();
|
||||||
|
|
||||||
const examRound = '2506';
|
const examRound = '2507';
|
||||||
|
|
||||||
const DICorDPI = 'DIC'
|
const DICorDPI = 'DIC'
|
||||||
// const DICorDPI = 'DPI'
|
// const DICorDPI = 'DPI'
|
||||||
const examTypes = [
|
const examTypes = [
|
||||||
'A',
|
// 'A',
|
||||||
'B',
|
'B',
|
||||||
'C',
|
// 'C',
|
||||||
'D'
|
// 'D'
|
||||||
];
|
];
|
||||||
|
|
||||||
// testMode가 true일 경우 TEST 폴더에 있는 답안 파일을 읽어옴
|
// testMode가 true일 경우 TEST 폴더에 있는 답안 파일을 읽어옴
|
||||||
@@ -31,19 +30,13 @@ const outputExcelFiles = [];
|
|||||||
|
|
||||||
examTypes.forEach(type => {
|
examTypes.forEach(type => {
|
||||||
const jsonPath = `./${DICorDPI}_${examRound}${type}.json`
|
const jsonPath = `./${DICorDPI}_${examRound}${type}.json`
|
||||||
if ( !fs.existsSync(jsonPath)) return;
|
if (!fs.existsSync(jsonPath)) return;
|
||||||
const scoringJson = require(jsonPath);
|
const scoringJson = require(jsonPath);
|
||||||
const answerFilesDir = `./output/${examRound}/${type}/${testMode ? 'TEST' : DICorDPI}`;
|
const answerFilesDir = `./output/${examRound}/${type}/${testMode ? 'TEST' : DICorDPI}`;
|
||||||
let outputExcelFile = `./${todayDate}_${DICorDPI}_${examRound}${type}_채점결과.xlsx`;
|
let outputExcelFile = `./${todayDate}_${DICorDPI}_${examRound}${type}_채점결과.xlsx`;
|
||||||
if (testMode) {
|
if (testMode) {
|
||||||
outputExcelFile = `./00_${DICorDPI}_${examRound}${type}_TEST.xlsx`;
|
outputExcelFile = `./00_${DICorDPI}_${examRound}${type}_TEST.xlsx`;
|
||||||
}
|
}
|
||||||
// const scoringJson = require(`./DIC_${examRound}${type}.json`);
|
|
||||||
// const answerFilesDir = `./output/${examRound}/${type}/${testMode ? 'TEST' : 'DIC'}`;
|
|
||||||
// let outputExcelFile = `./${todayDate}_DIC_${examRound}${type}_채점결과.xlsx`;
|
|
||||||
// if (testMode) {
|
|
||||||
// outputExcelFile = `./00_DIC_${examRound}${type}_TEST.xlsx`;
|
|
||||||
|
|
||||||
|
|
||||||
// 답안 폴더 내부에 디렉토리가 아닌 일반 파일이 있을 경우 디렉토리만 필터링 해서 불러옴
|
// 답안 폴더 내부에 디렉토리가 아닌 일반 파일이 있을 경우 디렉토리만 필터링 해서 불러옴
|
||||||
const studentDirs = fs.readdirSync(answerFilesDir).filter(file => {
|
const studentDirs = fs.readdirSync(answerFilesDir).filter(file => {
|
||||||
@@ -64,7 +57,6 @@ examTypes.forEach(type => {
|
|||||||
|
|
||||||
// DIAT시험 프로젝트로 생성시 gmep확장자로
|
// DIAT시험 프로젝트로 생성시 gmep확장자로
|
||||||
// 교육용 프로젝프로 생성시 gmdp확장자로 생성됨
|
// 교육용 프로젝프로 생성시 gmdp확장자로 생성됨
|
||||||
// 두 경우 모두 처리
|
|
||||||
const gmepFile = fs.readdirSync(studentDir).filter(
|
const gmepFile = fs.readdirSync(studentDir).filter(
|
||||||
file => file.toLowerCase().endsWith('.gmep')
|
file => file.toLowerCase().endsWith('.gmep')
|
||||||
// || file.toLowerCase().endsWith('.gmdp')
|
// || file.toLowerCase().endsWith('.gmdp')
|
||||||
@@ -669,11 +661,11 @@ function getGmepScore(gmepData, scoringJson, index) {
|
|||||||
else {
|
else {
|
||||||
const attributes = fadeoutEffect.attributes;
|
const attributes = fadeoutEffect.attributes;
|
||||||
const id = attributes.getNamedItem('ID').value;
|
const id = attributes.getNamedItem('ID').value;
|
||||||
const playtime = attributes.getNamedItem('VID8').value;
|
const duration = attributes.getNamedItem('VID8')?.value;
|
||||||
|
|
||||||
userAnswer = {
|
userAnswer = {
|
||||||
"ID": id,
|
"ID": id,
|
||||||
"PlayTime": playtime,
|
"Duration": duration,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
~$output.xlsx
BIN
~$output.xlsx
Binary file not shown.
Binary file not shown.
BIN
회차별채점자료/2506/excel_채점결과/250707_DIC_2506A_채점결과.xlsx
Normal file
BIN
회차별채점자료/2506/excel_채점결과/250707_DIC_2506A_채점결과.xlsx
Normal file
Binary file not shown.
BIN
회차별채점자료/2506/excel_채점결과/250707_DIC_2506B_채점결과.xlsx
Normal file
BIN
회차별채점자료/2506/excel_채점결과/250707_DIC_2506B_채점결과.xlsx
Normal file
Binary file not shown.
BIN
회차별채점자료/2506/excel_채점결과/250707_DIC_2506C_채점결과.xlsx
Normal file
BIN
회차별채점자료/2506/excel_채점결과/250707_DIC_2506C_채점결과.xlsx
Normal file
Binary file not shown.
BIN
회차별채점자료/2506/excel_채점결과/250707_DPI_2506C_채점결과.xlsx
Normal file
BIN
회차별채점자료/2506/excel_채점결과/250707_DPI_2506C_채점결과.xlsx
Normal file
Binary file not shown.
@@ -458,7 +458,7 @@
|
|||||||
"media": "음악.mp3",
|
"media": "음악.mp3",
|
||||||
"value": {
|
"value": {
|
||||||
"ID": "1",
|
"ID": "1",
|
||||||
"PlayTime": "60"
|
"Duration": "60"
|
||||||
},
|
},
|
||||||
"point": 2,
|
"point": 2,
|
||||||
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
@@ -456,7 +456,7 @@
|
|||||||
"media": "음악.mp3",
|
"media": "음악.mp3",
|
||||||
"value": {
|
"value": {
|
||||||
"ID": "1",
|
"ID": "1",
|
||||||
"PlayTime": "90"
|
"Duration": "90"
|
||||||
},
|
},
|
||||||
"point": 2,
|
"point": 2,
|
||||||
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
@@ -458,7 +458,7 @@
|
|||||||
"media": "음악.mp3",
|
"media": "음악.mp3",
|
||||||
"value": {
|
"value": {
|
||||||
"ID": "1",
|
"ID": "1",
|
||||||
"PlayTime": "60"
|
"Duration": "60"
|
||||||
},
|
},
|
||||||
"point": 2,
|
"point": 2,
|
||||||
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
@@ -486,18 +486,19 @@
|
|||||||
"3": {
|
"3": {
|
||||||
"type": "layer.exists",
|
"type": "layer.exists",
|
||||||
"ele": "//Layer/Name/@value",
|
"ele": "//Layer/Name/@value",
|
||||||
"value": "Flower",
|
"value": "Museum",
|
||||||
"point": 5,
|
"point": 5,
|
||||||
"desc": "Flower 레이어가 있는지 여부 체크"
|
"desc": "Museum 레이어가 있는지 여부 체크"
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"type": "layer.Effects",
|
"type": "layer.Effects",
|
||||||
"ele": "//Layer[Name[@value='{search}']]/Effects/Item",
|
"ele": "//Layer/Effects/Item",
|
||||||
"search": "Flower",
|
"ele_temp": "//Layer[Name[@value='{search}']]/Effects/Item",
|
||||||
|
"search": "Museum",
|
||||||
"value": {
|
"value": {
|
||||||
"name": "생동감",
|
"name": "선명하게",
|
||||||
"option": {
|
"option": {
|
||||||
"생동감": "40"
|
"양": "10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"point": 5,
|
"point": 5,
|
||||||
@@ -508,7 +509,11 @@
|
|||||||
"색조/채도": ["색조", "채도", "명도"],
|
"색조/채도": ["색조", "채도", "명도"],
|
||||||
"감마": ["리프트", "감마", "게인"],
|
"감마": ["리프트", "감마", "게인"],
|
||||||
"세피아": ["U", "V"],
|
"세피아": ["U", "V"],
|
||||||
"생동감": "생동감"
|
"생동감": "생동감",
|
||||||
|
"흐리게": "반경",
|
||||||
|
"글로우": ["반경", "밝기", "대비"],
|
||||||
|
"픽셀효과": "셀크기",
|
||||||
|
"선명하게": "양"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
@@ -527,7 +532,7 @@
|
|||||||
"7": {
|
"7": {
|
||||||
"type": "exists",
|
"type": "exists",
|
||||||
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
"value": "ELLIPSE",
|
"value": "ROUNDED_RECTANGLE",
|
||||||
"point": 3,
|
"point": 3,
|
||||||
"desc": "레이어 쉐이프 타입이 타원인지 체크"
|
"desc": "레이어 쉐이프 타입이 타원인지 체크"
|
||||||
},
|
},
|
||||||
@@ -535,8 +540,8 @@
|
|||||||
"type": "shape.size",
|
"type": "shape.size",
|
||||||
"ele": "//Layer//op_points",
|
"ele": "//Layer//op_points",
|
||||||
"value": {
|
"value": {
|
||||||
"width": 120,
|
"width": 90,
|
||||||
"height": 120
|
"height": 20
|
||||||
},
|
},
|
||||||
"point": 3,
|
"point": 3,
|
||||||
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
@@ -544,7 +549,7 @@
|
|||||||
"9": {
|
"9": {
|
||||||
"type": "shape.color",
|
"type": "shape.color",
|
||||||
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
"value": "7097BB",
|
"value": "FF0000",
|
||||||
"point": 6,
|
"point": 6,
|
||||||
"desc": ""
|
"desc": ""
|
||||||
},
|
},
|
||||||
@@ -552,7 +557,7 @@
|
|||||||
"type": "layer.blend.opacity",
|
"type": "layer.blend.opacity",
|
||||||
"ele": "//Layer",
|
"ele": "//Layer",
|
||||||
"value": {
|
"value": {
|
||||||
"BlendOp": "반사",
|
"BlendOp": "중첩",
|
||||||
"Opacity": "80"
|
"Opacity": "80"
|
||||||
},
|
},
|
||||||
"point": 6
|
"point": 6
|
||||||
@@ -600,15 +605,16 @@
|
|||||||
"5": {
|
"5": {
|
||||||
"type": "exists",
|
"type": "exists",
|
||||||
"ele": "//Layer//shape_type/@value",
|
"ele": "//Layer//shape_type/@value",
|
||||||
"value": "ROUNDED_RECTANGLE",
|
"value": "RECTANGLE",
|
||||||
"point": 3
|
"point": 3,
|
||||||
|
"desc": "모서리가 둥근 사각형 : ROUNDED_RECTANGLE / 사각형 : RECTANGLE"
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"type": "shape.size",
|
"type": "shape.size",
|
||||||
"ele": "//Layer//op_points",
|
"ele": "//Layer//op_points",
|
||||||
"value": {
|
"value": {
|
||||||
"width": 400,
|
"width": 380,
|
||||||
"height": 60
|
"height": 70
|
||||||
},
|
},
|
||||||
"point": 3,
|
"point": 3,
|
||||||
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
@@ -619,21 +625,21 @@
|
|||||||
"startColor": "gradient_start_color/@value",
|
"startColor": "gradient_start_color/@value",
|
||||||
"endColor": "gradient_end_color/@value",
|
"endColor": "gradient_end_color/@value",
|
||||||
"value": {
|
"value": {
|
||||||
"startColor": "ffe000",
|
"startColor": "00C9BA",
|
||||||
"endColor": "34A159"
|
"endColor": "A6A600"
|
||||||
},
|
},
|
||||||
"point": 6
|
"point": 6
|
||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"type": "text.exists",
|
"type": "text.exists",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
||||||
"value": "흰 꽃 사이 노란 꽃",
|
"value": "해양 박물관",
|
||||||
"point": 5
|
"point": 5
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"type": "exists",
|
"type": "exists",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
||||||
"value": "맑은 고딕",
|
"value": "바탕체",
|
||||||
"point": 3
|
"point": 3
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
@@ -646,25 +652,25 @@
|
|||||||
"11": {
|
"11": {
|
||||||
"type": "exists",
|
"type": "exists",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
||||||
"value": "30",
|
"value": "36",
|
||||||
"point": 3
|
"point": 3
|
||||||
},
|
},
|
||||||
"12": {
|
"12": {
|
||||||
"type": "text.color",
|
"type": "text.color",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
"value": "b46Ef8",
|
"value": "151DE8",
|
||||||
"point": 3
|
"point": 3
|
||||||
},
|
},
|
||||||
"13": {
|
"13": {
|
||||||
"type": "exists",
|
"type": "exists",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
||||||
"value": "7",
|
"value": "3",
|
||||||
"point": 3
|
"point": 3
|
||||||
},
|
},
|
||||||
"14": {
|
"14": {
|
||||||
"type": "text.color",
|
"type": "text.color",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
"value": "ffffff",
|
"value": "FFFFFF",
|
||||||
"point": 3
|
"point": 3
|
||||||
},
|
},
|
||||||
"15": {
|
"15": {
|
||||||
@@ -677,19 +683,21 @@
|
|||||||
"16": {
|
"16": {
|
||||||
"type": "exists",
|
"type": "exists",
|
||||||
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
"value": "RECTANGLE",
|
"value": "ELLIPSE",
|
||||||
"point": 3,
|
"point": 3,
|
||||||
"desc": {
|
"desc": {
|
||||||
"사각형": "RECTANGLE"
|
"사각형": "RECTANGLE",
|
||||||
|
"원형/타원형": "ELLIPSE",
|
||||||
|
"17~20 문항 option값 변경":""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"17": {
|
"17": {
|
||||||
"type": "clipping.size",
|
"type": "clipping.size",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
||||||
"option": "RECTANGLE",
|
"option": "ELLIPSE",
|
||||||
"value": {
|
"value": {
|
||||||
"width": 150,
|
"width": 180,
|
||||||
"height": 150
|
"height": 180
|
||||||
},
|
},
|
||||||
"point": 3,
|
"point": 3,
|
||||||
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
@@ -697,26 +705,26 @@
|
|||||||
"18": {
|
"18": {
|
||||||
"type": "exists",
|
"type": "exists",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
||||||
"option": "RECTANGLE",
|
"option": "ELLIPSE",
|
||||||
"value": "7",
|
"value": "7",
|
||||||
"point": 3
|
"point": 3
|
||||||
},
|
},
|
||||||
"19": {
|
"19": {
|
||||||
"type": "clipping.color",
|
"type": "clipping.color",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
"option": "RECTANGLE",
|
"option": "ELLIPSE",
|
||||||
"value": "e8e88e",
|
"value": "FF3030",
|
||||||
"point": 3,
|
"point": 3,
|
||||||
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
||||||
},
|
},
|
||||||
"20": {
|
"20": {
|
||||||
"type": "shadow",
|
"type": "shadow",
|
||||||
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
||||||
"option": "RECTANGLE",
|
"option": "ELLIPSE",
|
||||||
"value": {
|
"value": {
|
||||||
"shadow": true,
|
"shadow": true,
|
||||||
"width": "3",
|
"width": "5",
|
||||||
"distance": "5",
|
"distance": "3",
|
||||||
"blur": "1",
|
"blur": "1",
|
||||||
"angle": "320"
|
"angle": "320"
|
||||||
},
|
},
|
||||||
@@ -458,7 +458,7 @@
|
|||||||
"media": "음악.mp3",
|
"media": "음악.mp3",
|
||||||
"value": {
|
"value": {
|
||||||
"ID": "1",
|
"ID": "1",
|
||||||
"PlayTime": "60"
|
"Duration": "60"
|
||||||
},
|
},
|
||||||
"point": 2,
|
"point": 2,
|
||||||
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
BIN
회차별채점자료/2507/excel_채점기준표/DIC_2507A.xlsx
Normal file
BIN
회차별채점자료/2507/excel_채점기준표/DIC_2507A.xlsx
Normal file
Binary file not shown.
BIN
회차별채점자료/2507/excel_채점기준표/DIC_2507B.xlsx
Normal file
BIN
회차별채점자료/2507/excel_채점기준표/DIC_2507B.xlsx
Normal file
Binary file not shown.
BIN
회차별채점자료/2507/excel_채점기준표/DIC_2507C.xlsx
Normal file
BIN
회차별채점자료/2507/excel_채점기준표/DIC_2507C.xlsx
Normal file
Binary file not shown.
BIN
회차별채점자료/2507/excel_채점기준표/DPI_2507B.xlsx
Normal file
BIN
회차별채점자료/2507/excel_채점기준표/DPI_2507B.xlsx
Normal file
Binary file not shown.
BIN
회차별채점자료/2507/hwp_문제/DIC_2507A(레이어).hwp
Normal file
BIN
회차별채점자료/2507/hwp_문제/DIC_2507A(레이어).hwp
Normal file
Binary file not shown.
BIN
회차별채점자료/2507/hwp_문제/DIC_2507B(클리핑).hwp
Normal file
BIN
회차별채점자료/2507/hwp_문제/DIC_2507B(클리핑).hwp
Normal file
Binary file not shown.
BIN
회차별채점자료/2507/hwp_문제/DIC_2507C(클리핑).hwp
Normal file
BIN
회차별채점자료/2507/hwp_문제/DIC_2507C(클리핑).hwp
Normal file
Binary file not shown.
BIN
회차별채점자료/2507/hwp_문제/DPI_2507B.hwp
Normal file
BIN
회차별채점자료/2507/hwp_문제/DPI_2507B.hwp
Normal file
Binary file not shown.
737
회차별채점자료/2507/json_채점기준표/0730/DIC_2507A.json
Normal file
737
회차별채점자료/2507/json_채점기준표/0730/DIC_2507A.json
Normal file
@@ -0,0 +1,737 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "$.children[?(@.name=='계곡')].name",
|
||||||
|
"value": "계곡",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].name",
|
||||||
|
"value": "In the Valley",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "Arial",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].text.font.names[0]",
|
||||||
|
"value": "Arial-BoldItalicMT",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].text.font.sizes[0]",
|
||||||
|
"value": 48,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "$.children[?(@.name=='In the Valley')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "fffc09",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "$.children[?(@.name=='산속 계곡에서')].name",
|
||||||
|
"value": "산속 계곡에서",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "$.children[?(@.name=='산속 계곡에서')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "GulimChe",
|
||||||
|
"point": 2,
|
||||||
|
"desc": {
|
||||||
|
"돋움체": "DotumChe",
|
||||||
|
"궁서체": "GungsuhChe",
|
||||||
|
"굴림체": "GulimChe",
|
||||||
|
"휴먼옛체": "YetR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "$.children[?(@.name=='산속 계곡에서')].text.font.sizes[0]",
|
||||||
|
"value": 36,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "$.children[?(@.name=='산속 계곡에서')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "05aa20",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "$.children[?(@.name=='노란꽃')].name",
|
||||||
|
"value": "노란꽃",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 35)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 35
|
||||||
|
},
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[not(@Length<='5' and @ClipLength='-1')]/@ClipIndex",
|
||||||
|
"type": "mediaOrder",
|
||||||
|
"value": ["동영상.mp4", "이미지2.jpg", "이미지3.jpg", "이미지1.jpg"],
|
||||||
|
"point": 4,
|
||||||
|
"desc": "비디오1 트랙에 있는 클립의 ClipIndex값을 기준으로 CRClipArr에서 Path값을 가져와서 정답 채점, 클립의 ClipIndex값이 -1인 경우와 길이가 5프레임 이하인 경우는 제외한다."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
|
||||||
|
"type": "oneAnswer",
|
||||||
|
"value": {
|
||||||
|
"speed": "150"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "100당 1배속 / 130 = 1.3배속"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "startEnd",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"start": "0",
|
||||||
|
"end": "380"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "시작시간과 재생시간 정답값 입력, 3번문항은 '동영상.mp4' 클립의 길이를 확인하는 문항이므로 media는 수정할 필요가 없다."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "effect",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"ID": "168",
|
||||||
|
"VID100": "0.80000001",
|
||||||
|
"VID102": "8"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "value값의 키값(VID___)은 이펙트의 속성종류에 따라 변경되므로 채점기준표작성시 확인 필요"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "집을 드나드는 토끼",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "궁서체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "98",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "682f00",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Location",
|
||||||
|
"value": ["0.33229166", "0.93703705"],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "정답 파일의 자막 좌표를 기준으로 프로그램 내부적으로 0.1까지 오차를 허용한다"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.StartTime",
|
||||||
|
"value": 150,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "집을 드나드는 토끼",
|
||||||
|
"type": "video.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Mute",
|
||||||
|
"type": "Mute",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": "1",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "103",
|
||||||
|
"VID102": "8"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "13",
|
||||||
|
"Range": "500:560",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": 210,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "128",
|
||||||
|
"VID100": "3"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "20",
|
||||||
|
"Range": "710:770",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "67",
|
||||||
|
"VID101": "4"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "10",
|
||||||
|
"Range": "920:950",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "동물들의 생활 (Animal Life)",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "휴먼옛체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "140",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "d0f29c",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "video.Text.Outline",
|
||||||
|
"value": {
|
||||||
|
"width": "20",
|
||||||
|
"color": "1f5617"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "두께는 XML에서는 소수점으로 표기되지만, 프로그램 내부적으로 변환하여 사용하므로 현재 파일에서는 정수로 작성"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "opening.Text.FadeInEffect",
|
||||||
|
"value": {
|
||||||
|
"VID505": "4",
|
||||||
|
"VID507": "2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "오프닝자막의 나타나기 효과를 확인하는 문항. id속성은 VID505, playtime속성은 VID507으로 XML 내부에 표기되어 있다."
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "opening.StartTime",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오프닝자막의 시작시간 value 속성만 수정"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "동물들의 생활 (Animal Life)",
|
||||||
|
"type": "opening.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"ele": "",
|
||||||
|
"type": "audio.StartTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "audio.EndTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 890,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "audio.Effect",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": {
|
||||||
|
"ID": "1",
|
||||||
|
"Duration": "60"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "350"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*350"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "자유 변형 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "layer.exists",
|
||||||
|
"ele": "//Layer/Name/@value",
|
||||||
|
"value": "Flower",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "Flower 레이어가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "layer.Effects",
|
||||||
|
"ele": "//Layer[Name[@value='{search}']]/Effects/Item",
|
||||||
|
"search": "Flower",
|
||||||
|
"value": {
|
||||||
|
"name": "생동감",
|
||||||
|
"option": {
|
||||||
|
"생동감": "40"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": {
|
||||||
|
"흑백": "강도",
|
||||||
|
"밝기/대비": ["밝기", "대비"],
|
||||||
|
"노출": "노출",
|
||||||
|
"색조/채도": ["색조", "채도", "명도"],
|
||||||
|
"감마":["리프트","감마","게인"],
|
||||||
|
"세피아":["U","V"],
|
||||||
|
"생동감": "생동감"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "올가미 도구/이미지 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Effects/Item/Name/@value",
|
||||||
|
"value": "세피아",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "세피아 효과가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "ELLIPSE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 타입이 타원인지 체크"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 120,
|
||||||
|
"height": 120
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "shape.color",
|
||||||
|
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "7097BB",
|
||||||
|
"point": 6,
|
||||||
|
"desc": ""
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "layer.blend.opacity",
|
||||||
|
"ele": "//Layer",
|
||||||
|
"value": {
|
||||||
|
"BlendOp": "반사",
|
||||||
|
"Opacity": "80"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "450"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*450"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "배경색 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Layering",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "레이어 마스크 설정 확인"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "가로방향 흐릿하게 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//shape_type/@value",
|
||||||
|
"value": "ROUNDED_RECTANGLE",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 400,
|
||||||
|
"height": 60
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "gradient.color",
|
||||||
|
"ele": "//Layer/Shapes/Shape",
|
||||||
|
"startColor": "gradient_start_color/@value",
|
||||||
|
"endColor": "gradient_end_color/@value",
|
||||||
|
"value": {
|
||||||
|
"startColor": "ffe000",
|
||||||
|
"endColor": "34A159"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "text.exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
||||||
|
"value": "흰 꽃 사이 노란 꽃",
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
||||||
|
"value": "맑은 고딕",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/{style}/@value",
|
||||||
|
"style": "Italic",
|
||||||
|
"value": "True",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
||||||
|
"value": "30",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "b46Ef8",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
||||||
|
"value": "7",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"value": "ffffff",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Clipping",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"사각형": "RECTANGLE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"type": "clipping.size",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": {
|
||||||
|
"width": 150,
|
||||||
|
"height": 150
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": "7",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"type": "clipping.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": "e8e88e",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"type": "shadow",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": {
|
||||||
|
"shadow": true,
|
||||||
|
"width": "3",
|
||||||
|
"distance": "5",
|
||||||
|
"blur": "1",
|
||||||
|
"angle": "320"
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
751
회차별채점자료/2507/json_채점기준표/0730/DIC_2507B.json
Normal file
751
회차별채점자료/2507/json_채점기준표/0730/DIC_2507B.json
Normal file
@@ -0,0 +1,751 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].name",
|
||||||
|
"value": "My Friend Parrot",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "Arial",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.names[0]",
|
||||||
|
"value": "Arial-BoldItalicMT",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.sizes[0]",
|
||||||
|
"value": 48,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "1bc553",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].name",
|
||||||
|
"value": "내 친구 앵무새",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "GungsuhChe",
|
||||||
|
"point": 2,
|
||||||
|
"desc": {
|
||||||
|
"돋움체": "DotumChe",
|
||||||
|
"궁서체": "GungsuhChe",
|
||||||
|
"굴림체": "GulimChe",
|
||||||
|
"휴먼옛체": "YetR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.sizes[0]",
|
||||||
|
"value": 36,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "ffea00",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[not(@Length<='5' and @ClipLength='-1')]/@ClipIndex",
|
||||||
|
"type": "mediaOrder",
|
||||||
|
"value": ["동영상.mp4", "이미지3.jpg", "이미지1.jpg", "이미지2.jpg"],
|
||||||
|
"point": 4,
|
||||||
|
"desc": "클립의 ClipIndex값이 -1인 경우와 길이가 5프레임 이하인 경우는 제외한다."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
|
||||||
|
"type": "oneAnswer",
|
||||||
|
"value": {
|
||||||
|
"speed": "130"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "100당 1배속 / 130 = 1.3배속"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "startEnd",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"start": "0",
|
||||||
|
"end": "320"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "start: 시작시간 / end: 재생시간( 12.20 = 12*30 + 20 = 380 )"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "effect",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"ID": "43",
|
||||||
|
"VID100": "20",
|
||||||
|
"VID103": "1.3"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "value값의 키값(VID___)은 이펙트의 속성종류에 따라 변경되므로 채점기준표작성시 확인 필요"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "화려한 앵무새",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "굴림체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "110",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "23a23f",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Location",
|
||||||
|
"value": ["0.36354166", "0.92962962"],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "정답 파일의 자막 좌표를 기준으로 프로그램 내부적으로 0.1까지 오차를 허용한다"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.StartTime",
|
||||||
|
"value": 170,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "화려한 앵무새",
|
||||||
|
"type": "video.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Mute",
|
||||||
|
"type": "Mute",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": "1",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": 150,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "99",
|
||||||
|
"VID102": "60"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "15",
|
||||||
|
"Range": "440:470",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "173",
|
||||||
|
"VID101": "250"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "14",
|
||||||
|
"Range": "590:650",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "102",
|
||||||
|
"VID100": "4"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "9",
|
||||||
|
"Range": "800:830",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "휴먼옛체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "150",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "aff32a",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "video.Text.Outline",
|
||||||
|
"value": {
|
||||||
|
"width": "35",
|
||||||
|
"color": "0b00ff"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "두께는 XML에서는 소수점으로 표기되지만, 프로그램 내부적으로 변환하여 사용하므로 현재 파일에서는 정수로 작성"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "opening.Text.FadeInEffect",
|
||||||
|
"value": {
|
||||||
|
"VID505": "1",
|
||||||
|
"VID507": "3"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "오프닝자막의 나타나기 효과를 확인하는 문항. id속성은 VID505, playtime속성은 VID507으로 XML 내부에 표기되어 있다."
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "opening.StartTime",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오프닝자막의 시작시간 value 속성만 수정"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "앵무새를 찾아서 (Finding Parrot)",
|
||||||
|
"type": "opening.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"ele": "",
|
||||||
|
"type": "audio.StartTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "audio.EndTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 820,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "audio.Effect",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": {
|
||||||
|
"ID": "1",
|
||||||
|
"Duration": "60"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "350"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*350"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "자유 변형 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "layer.exists",
|
||||||
|
"ele": "//Layer/Name/@value",
|
||||||
|
"value": "Valley",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "Valley 레이어가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "layer.Effects",
|
||||||
|
"ele": "//Layer/Effects/Item",
|
||||||
|
"ele_temp": "//Layer[Name[@value='{search}']]/Effects/Item",
|
||||||
|
"search": "Valley",
|
||||||
|
"value": {
|
||||||
|
"name": "선명하게",
|
||||||
|
"option": {
|
||||||
|
"양": "7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": {
|
||||||
|
"흑백": "강도",
|
||||||
|
"밝기/대비": ["밝기", "대비"],
|
||||||
|
"노출": "노출",
|
||||||
|
"색조/채도": ["색조", "채도", "명도"],
|
||||||
|
"감마": ["리프트", "감마", "게인"],
|
||||||
|
"세피아": ["U", "V"],
|
||||||
|
"생동감": "생동감",
|
||||||
|
"흐리게": "반경",
|
||||||
|
"글로우": ["반경", "밝기", "대비"],
|
||||||
|
"픽셀효과": "셀크기",
|
||||||
|
"선명하게": "양"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "올가미 도구/이미지 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Effects/Item/Name/@value",
|
||||||
|
"value": "세피아",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "세피아 효과가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"모서리가 둥근 사각형": "ROUNDED_RECTANGLE",
|
||||||
|
"사각형": "RECTANGLE",
|
||||||
|
"타원": "ELLIPSE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 335,
|
||||||
|
"height": 35
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "shape.color",
|
||||||
|
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "46A64A",
|
||||||
|
"point": 6,
|
||||||
|
"desc": ""
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "layer.blend.opacity",
|
||||||
|
"ele": "//Layer",
|
||||||
|
"value": {
|
||||||
|
"BlendOp": "중첩",
|
||||||
|
"Opacity": "80"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "450"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*450"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "배경색 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Layering",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "레이어 마스크 설정 확인"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "가로방향 흐릿하게 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//shape_type/@value",
|
||||||
|
"value": "ROUNDED_RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "모서리가 둥근 사각형 : ROUNDED_RECTANGLE / 사각형 : RECTANGLE"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 400,
|
||||||
|
"height": 50
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "gradient.color",
|
||||||
|
"ele": "//Layer/Shapes/Shape",
|
||||||
|
"startColor": "gradient_start_color/@value",
|
||||||
|
"endColor": "gradient_end_color/@value",
|
||||||
|
"value": {
|
||||||
|
"startColor": "3CB241",
|
||||||
|
"endColor": "931FAD"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "text.exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
||||||
|
"value": "도깨비골 스카이밸리",
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
||||||
|
"value": "돋움",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/{style}/@value",
|
||||||
|
"style": "Italic",
|
||||||
|
"value": "True",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
||||||
|
"value": "24",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "AA2318",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
||||||
|
"value": "5",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"value": "FFFFFF",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Clipping",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "ELLIPSE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"사각형": "RECTANGLE",
|
||||||
|
"원형/타원형": "ELLIPSE",
|
||||||
|
"17~20 문항 option값 변경":""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"type": "clipping.size",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": {
|
||||||
|
"width": 170,
|
||||||
|
"height": 170
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": "3",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"type": "clipping.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": "4B7E5C",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"type": "shadow",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": {
|
||||||
|
"shadow": true,
|
||||||
|
"width": "5",
|
||||||
|
"distance": "2",
|
||||||
|
"blur": "1",
|
||||||
|
"angle": "320"
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
739
회차별채점자료/2507/json_채점기준표/0730/DIC_2507C.json
Normal file
739
회차별채점자료/2507/json_채점기준표/0730/DIC_2507C.json
Normal file
@@ -0,0 +1,739 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].name",
|
||||||
|
"value": "Wooden Playground",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "Arial",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].text.font.names[0]",
|
||||||
|
"value": "Arial-BoldItalicMT",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].text.font.sizes[0]",
|
||||||
|
"value": 48,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "$.children[?(@.name=='Wooden Playground')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "084f0e",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "$.children[?(@.name=='나무로 만든 놀이터')].name",
|
||||||
|
"value": "나무로 만든 놀이터",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "$.children[?(@.name=='나무로 만든 놀이터')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "GungsuhChe",
|
||||||
|
"point": 2,
|
||||||
|
"desc": {
|
||||||
|
"돋움체": "DotumChe",
|
||||||
|
"궁서체": "GungsuhChe",
|
||||||
|
"굴림체": "GulimChe",
|
||||||
|
"휴먼옛체": "YetR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "$.children[?(@.name=='나무로 만든 놀이터')].text.font.sizes[0]",
|
||||||
|
"value": 36,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "$.children[?(@.name=='나무로 만든 놀이터')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "f5e103",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[not(@Length<='5' and @ClipLength='-1')]/@ClipIndex",
|
||||||
|
"type": "mediaOrder",
|
||||||
|
"value": ["동영상.mp4", "이미지3.jpg", "이미지1.jpg", "이미지2.jpg"],
|
||||||
|
"point": 4,
|
||||||
|
"desc": "클립의 ClipIndex값이 -1인 경우와 길이가 5프레임 이하인 경우는 제외한다."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
|
||||||
|
"type": "oneAnswer",
|
||||||
|
"value": {
|
||||||
|
"speed": "110"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "100당 1배속 / 130 = 1.3배속"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "startEnd",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"start": "0",
|
||||||
|
"end": "355"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "시작시간과 재생시간 정답값 입력, 3번문항은 '동영상.mp4' 클립의 길이를 확인하는 문항이므로 media는 수정할 필요가 없다."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "effect",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"ID": "90",
|
||||||
|
"VID104": "5",
|
||||||
|
"VID103": "2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "value값의 키값(VID___)은 이펙트의 속성종류에 따라 변경되므로 채점기준표작성시 확인 필요"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "다양한 연주 악기들",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "굴림체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "110",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "ffeb3b",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Location",
|
||||||
|
"value": ["0.3125", "0.92962962"],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "정답 파일의 자막 좌표를 기준으로 프로그램 내부적으로 0.1까지 오차를 허용한다"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.StartTime",
|
||||||
|
"value": 160,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "다양한 연주 악기들",
|
||||||
|
"type": "video.Length",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Mute",
|
||||||
|
"type": "Mute",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": "1",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "173",
|
||||||
|
"VID105": "30"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "8",
|
||||||
|
"Range": "475:535",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "128",
|
||||||
|
"VID100": "10"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "10",
|
||||||
|
"Range": "685:715",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "184",
|
||||||
|
"VID100": "20"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "19",
|
||||||
|
"Range": "805:835",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "돋움체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "140",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "ff7419",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "video.Text.Outline",
|
||||||
|
"value": {
|
||||||
|
"width": "35",
|
||||||
|
"color": "3d30cd"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "두께는 XML에서는 소수점으로 표기되지만, 프로그램 내부적으로 변환하여 사용하므로 현재 파일에서는 정수로 작성"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "opening.Text.FadeInEffect",
|
||||||
|
"value": {
|
||||||
|
"VID505": "13",
|
||||||
|
"VID507": "2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "오프닝자막의 나타나기 효과를 확인하는 문항. id속성은 VID505, playtime속성은 VID507으로 XML 내부에 표기되어 있다."
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "opening.StartTime",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오프닝자막의 시작시간 value 속성만 수정"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "자연 소리 공원 (Natural Sound Park)",
|
||||||
|
"type": "opening.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"ele": "",
|
||||||
|
"type": "audio.StartTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "audio.EndTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 820,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "audio.Effect",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": {
|
||||||
|
"ID": "1",
|
||||||
|
"Duration": "30"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "350"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*350"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "자유 변형 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "layer.exists",
|
||||||
|
"ele": "//Layer/Name/@value",
|
||||||
|
"value": "Flower",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "Flower 레이어가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "layer.Effects",
|
||||||
|
"ele": "//Layer[Name[@value='{search}']]/Effects/Item",
|
||||||
|
"search": "Flower",
|
||||||
|
"value": {
|
||||||
|
"name": "생동감",
|
||||||
|
"option": {
|
||||||
|
"생동감": "40"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": {
|
||||||
|
"흑백": "강도",
|
||||||
|
"밝기/대비": ["밝기", "대비"],
|
||||||
|
"노출": "노출",
|
||||||
|
"색조/채도": ["색조", "채도", "명도"],
|
||||||
|
"감마": ["리프트", "감마", "게인"],
|
||||||
|
"세피아": ["U", "V"],
|
||||||
|
"생동감": "생동감"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "올가미 도구/이미지 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Effects/Item/Name/@value",
|
||||||
|
"value": "세피아",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "세피아 효과가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "ELLIPSE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 타입이 타원인지 체크"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 120,
|
||||||
|
"height": 120
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "shape.color",
|
||||||
|
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "7097BB",
|
||||||
|
"point": 6,
|
||||||
|
"desc": ""
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "layer.blend.opacity",
|
||||||
|
"ele": "//Layer",
|
||||||
|
"value": {
|
||||||
|
"BlendOp": "반사",
|
||||||
|
"Opacity": "80"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "450"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*450"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "배경색 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Layering",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "레이어 마스크 설정 확인"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "가로방향 흐릿하게 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//shape_type/@value",
|
||||||
|
"value": "ROUNDED_RECTANGLE",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 400,
|
||||||
|
"height": 60
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "gradient.color",
|
||||||
|
"ele": "//Layer/Shapes/Shape",
|
||||||
|
"startColor": "gradient_start_color/@value",
|
||||||
|
"endColor": "gradient_end_color/@value",
|
||||||
|
"value": {
|
||||||
|
"startColor": "ffe000",
|
||||||
|
"endColor": "34A159"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "text.exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
||||||
|
"value": "흰 꽃 사이 노란 꽃",
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
||||||
|
"value": "맑은 고딕",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/{style}/@value",
|
||||||
|
"style": "Italic",
|
||||||
|
"value": "True",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
||||||
|
"value": "30",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "b46Ef8",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
||||||
|
"value": "7",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"value": "ffffff",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Clipping",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"사각형": "RECTANGLE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"type": "clipping.size",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": {
|
||||||
|
"width": 150,
|
||||||
|
"height": 150
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": "7",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"type": "clipping.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": "e8e88e",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"type": "shadow",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
||||||
|
"option": "RECTANGLE",
|
||||||
|
"value": {
|
||||||
|
"shadow": true,
|
||||||
|
"width": "3",
|
||||||
|
"distance": "5",
|
||||||
|
"blur": "1",
|
||||||
|
"angle": "320"
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
751
회차별채점자료/2507/json_채점기준표/0730/DPI_2507B.json
Normal file
751
회차별채점자료/2507/json_채점기준표/0730/DPI_2507B.json
Normal file
@@ -0,0 +1,751 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"1": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].name",
|
||||||
|
"value": "My Friend Parrot",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "Arial",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.names[0]",
|
||||||
|
"value": "Arial-BoldItalicMT",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.sizes[0]",
|
||||||
|
"value": 48,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "$.children[?(@.name=='My Friend Parrot')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "1bc553",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].name",
|
||||||
|
"value": "내 친구 앵무새",
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.names[0]",
|
||||||
|
"type": "font",
|
||||||
|
"value": "GungsuhChe",
|
||||||
|
"point": 2,
|
||||||
|
"desc": {
|
||||||
|
"돋움체": "DotumChe",
|
||||||
|
"궁서체": "GungsuhChe",
|
||||||
|
"굴림체": "GulimChe",
|
||||||
|
"휴먼옛체": "YetR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.sizes[0]",
|
||||||
|
"value": 36,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "$.children[?(@.name=='내 친구 앵무새')].text.font.colors[0]",
|
||||||
|
"type": "color",
|
||||||
|
"value": "ffea00",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "$[?(@.width == 65 && @.height == 45)]",
|
||||||
|
"type": "size",
|
||||||
|
"value": {
|
||||||
|
"width": 65,
|
||||||
|
"height": 45
|
||||||
|
},
|
||||||
|
"point": 4
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"1": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[not(@Length<='5' and @ClipLength='-1')]/@ClipIndex",
|
||||||
|
"type": "mediaOrder",
|
||||||
|
"value": ["동영상.mp4", "이미지3.jpg", "이미지1.jpg", "이미지2.jpg"],
|
||||||
|
"point": 4,
|
||||||
|
"desc": "클립의 ClipIndex값이 -1인 경우와 길이가 5프레임 이하인 경우는 제외한다."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
|
||||||
|
"type": "oneAnswer",
|
||||||
|
"value": {
|
||||||
|
"speed": "120"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "100당 1배속 / 130 = 1.3배속"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "startEnd",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"start": "0",
|
||||||
|
"end": "350"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "start: 시작시간 / end: 재생시간( 12.20 = 12*30 + 20 = 380 )"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "effect",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": {
|
||||||
|
"ID": "43",
|
||||||
|
"VID100": "10",
|
||||||
|
"VID103": "1.2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "value값의 키값(VID___)은 이펙트의 속성종류에 따라 변경되므로 채점기준표작성시 확인 필요"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "재미있는 테마공원",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "바탕체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "110",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "8c3030",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Location",
|
||||||
|
"value": ["0.32291669", "0.92962962"],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "정답 파일의 자막 좌표를 기준으로 프로그램 내부적으로 0.1까지 오차를 허용한다"
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.StartTime",
|
||||||
|
"value": 160,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "재미있는 테마공원",
|
||||||
|
"type": "video.Length",
|
||||||
|
"value": 150,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "내부적으로 자막의 시작시간과 길이를 계산"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Mute",
|
||||||
|
"type": "Mute",
|
||||||
|
"media": "동영상.mp4",
|
||||||
|
"value": "1",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": 180,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "94",
|
||||||
|
"VID101": "7"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지3.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "32",
|
||||||
|
"Range": "470:530",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": 150,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "99",
|
||||||
|
"VID100": "70"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지1.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "13",
|
||||||
|
"Range": "650:680",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']/@Length",
|
||||||
|
"type": "imageLength",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": 210,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "imageOverlay",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "102",
|
||||||
|
"VID102": "10"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버레이 속성 키값(VID10X) 확인하고 변경"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"ele": "//CRTransFilter[@ClipIndex='{CRTrackClipIndex}']",
|
||||||
|
"type": "clipTransition",
|
||||||
|
"media": "이미지2.jpg",
|
||||||
|
"value": {
|
||||||
|
"ID": "19",
|
||||||
|
"Range": "830:890",
|
||||||
|
"Type": "2"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오버랩일 경우 Type속성값 16으로 변경"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr/@Name",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"23": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "굴림체",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"24": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text",
|
||||||
|
"value": "150",
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"25": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text.Color",
|
||||||
|
"value": "31b45e",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "컬러값은 RGB로 입력한다, [대소문자, #]허용 (#FFFFFF, ffffff 두 값 모두 허용)"
|
||||||
|
},
|
||||||
|
"26": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "video.Text.Outline",
|
||||||
|
"value": {
|
||||||
|
"width": "35",
|
||||||
|
"color": "ffffff"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "두께는 XML에서는 소수점으로 표기되지만, 프로그램 내부적으로 변환하여 사용하므로 현재 파일에서는 정수로 작성"
|
||||||
|
},
|
||||||
|
"27": {
|
||||||
|
"ele": "//CROwneUnit[{index}]/CRCUnitArr",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "opening.Text.FadeInEffect",
|
||||||
|
"value": {
|
||||||
|
"VID505": "3",
|
||||||
|
"VID507": "2"
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "오프닝자막의 나타나기 효과를 확인하는 문항. id속성은 VID505, playtime속성은 VID507으로 XML 내부에 표기되어 있다."
|
||||||
|
},
|
||||||
|
"28": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "opening.StartTime",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2,
|
||||||
|
"desc": "오프닝자막의 시작시간 value 속성만 수정"
|
||||||
|
},
|
||||||
|
"29": {
|
||||||
|
"ele": "",
|
||||||
|
"search": "스카이밸리 도깨비골 (Sky Valley)",
|
||||||
|
"type": "opening.Length",
|
||||||
|
"value": 120,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"ele": "",
|
||||||
|
"type": "audio.StartTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 0,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"31": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']",
|
||||||
|
"type": "audio.EndTime",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": 870,
|
||||||
|
"point": 2
|
||||||
|
},
|
||||||
|
"32": {
|
||||||
|
"ele": "//CRTrackList[@Name='오디오1']/CRTrackClip[@ClipIndex='{CRClipIndex}']//CRFilter",
|
||||||
|
"type": "audio.Effect",
|
||||||
|
"media": "음악.mp3",
|
||||||
|
"value": {
|
||||||
|
"ID": "1",
|
||||||
|
"Duration": "90"
|
||||||
|
},
|
||||||
|
"point": 2,
|
||||||
|
"desc": "ID속성-페이드인:0 / 페이드아웃: 1"
|
||||||
|
},
|
||||||
|
"33": {
|
||||||
|
"ele": "none",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "350"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*350"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "자유 변형 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "layer.exists",
|
||||||
|
"ele": "//Layer/Name/@value",
|
||||||
|
"value": "Valley",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "Valley 레이어가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "layer.Effects",
|
||||||
|
"ele": "//Layer/Effects/Item",
|
||||||
|
"ele_temp": "//Layer[Name[@value='{search}']]/Effects/Item",
|
||||||
|
"search": "Valley",
|
||||||
|
"value": {
|
||||||
|
"name": "선명하게",
|
||||||
|
"option": {
|
||||||
|
"양": "7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": {
|
||||||
|
"흑백": "강도",
|
||||||
|
"밝기/대비": ["밝기", "대비"],
|
||||||
|
"노출": "노출",
|
||||||
|
"색조/채도": ["색조", "채도", "명도"],
|
||||||
|
"감마": ["리프트", "감마", "게인"],
|
||||||
|
"세피아": ["U", "V"],
|
||||||
|
"생동감": "생동감",
|
||||||
|
"흐리게": "반경",
|
||||||
|
"글로우": ["반경", "밝기", "대비"],
|
||||||
|
"픽셀효과": "셀크기",
|
||||||
|
"선명하게": "양"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "올가미 도구/이미지 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Effects/Item/Name/@value",
|
||||||
|
"value": "세피아",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "세피아 효과가 있는지 여부 체크"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"모서리가 둥근 사각형": "ROUNDED_RECTANGLE",
|
||||||
|
"사각형": "RECTANGLE",
|
||||||
|
"타원": "ELLIPSE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 335,
|
||||||
|
"height": 35
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "shape.color",
|
||||||
|
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "46A64A",
|
||||||
|
"point": 6,
|
||||||
|
"desc": ""
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "layer.blend.opacity",
|
||||||
|
"ele": "//Layer",
|
||||||
|
"value": {
|
||||||
|
"BlendOp": "중첩",
|
||||||
|
"Opacity": "80"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"1": {
|
||||||
|
"type": "canvas.Size",
|
||||||
|
"ele": "//Document/Width/@value | //Document/Height/@value",
|
||||||
|
"value": ["650", "450"],
|
||||||
|
"point": 5,
|
||||||
|
"desc": "캔버스 사이즈 650*450"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 5,
|
||||||
|
"desc": "배경색 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Layering",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "레이어 마스크 설정 확인"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "가로방향 흐릿하게 문항은 채점 불가"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//shape_type/@value",
|
||||||
|
"value": "ROUNDED_RECTANGLE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "모서리가 둥근 사각형 : ROUNDED_RECTANGLE / 사각형 : RECTANGLE"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"type": "shape.size",
|
||||||
|
"ele": "//Layer//op_points",
|
||||||
|
"value": {
|
||||||
|
"width": 400,
|
||||||
|
"height": 50
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"type": "gradient.color",
|
||||||
|
"ele": "//Layer/Shapes/Shape",
|
||||||
|
"startColor": "gradient_start_color/@value",
|
||||||
|
"endColor": "gradient_end_color/@value",
|
||||||
|
"value": {
|
||||||
|
"startColor": "3CB241",
|
||||||
|
"endColor": "931FAD"
|
||||||
|
},
|
||||||
|
"point": 6
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"type": "text.exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
|
||||||
|
"value": "도깨비골 스카이밸리",
|
||||||
|
"point": 5
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
|
||||||
|
"value": "돋움",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/{style}/@value",
|
||||||
|
"style": "Italic",
|
||||||
|
"value": "True",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
|
||||||
|
"value": "24",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
|
||||||
|
"value": "AA2318",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
|
||||||
|
"value": "5",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"type": "text.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"value": "FFFFFF",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/MaskOpType/@value",
|
||||||
|
"value": "Clipping",
|
||||||
|
"point": 6,
|
||||||
|
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
|
||||||
|
},
|
||||||
|
"16": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer/Shapes/Shape/shape_type/@value",
|
||||||
|
"value": "ELLIPSE",
|
||||||
|
"point": 3,
|
||||||
|
"desc": {
|
||||||
|
"사각형": "RECTANGLE",
|
||||||
|
"원형/타원형": "ELLIPSE",
|
||||||
|
"17~20 문항 option값 변경":""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"type": "clipping.size",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']//op_points",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": {
|
||||||
|
"width": 170,
|
||||||
|
"height": 170
|
||||||
|
},
|
||||||
|
"point": 3,
|
||||||
|
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"type": "exists",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']/outline_peninfo/Width/@value",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": "3",
|
||||||
|
"point": 3
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"type": "clipping.color",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}' and contains(draw_type/@value, 'Outline')]/primary_color/@value",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": "4B7E5C",
|
||||||
|
"point": 3,
|
||||||
|
"desc": "채우기:secondary_color, 외곽선:primary_color"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"type": "shadow",
|
||||||
|
"ele": "//Layer//Shape[shape_type/@value='{option}']",
|
||||||
|
"option": "ELLIPSE",
|
||||||
|
"value": {
|
||||||
|
"shadow": true,
|
||||||
|
"width": "5",
|
||||||
|
"distance": "2",
|
||||||
|
"blur": "1",
|
||||||
|
"angle": "320"
|
||||||
|
},
|
||||||
|
"point": 5,
|
||||||
|
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
|
||||||
|
},
|
||||||
|
"21": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "기본설정"
|
||||||
|
},
|
||||||
|
"22": {
|
||||||
|
"type": "none",
|
||||||
|
"ele": "",
|
||||||
|
"point": 0,
|
||||||
|
"desc": "파일명 확인"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user