2504회 채점기준표/자료 업데이트

This commit is contained in:
2025-05-02 17:36:01 +09:00
parent d03361bebf
commit 38a323c0b0
44 changed files with 8459 additions and 440 deletions

BIN
00_DIC_2504A_TEST.xlsx Normal file

Binary file not shown.

BIN
00_DIC_2504B_TEST.xlsx Normal file

Binary file not shown.

BIN
00_DIC_2504C_TEST.xlsx Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

689
DIC_2503A_layer.json Normal file
View File

@@ -0,0 +1,689 @@
{
"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=='Wooden playground')].name",
"value": "Wooden playground",
"point": 4
},
"7": {
"ele": "$.children[?(@.name=='Wooden playground')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 2
},
"8": {
"ele": "$.children[?(@.name=='Wooden playground')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 2
},
"9": {
"ele": "$.children[?(@.name=='Wooden playground')].text.font.sizes[0]",
"value": 48,
"point": 2
},
"10": {
"ele": "$.children[?(@.name=='Wooden playground')].text.font.colors[0]",
"type": "color",
"value": "801717",
"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": "YetR",
"point": 2
},
"16": {
"ele": "$.children[?(@.name=='나무 놀이터')].text.font.sizes[0]",
"value": 36,
"point": 2
},
"17": {
"ele": "$.children[?(@.name=='나무 놀이터')].text.font.colors[0]",
"type": "color",
"value": "0e4510",
"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": {
"videoStartTime": 170,
"openingStartTime": 0,
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"type": "array",
"value": [
"동영상.mp4",
"이미지1.jpg",
"이미지3.jpg",
"이미지2.jpg"
],
"point": 4
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='150']",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
"end": "380",
"point": 2
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='40'][@VID100='20'][@VID103='0.5']",
"point": 3
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "video",
"value": "자연 놀이터",
"point": 3
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "자연 놀이터",
"type": "video",
"value": "굴림체",
"point": 2
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "자연 놀이터",
"type": "video",
"value": "100",
"point": 2
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "자연 놀이터",
"type": "video",
"value": "-16711795",
"point": 2
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "자연 놀이터",
"value": [
0.39375001,
0.93333334
],
"point": 2
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "자연 놀이터",
"type": "video",
"value": 170,
"point": 2
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "자연 놀이터",
"type": "video",
"value": "120",
"point": 2
},
"12": {
"existEle": "//CRClip[@Path='동영상.mp4']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"type": "searchIndex",
"value": "1",
"point": 2
},
"13": {
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']",
"value": [
"103",
"7"
],
"point": 2
},
"15": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"55",
"470:530",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"16": {
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"17": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"69",
"50"
],
"point": 2
},
"18": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"93",
"680:740",
"16"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"19": {
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID100']",
"value": [
"132",
"90"
],
"point": 2
},
"21": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"25",
"860:890",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "opening",
"value": "자연 속 놀이터 Nature playground",
"point": 3
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": "휴먼옛체",
"point": 2
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": "150",
"point": 2
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": "-13962321",
"point": 2
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": [
"0.2",
"-1659649"
],
"point": 2
},
"27": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value":[
"5",
"3"
],
"point": 3
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": 0,
"point": 2
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": "120",
"point": 2
},
"30": {
"ele": "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]",
"point": 2
},
"31": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='750']",
"point": 2
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='90']",
"point": 2
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"350"
],
"point": 5,
"desc": "캔버스 사이즈 650*350"
},
"2": {
"ele": "none",
"point": 5,
"desc": "자유 변형 문항은 채점 불가"
},
"3": {
"type" : "isExist",
"ele": "//Layer/Name/@value",
"value": "Tracking",
"point": 5,
"desc": "Tracking 레이어가 있는지 여부 체크"
},
"4": {
"type" : "multiValue",
"ele": "//Layer[Name[@value='{layer}']]/Effects/Item/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value",
"layer" : "Tracking",
"option" : "brightness",
"value" : [
"30",
"밝기/대비"
],
"point": 5,
"desc": "Tracking 레이어의 효과 체크"
},
"5": {
"ele": "none",
"point": 6,
"desc": "올가미 도구/이미지 문항은 채점 불가"
},
"6": {
"type" : "isExist",
"ele": "//Layer/Effects/Item/Name/@value",
"value" : "세피아",
"point": 6,
"desc": "세피아 효과가 있는지 여부 체크"
},
"7": {
"type": "exact",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ELLIPSE",
"point": 3,
"desc": "레이어 쉐이프 타입이 타원인지 체크"
},
"8": {
"type": "size",
"posX": "//Layer//op_points[Item]/Item[last()]/X/@value - //Layer//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer//op_points[Item]/Item[last()]/Y/@value - //Layer//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 80,
"height": 80
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"9": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "999999",
"point": 6,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"10": {
"type" : "multiValue",
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"value" : [
"색 회피율",
"80"
],
"point": 5,
"desc": "혼합모드(색 회피율, 불투명도 : 80)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"ele": "//Layer[contains(Name/@value, 'Layer 2')][MaskOpType/@value='Layering']",
"point": 6
},
"4": {
"ele": "none",
"point": 5,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"ele": "//Layer[contains(Name/@value, 'Layer 3')]//shape_type/@value",
"answer": "RECTANGLE",
"point": 6
},
"6": {
"type": "size",
"posX": "//Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[last()]/X/@value - //Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[last()]/Y/@value - //Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 300,
"height": 50
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"startColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_start_color/@value",
"endColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_end_color/@value",
"value": {
"startColor": "347813",
"endColor": "041177"
},
"point": 6
},
"8": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
"value": "어린이 과학관",
"point": 5
},
"9": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
"value": "돋움",
"point": 3
},
"10": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Italic/@value",
"value": "True",
"point": 3
},
"11": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
"value": "32",
"point": 3
},
"12": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "f04da5",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "3",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "ffe000",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"ele": "//Layer[MaskOpType/@value='Clipping'][last()]",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"ele": "//Layer[contains(Name/@value, 'Layer 3')]//shape_type/@value",
"value": "RECTANGLE",
"point": 3
},
"17": {
"type": "size",
"posX": "//Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[last()]/X/@value - //Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[last()]/Y/@value - //Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 150,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"ele": "//Layer[contains(Name/@value, 'Layer 5')]//outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "008878",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "5",
"distance": "3",
"blur": "1",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
},
"21": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}

690
DIC_2503B_clipping.json Normal file
View File

@@ -0,0 +1,690 @@
{
"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=='Time to stroll')].name",
"value": "Time to stroll",
"point": 4
},
"6": {
"ele": "$.children[?(@.name=='Time to stroll')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 2
},
"7": {
"ele": "$.children[?(@.name=='Time to stroll')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 2
},
"8": {
"ele": "$.children[?(@.name=='Time to stroll')].text.font.sizes[0]",
"value": 48,
"point": 2
},
"9": {
"ele": "$.children[?(@.name=='Time to stroll')].text.font.colors[0]",
"type": "color",
"value": "ff9000",
"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
},
"15": {
"ele": "$.children[?(@.name=='즐거운 산책 시간')].text.font.sizes[0]",
"value": 36,
"point": 2
},
"16": {
"ele": "$.children[?(@.name=='즐거운 산책 시간')].text.font.colors[0]",
"type": "color",
"value": "035b80",
"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": {
"videoStartTime": 180,
"openingStartTime": 0,
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"type": "array",
"value": [
"동영상.mp4",
"이미지2.jpg",
"이미지1.jpg",
"이미지3.jpg"
],
"point": 4
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='120']",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
"end": "360",
"point": 2
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@Type='1'][@ID='86'][@VID100='5'][@VID101='30']",
"point": 3
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "video",
"value": "숲 속으로 떠나는 여행",
"point": 3
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "숲 속으로 떠나는 여행",
"type": "video",
"value": "바탕체",
"point": 2
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "숲 속으로 떠나는 여행",
"type": "video",
"value": "110",
"point": 2
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "숲 속으로 떠나는 여행",
"type": "video",
"value": "-16769281",
"point": 2
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "숲 속으로 떠나는 여행",
"value": [
0.28229165,
0.92962962
],
"point": 2
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "숲 속으로 떠나는 여행",
"type": "videoIsExist",
"value": [179, 180],
"point": 2,
"desc": "출제 오류로 인해 두 가지 정답 모두 인정"
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "숲 속으로 떠나는 여행",
"type": "video",
"value": "120",
"point": 2
},
"12": {
"existEle": "//CRClip[@Path='동영상.mp4']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"type": "searchIndex",
"value": "1",
"point": 2
},
"13": {
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"125",
"8"
],
"point": 2
},
"15": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"96",
"450:540",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"16": {
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"17": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID100']",
"value": [
"99",
"50"
],
"point": 2
},
"18": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"35",
"660:720",
"16"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"19": {
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"102",
"8"
],
"point": 2
},
"21": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"1",
"810:840",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "opening",
"value": "길가에 피어있는 꽃 Roadside flowers",
"point": 3
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": "휴먼편지체",
"point": 2
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": "130",
"point": 2
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": "-9664512",
"point": 2
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": [
"0.40000001",
"-3868161"
],
"point": 2
},
"27": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": [
"23",
"2"
],
"point": 3
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": 0,
"point": 2
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": "120",
"point": 2
},
"30": {
"ele": "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]",
"point": 2
},
"31": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='740']",
"point": 2
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='0'][@VID8='60']",
"point": 2
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"350"
],
"point": 5,
"desc": "캔버스 사이즈 650*350"
},
"2": {
"ele": "none",
"point": 5,
"desc": "자유 변형 문항은 채점 불가"
},
"3": {
"type": "isExist",
"ele": "//Layer/Name/@value",
"value": "Tracking",
"point": 5,
"desc": "Tracking 레이어가 있는지 여부 체크"
},
"4": {
"type": "multiValue",
"ele": "//Layer[Name[@value='{layer}']]/Effects/Item/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value",
"layer": "Tracking",
"option": "brightness",
"value": [
"30",
"밝기/대비"
],
"point": 5,
"desc": "Tracking 레이어의 효과 체크"
},
"5": {
"ele": "none",
"point": 6,
"desc": "올가미 도구/이미지 문항은 채점 불가"
},
"6": {
"type": "isExist",
"ele": "//Layer/Effects/Item/Name/@value",
"value": "세피아",
"point": 6,
"desc": "세피아 효과가 있는지 여부 체크"
},
"7": {
"type": "exact",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ELLIPSE",
"point": 3,
"desc": "레이어 쉐이프 타입이 타원인지 체크"
},
"8": {
"type": "size",
"posX": "//Layer//op_points[Item]/Item[last()]/X/@value - //Layer//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer//op_points[Item]/Item[last()]/Y/@value - //Layer//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 80,
"height": 80
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"9": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "999999",
"point": 6,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"10": {
"type": "multiValue",
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"value": [
"색 회피율",
"80"
],
"point": 5,
"desc": "혼합모드(색 회피율, 불투명도 : 80)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"ele": "//Layer[contains(Name/@value, 'Layer 2')][MaskOpType/@value='Layering']",
"point": 6
},
"4": {
"ele": "none",
"point": 5,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"ele": "//Layer[contains(Name/@value, 'Layer 3')]//shape_type/@value",
"answer": "ROUNDED_RECTANGLE",
"point": 6
},
"6": {
"type": "size",
"posX": "//Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[last()]/X/@value - //Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[last()]/Y/@value - //Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 370,
"height": 60
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"startColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_start_color/@value",
"endColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_end_color/@value",
"value": {
"startColor": "347813",
"endColor": "041177"
},
"point": 6
},
"8": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
"value": "어린이 과학관",
"point": 5
},
"9": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
"value": "돋움",
"point": 3
},
"10": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Italic/@value",
"value": "True",
"point": 3
},
"11": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
"value": "32",
"point": 3
},
"12": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "f04da5",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "3",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "ffe000",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"ele": "//Layer[MaskOpType/@value='Clipping'][last()]",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"ele": "//Layer[contains(Name/@value, 'Layer 3')]//shape_type/@value",
"value": "RECTANGLE",
"point": 3
},
"17": {
"type": "size",
"posX": "//Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[last()]/X/@value - //Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[last()]/Y/@value - //Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 150,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"ele": "//Layer[contains(Name/@value, 'Layer 5')]//outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "008878",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "5",
"distance": "3",
"blur": "1",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
},
"21": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}

688
DIC_2503C_layer.json Normal file
View File

@@ -0,0 +1,688 @@
{
"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=='Park Rest Area')].name",
"value": "Park Rest Area",
"point": 4
},
"7": {
"ele": "$.children[?(@.name=='Park Rest Area')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 2
},
"8": {
"ele": "$.children[?(@.name=='Park Rest Area')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 2
},
"9": {
"ele": "$.children[?(@.name=='Park Rest Area')].text.font.sizes[0]",
"value": 48,
"point": 2
},
"10": {
"ele": "$.children[?(@.name=='Park Rest Area')].text.font.colors[0]",
"type": "color",
"value": "076414",
"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": "GungsuhChe",
"point": 2
},
"16": {
"ele": "$.children[?(@.name=='공원 쉼터')].text.font.sizes[0]",
"value": 36,
"point": 2
},
"17": {
"ele": "$.children[?(@.name=='공원 쉼터')].text.font.colors[0]",
"type": "color",
"value": "4f4300",
"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": {
"videoStartTime": 170,
"openingStartTime": 0,
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"type": "array",
"value": [
"동영상.mp4",
"이미지2.jpg",
"이미지3.jpg",
"이미지1.jpg"
],
"point": 4
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='150']",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
"end": "350",
"point": 2
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='56'][@VID100='80'][@VID101='100']",
"point": 3
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "video",
"value": "연못 전망대 가는 길",
"point": 3
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "연못 전망대 가는 길",
"type": "video",
"value": "바탕체",
"point": 2
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "연못 전망대 가는 길",
"type": "video",
"value": "100",
"point": 2
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "연못 전망대 가는 길",
"type": "video",
"value": "-2490121",
"point": 2
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "연못 전망대 가는 길",
"value": [
0.31979167,
0.93333334
],
"point": 2
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "연못 전망대 가는 길",
"type": "video",
"value": 170,
"point": 2
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "연못 전망대 가는 길",
"type": "video",
"value": "150",
"point": 2
},
"12": {
"existEle": "//CRClip[@Path='동영상.mp4']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"type": "searchIndex",
"value": "1",
"point": 2
},
"13": {
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"104",
"7"
],
"point": 2
},
"15": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"13",
"440:500",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"16": {
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"17": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID105']",
"value": [
"108",
"5"
],
"point": 2
},
"18": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"21",
"650:710",
"16"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"19": {
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"93",
"5"
],
"point": 2
},
"21": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"24",
"800:830",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "opening",
"value": "자연 테마 파크 Nature theme park",
"point": 3
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": "궁서체",
"point": 2
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": "150",
"point": 2
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": "-16715265",
"point": 2
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": [
"0.2",
"-6323684"
],
"point": 2
},
"27": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value":[
"1",
"3"
],
"point": 3
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": 0,
"point": 2
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": "120",
"point": 2
},
"30": {
"ele": "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]",
"point": 2
},
"31": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='800']",
"point": 2
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='90']",
"point": 2
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"350"
],
"point": 5,
"desc": "캔버스 사이즈 650*350"
},
"2": {
"ele": "none",
"point": 5,
"desc": "자유 변형 문항은 채점 불가"
},
"3": {
"type" : "isExist",
"ele": "//Layer/Name/@value",
"value": "Tracking",
"point": 5,
"desc": "Tracking 레이어가 있는지 여부 체크"
},
"4": {
"type" : "multiValue",
"ele": "//Layer[Name[@value='{layer}']]/Effects/Item/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value",
"layer" : "Tracking",
"option" : "brightness",
"value" : [
"30",
"밝기/대비"
],
"point": 5,
"desc": "Tracking 레이어의 효과 체크"
},
"5": {
"ele": "none",
"point": 6,
"desc": "올가미 도구/이미지 문항은 채점 불가"
},
"6": {
"type" : "isExist",
"ele": "//Layer/Effects/Item/Name/@value",
"value" : "세피아",
"point": 6,
"desc": "세피아 효과가 있는지 여부 체크"
},
"7": {
"type": "exact",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ELLIPSE",
"point": 3,
"desc": "레이어 쉐이프 타입이 타원인지 체크"
},
"8": {
"type": "size",
"posX": "//Layer//op_points[Item]/Item[last()]/X/@value - //Layer//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer//op_points[Item]/Item[last()]/Y/@value - //Layer//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 80,
"height": 80
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"9": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "999999",
"point": 6,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"10": {
"type" : "multiValue",
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"value" : [
"색 회피율",
"80"
],
"point": 5,
"desc": "혼합모드(색 회피율, 불투명도 : 80)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"ele": "//Layer[contains(Name/@value, 'Layer 2')][MaskOpType/@value='Layering']",
"point": 6
},
"4": {
"ele": "none",
"point": 5,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"ele": "//Layer[contains(Name/@value, 'Layer 3')]//shape_type/@value",
"answer": "RECTANGLE",
"point": 6
},
"6": {
"type": "size",
"posX": "//Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[last()]/X/@value - //Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[last()]/Y/@value - //Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 300,
"height": 50
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"startColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_start_color/@value",
"endColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_end_color/@value",
"value": {
"startColor": "347813",
"endColor": "041177"
},
"point": 6
},
"8": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
"value": "어린이 과학관",
"point": 5
},
"9": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
"value": "돋움",
"point": 3
},
"10": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Italic/@value",
"value": "True",
"point": 3
},
"11": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
"value": "32",
"point": 3
},
"12": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "f04da5",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "3",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "ffe000",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"ele": "//Layer[MaskOpType/@value='Clipping'][last()]",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"ele": "//Layer[contains(Name/@value, 'Layer 3')]//shape_type/@value",
"value": "RECTANGLE",
"point": 3
},
"17": {
"type": "size",
"posX": "//Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[last()]/X/@value - //Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[last()]/Y/@value - //Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 150,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"ele": "//Layer[contains(Name/@value, 'Layer 5')]//outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "008878",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "5",
"distance": "3",
"blur": "1",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
},
"21": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}

694
DIC_2504A.json Normal file
View File

@@ -0,0 +1,694 @@
{
"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=='Healing Cafe')].name",
"value": "Healing Cafe",
"point": 4
},
"6": {
"ele": "$.children[?(@.name=='Healing Cafe')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 2
},
"7": {
"ele": "$.children[?(@.name=='Healing Cafe')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 2
},
"8": {
"ele": "$.children[?(@.name=='Healing Cafe')].text.font.sizes[0]",
"value": 48,
"point": 2
},
"9": {
"ele": "$.children[?(@.name=='Healing Cafe')].text.font.colors[0]",
"type": "color",
"value": "cdf9c3",
"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": "GulimChe",
"point": 2
},
"15": {
"ele": "$.children[?(@.name=='나만의 힐링 카페')].text.font.sizes[0]",
"value": 36,
"point": 2
},
"16": {
"ele": "$.children[?(@.name=='나만의 힐링 카페')].text.font.colors[0]",
"type": "color",
"value": "92350c",
"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": {
"videoStartTime": 150,
"openingStartTime": 0,
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"type": "array",
"value": [
"동영상.mp4",
"이미지2.jpg",
"이미지3.jpg",
"이미지1.jpg"
],
"point": 4
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='140']",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
"end": "370",
"point": 2
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='70'][@VID100='40'][@VID101='60']",
"point": 3
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "video",
"value": "다양한 커피 원두",
"point": 3
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "다양한 커피 원두",
"type": "video",
"value": "돋움체",
"point": 2
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "다양한 커피 원두",
"type": "video",
"value": "110",
"point": 2
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "다양한 커피 원두",
"type": "video",
"value": "-5551815",
"point": 2
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "다양한 커피 원두",
"value": [
0.33229166,
0.92962962
],
"point": 2
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "다양한 커피 원두",
"type": "video",
"value": 150,
"point": 2
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "다양한 커피 원두",
"type": "video",
"value": "180",
"point": 2
},
"12": {
"existEle": "//CRClip[@Path='동영상.mp4']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"type": "searchIndex",
"value": "1",
"point": 2
},
"13": {
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"102",
"4"
],
"point": 2
},
"15": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"13",
"490:550",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"16": {
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"17": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"103",
"8"
],
"point": 2
},
"18": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"11",
"670:730",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"19": {
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID100']",
"value": [
"184",
"20"
],
"point": 2
},
"21": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"0",
"850:880",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "opening",
"value": "라떼아트 만들기 (Making latte art)",
"point": 3
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": "바탕체",
"point": 2
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": "140",
"point": 2
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": "-12036743",
"point": 2
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": [
"0.2",
"-3545400"
],
"point": 2
},
"27": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": [
"4",
"2"
],
"point": 3
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": 0,
"point": 2
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": "120",
"point": 2
},
"30": {
"ele": "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]",
"point": 2
},
"31": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='870']",
"point": 2
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='60']",
"point": 2
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"350"
],
"point": 5,
"desc": "캔버스 사이즈 650*350"
},
"2": {
"ele": "none",
"point": 5,
"desc": "자유 변형 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/Name/@value",
"value": "Germs",
"point": 5,
"desc": "Germs 레이어가 있는지 여부 체크"
},
"4": {
"type": "effects",
"ele": "//Layer[Name[@value='{layer}']]/Effects/Item",
"layer": "Germs",
"option": "amount",
"value": [
"선명하게",
"12"
],
"point": 5,
"desc": "Germs 레이어의 효과 체크"
},
"5": {
"ele": "none",
"point": 6,
"desc": "올가미 도구/이미지 문항은 채점 불가"
},
"6": {
"type": "exists",
"ele": "//Layer/Effects/Item/Name/@value",
"value": "세피아",
"point": 6,
"desc": "세피아 효과가 있는지 여부 체크"
},
"7": {
"type": "exact",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ELLIPSE",
"point": 3,
"desc": "레이어 쉐이프 타입이 ELLIPSE인지 체크"
},
"8": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 130,
"height": 80
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"9": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "000555",
"point": 6,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"10": {
"type": "multiValue",
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"value": [
"중첩",
"75"
],
"point": 6,
"desc": "혼합모드(중첩, 불투명도 : 75)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/MaskOpType/@value",
"value": "Layering",
"point": 6
},
"4": {
"ele": "none",
"point": 5,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"type": "exists",
"ele": "//Layer//shape_type/@value",
"value": "ROUNDED_RECTANGLE",
"point": 3
},
"6": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 370,
"height": 60
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"ele": "//Layer/Shapes/Shape",
"startColor": "gradient_start_color/@value",
"endColor": "gradient_end_color/@value",
"value": {
"startColor": "347813",
"endColor": "041177"
},
"point": 6
},
"8": {
"type": "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": "32",
"point": 3
},
"12": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "f04da5",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exists",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "3",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "ffe000",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"type": "boolean",
"ele": "//Layer[MaskOpType/@value='Clipping']",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"type": "exists",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "RECTANGLE",
"point": 3
},
"17": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 150,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"type": "exists",
"ele": "//Layer//outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "008878",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "5",
"distance": "3",
"blur": "1",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
},
"21": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}

691
DIC_2504B.json Normal file
View File

@@ -0,0 +1,691 @@
{
"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=='Flower Rock')].name",
"value": "Flower Rock",
"point": 4
},
"7": {
"ele": "$.children[?(@.name=='Flower Rock')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 2
},
"8": {
"ele": "$.children[?(@.name=='Flower Rock')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 2
},
"9": {
"ele": "$.children[?(@.name=='Flower Rock')].text.font.sizes[0]",
"value": 48,
"point": 2
},
"10": {
"ele": "$.children[?(@.name=='Flower Rock')].text.font.colors[0]",
"type": "color",
"value": "d6f592",
"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": "DotumChe",
"point": 2
},
"16": {
"ele": "$.children[?(@.name=='꽃과 바위')].text.font.sizes[0]",
"value": 36,
"point": 2
},
"17": {
"ele": "$.children[?(@.name=='꽃과 바위')].text.font.colors[0]",
"type": "color",
"value": "0d17d5",
"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": {
"videoStartTime": 170,
"openingStartTime": 0,
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"type": "array",
"value": [
"동영상.mp4",
"이미지3.jpg",
"이미지1.jpg",
"이미지2.jpg"
],
"point": 4
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='140']",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
"end": "370",
"point": 2
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='44'][@VID100='8'][@VID103='0.89999998']",
"point": 3
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "video",
"value": "화단의 꽃들",
"point": 3
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "화단의 꽃들",
"type": "video",
"value": "돋움체",
"point": 2
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "화단의 꽃들",
"type": "video",
"value": "110",
"point": 2
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "화단의 꽃들",
"type": "video",
"value": "-14986241",
"point": 2
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "화단의 꽃들",
"value": [
0.38333333,
0.92962962
],
"point": 2
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "화단의 꽃들",
"type": "video",
"value": 170,
"point": 2
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "화단의 꽃들",
"type": "video",
"value": "150",
"point": 2
},
"12": {
"existEle": "//CRClip[@Path='동영상.mp4']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"type": "searchIndex",
"value": "1",
"point": 2
},
"13": {
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']",
"value": [
"67",
"40"
],
"point": 2
},
"15": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"10",
"490:550",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"16": {
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"17": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']",
"value": [
"103",
"7"
],
"point": 2
},
"18": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"12",
"670:730",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"19": {
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"102",
"3"
],
"point": 2
},
"21": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"0",
"850:880",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "opening",
"value": "아름다운 꽃 축제 (Happy Flower Festival)",
"point": 3
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": "궁서체",
"point": 2
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": "140",
"point": 2
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": "-7601940",
"point": 2
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": [
"0.40000001",
"-3868161"
],
"point": 2
},
"27": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": [
"14",
"2"
],
"point": 3
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": 0,
"point": 2
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": "120",
"point": 2
},
"30": {
"ele": "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]",
"point": 2
},
"31": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='870']",
"point": 2
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='60']",
"point": 2
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"350"
],
"point": 5,
"desc": "캔버스 사이즈 650*350"
},
"2": {
"ele": "none",
"point": 5,
"desc": "자유 변형 문항은 채점 불가"
},
"3": {
"type": "isExist",
"ele": "//Layer/Name/@value",
"value": "Flower",
"point": 5,
"desc": "Flower 레이어가 있는지 여부 체크"
},
"4": {
"type": "multiValue",
"ele": "//Layer[Name[@value='{layer}']]/Effects/Item",
"layer": "Flower",
"option": "VibranceValue",
"value": [
"39",
"생동감"
],
"point": 5,
"desc": "Flower 레이어의 효과 체크"
},
"5": {
"ele": "none",
"point": 6,
"desc": "올가미 도구/이미지 문항은 채점 불가"
},
"6": {
"type": "exists",
"ele": "//Layer/Effects/Item/Name/@value",
"value": "세피아",
"point": 6,
"desc": "세피아 효과가 있는지 여부 체크"
},
"7": {
"type": "exact",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ELLIPSE",
"point": 3,
"desc": "레이어 쉐이프 타입이 타원인지 체크"
},
"8": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 80,
"height": 80
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"9": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "7097bb",
"point": 6,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"10": {
"type": "multiValue",
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"value": [
"반사",
"80"
],
"point": 5,
"desc": "혼합모드(색 회피율, 불투명도 : 80)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/MaskOpType/@value",
"value": "Layering",
"point": 6
},
"4": {
"ele": "none",
"point": 6,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"type": "exists",
"ele": "//Layer//shape_type/@value",
"value": "ROUNDED_RECTANGLE",
"point": 3
},
"6": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 400,
"height": 60
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"ele": "//Layer/Shapes/Shape",
"startColor": "gradient_start_color/@value",
"endColor": "gradient_end_color/@value",
"value": {
"startColor": "ffe000",
"endColor": "34a159"
},
"point": 6
},
"8": {
"type": "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": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "b46ef8",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exists",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "ffffff",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"ele": "//Layer[MaskOpType/@value='Clipping'][last()]",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"type": "exists",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "RACTANGLE",
"point": 3
},
"17": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 150,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"type": "exists",
"ele": "//Layer//outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "e8e88e",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "3",
"distance": "5",
"blur": "1",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
},
"21": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}

695
DIC_2504C.json Normal file
View File

@@ -0,0 +1,695 @@
{
"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=='Arboretum in spring')].name",
"value": "Arboretum in spring",
"point": 4
},
"6": {
"ele": "$.children[?(@.name=='Arboretum in spring')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 2
},
"7": {
"ele": "$.children[?(@.name=='Arboretum in spring')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 2
},
"8": {
"ele": "$.children[?(@.name=='Arboretum in spring')].text.font.sizes[0]",
"value": 48,
"point": 2
},
"9": {
"ele": "$.children[?(@.name=='Arboretum in spring')].text.font.colors[0]",
"type": "color",
"value": "a808d0",
"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 YetR GulimChe 선택해서 사용"
},
"15": {
"ele": "$.children[?(@.name=='봄날의 수목원')].text.font.sizes[0]",
"value": 36,
"point": 2
},
"16": {
"ele": "$.children[?(@.name=='봄날의 수목원')].text.font.colors[0]",
"type": "color",
"value": "096e34",
"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": {
"videoStartTime": 165,
"openingStartTime": 0,
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"type": "array",
"value": [
"동영상.mp4",
"이미지3.jpg",
"이미지2.jpg",
"이미지1.jpg"
],
"point": 4
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='130']",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
"end": "360",
"point": 2
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='151'][@VID103='0.80000001'][@VID104='20']",
"point": 3
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "video",
"value": "아름다운 봄꽃들",
"point": 3
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "아름다운 봄꽃들",
"type": "video",
"value": "굴림체",
"point": 2
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "아름다운 봄꽃들",
"type": "video",
"value": "110",
"point": 2
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "아름다운 봄꽃들",
"type": "video",
"value": "-13107457",
"point": 2
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "아름다운 봄꽃들",
"value": [
0.34270835,
0.92962962
],
"point": 2
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "아름다운 봄꽃들",
"type": "video",
"value": 165,
"point": 2
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "아름다운 봄꽃들",
"type": "video",
"value": "150",
"point": 2
},
"12": {
"existEle": "//CRClip[@Path='동영상.mp4']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"type": "searchIndex",
"value": "1",
"point": 2
},
"13": {
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID103']",
"value": [
"184",
"50"
],
"point": 2
},
"15": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"9",
"480:510",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"16": {
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"17": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID100']",
"value": [
"128",
"9"
],
"point": 2
},
"18": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"11",
"630:690",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"19": {
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "210",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID104']",
"value": [
"67",
"5"
],
"point": 2
},
"21": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"21",
"810:900",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "opening",
"value": "봄을 담은 정원 (A Spring Garden)",
"point": 3
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": "궁서체",
"point": 2
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": "140",
"point": 2
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": "-5232740",
"point": 2
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": [
"0.40000001",
"-2961922"
],
"point": 2
},
"27": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": [
"22",
"2"
],
"point": 3
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": 0,
"point": 2
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": "120",
"point": 2
},
"30": {
"ele": "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]",
"point": 2
},
"31": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='870']",
"point": 2
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='30']",
"point": 2
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"350"
],
"point": 5,
"desc": "캔버스 사이즈 650*350"
},
"2": {
"ele": "none",
"point": 5,
"desc": "자유 변형 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/Name/@value",
"value": "Germs",
"point": 5,
"desc": "Germs 레이어가 있는지 여부 체크"
},
"4": {
"type": "effects",
"ele": "//Layer[Name[@value='{layer}']]/Effects/Item",
"layer": "Germs",
"option": "amount",
"value": [
"선명하게",
"12"
],
"point": 5,
"desc": "Germs 레이어의 효과 체크"
},
"5": {
"ele": "none",
"point": 6,
"desc": "올가미 도구/이미지 문항은 채점 불가"
},
"6": {
"type": "exists",
"ele": "//Layer/Effects/Item/Name/@value",
"value": "세피아",
"point": 6,
"desc": "세피아 효과가 있는지 여부 체크"
},
"7": {
"type": "exact",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ELLIPSE",
"point": 3,
"desc": "레이어 쉐이프 타입이 ELLIPSE인지 체크"
},
"8": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 130,
"height": 80
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"9": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "000555",
"point": 6,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"10": {
"type": "multiValue",
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"value": [
"중첩",
"75"
],
"point": 6,
"desc": "혼합모드(중첩, 불투명도 : 75)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/MaskOpType/@value",
"value": "Layering",
"point": 6
},
"4": {
"ele": "none",
"point": 5,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"type": "exists",
"ele": "//Layer//shape_type/@value",
"value": "ROUNDED_RECTANGLE",
"point": 3
},
"6": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 370,
"height": 60
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"ele": "//Layer/Shapes/Shape",
"startColor": "gradient_start_color/@value",
"endColor": "gradient_end_color/@value",
"value": {
"startColor": "347813",
"endColor": "041177"
},
"point": 6
},
"8": {
"type": "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": "32",
"point": 3
},
"12": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "f04da5",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exists",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "3",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "ffe000",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"type": "boolean",
"ele": "//Layer[MaskOpType/@value='Clipping']",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"type": "exists",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "RECTANGLE",
"point": 3
},
"17": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 150,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"type": "exists",
"ele": "//Layer//outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "008878",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "5",
"distance": "3",
"blur": "1",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
},
"21": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}

View File

@@ -5,7 +5,7 @@ import unicodedata
def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, target_root_d, target_root_e):
for root, dirs, files in os.walk(source_root):
for dir_name in dirs:
if dir_name == 'DIC': # DIC 디렉토리 탐색
if dir_name.lower() == 'dic': # DIC 디렉토리 탐색
parent_dir = os.path.basename(os.path.dirname(os.path.join(root, dir_name)))
target_root = None
parent_dir = unicodedata.normalize('NFC', parent_dir)
@@ -24,21 +24,28 @@ def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, t
if target_root:
source_dic_path = os.path.join(root, dir_name)
target_dic_path = os.path.join(target_root, dir_name)
target_dir_name = dir_name.upper()
target_dic_path = os.path.join(target_root, target_dir_name)
# DIC 하위 디렉토리와 파일 복사
shutil.copytree(source_dic_path, target_dic_path, dirs_exist_ok=True)
print(f"Copied {source_dic_path} to {target_dic_path}")
test_folder_path = os.path.join(target_root, "TEST")
os.makedirs(test_folder_path, exist_ok=True)
else:
print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.")
# 사용법
source_directory = r"C:\Users\dra\project\GOM\DIC\회차별채점자료\0000\정답" # 원본 디렉토리 경로
target_directory_a = r".\output\A" # '2교시'의 타겟 경로
target_directory_b = r".\output\B" # '2교시'의 타겟 경로
target_directory_c = r".\output\C" # '3교시'의 타겟 경로
target_directory_d = r".\output\D" # '3교시'의 타겟 경로
target_directory_e = r".\output\E" # '3교시'의 타겟 경로
exam_round = "2504"
source_directory = r"C:\Users\dra\project\data\제2504회 정기\답안파일" # 원본 디렉토리 경로
target_directory_a = f".\\output\\{exam_round}\\A" # '1교시'의 타겟 경로
target_directory_b = f".\\output\\{exam_round}\\B" # '2교시'의 타겟 경로
target_directory_c = f".\\output\\{exam_round}\\C" # '3교시'의 타겟 경로
target_directory_d = f".\\output\\{exam_round}\\D" # '4교시'의 타겟 경로
target_directory_e = f".\\output\\{exam_round}\\E" # '5교시'의 타겟 경로
copy_dic_subdirs(source_directory, target_directory_a, target_directory_b, target_directory_c, target_directory_d, target_directory_e)

View File

@@ -11,7 +11,8 @@ const getGpdpScore = require('./gpdpScoring.js');
const getToday = require('./getToday.js');
const todayDate = getToday();
const examRound = '0000';
const examRound = '2504';
const dic_or_dpi = 'DIC'
const examTypes = [
'A',
'B',
@@ -27,8 +28,18 @@ const outputExcelFiles = [];
examTypes.forEach(type => {
const scoringJson = require(`./DIC_${examRound}${type}.json`);
const answerFilesDir = `./output/${type}/${testMode ? 'TEST' : 'DIC'}`;
const outputExcelFile = `./${todayDate}_DIC_${examRound}${type}_${testMode ? 'TEST.xlsx' : '채점결과.xlsx'}`;
const answerFilesDir = `./output/${examRound}/${type}/${testMode ? 'TEST' : dic_or_dpi}`;
let outputExcelFile = `./${todayDate}_${dic_or_dpi}_${examRound}${type}_채점결과.xlsx`;
if (testMode) {
outputExcelFile = `./00_${dic_or_dpi}_${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 => {

View File

@@ -1,149 +0,0 @@
{
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"ele": "//Layer[contains(Name/@value, 'Layer 2')][MaskOpType/@value='Layering']",
"point": 6
},
"4": {
"ele": "none",
"point": 5,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"ele": "//Layer[contains(Name/@value, 'Layer 3')]//shape_type/@value",
"answer": "ROUNDED_RECTANGLE",
"point": 6
},
"6": {
"type": "size",
"posX": "//Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[last()]/X/@value - //Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[last()]/Y/@value - //Layer[contains(Name/@value, 'Layer 3')]//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 370,
"height": 60
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"startColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_start_color/@value",
"endColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_end_color/@value",
"value": {
"startColor": "347813",
"endColor": "041177"
},
"point": 6
},
"8": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
"value": "어린이 과학관",
"point": 5
},
"9": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
"value": "돋움",
"point": 3
},
"10": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Italic/@value",
"value": "True",
"point": 3
},
"11": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
"value": "32",
"point": 3
},
"12": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "f04da5",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exact",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "3",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "ffe000",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"ele": "//Layer[MaskOpType/@value='Clipping'][last()]",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"ele": "//Layer[contains(Name/@value, 'Layer 3')]//shape_type/@value",
"value": "RECTANGLE",
"point": 3
},
"17": {
"type": "size",
"posX": "//Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[last()]/X/@value - //Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[last()]/Y/@value - //Layer[contains(Name/@value, 'Layer 5')]//op_points[Item]/Item[1]/Y/@value",
"value": {
"width": 150,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"ele": "//Layer[contains(Name/@value, 'Layer 5')]//outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "008878",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "5",
"distance": "3",
"blur": "1",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
}
}
}

View File

@@ -1,84 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Layers>
<Layer>
<BlendOp value="표준" />
<MaskOpType value="None" />
<MaskLayer value="null" />
<LayerMaskedSurface value="null" />
<Opacity value="100" />
<Name value="Background" />
<Visible value="True" />
<Effects />
<Shapes />
</Layer>
<Layer>
<BlendOp value="표준" />
<MaskOpType value="None" />
<MaskLayer value="null" />
<LayerMaskedSurface value="null" />
<Opacity value="100" />
<Name value="Layer 2" />
<Visible value="True" />
<Effects>
<Item>
<EffectData>
<U value="79" />
<V value="255" />
</EffectData>
<Category value="Adjustment" />
<Name value="세피아" />
</Item>
</Effects>
<Shapes />
</Layer>
<Layer>
<BlendOp value="중첩" />
<MaskOpType value="None" />
<MaskLayer value="null" />
<LayerMaskedSurface value="null" />
<Opacity value="75" />
<Name value="Layer 3" />
<Visible value="True" />
<Effects />
<Shapes>
<Shape>
<scaling_enabled value="False" />
<gradient_start_color value="B: 0, G: 240, R: 255, A: 255" />
<gradient_end_color value="B: 152, G: 153, R: 0, A: 255" />
<gradient_type value="LinearClamped" />
<gradient_angle value="0" />
<rectangle_radius value="30" />
<op_points>
<Item>
<IsEmpty value="False" />
<X value="434.99985" />
<Y value="102.999985" />
</Item>
<Item>
<IsEmpty value="False" />
<X value="564.9998" />
<Y value="182.99998" />
</Item>
</op_points>
<angle value="0" />
<primary_color value="B: 171, G: 238, R: 64, A: 255" />
<secondary_color value="B: 85, G: 5, R: 0, A: 255" />
<shadow_color value="B: 0, G: 0, R: 0, A: 178" />
<shadow_distance value="3" />
<shadow_width value="5" />
<shadow_blur value="1" />
<shadow_angle value="320" />
<outline_peninfo>
<Width value="3" />
</outline_peninfo>
<shape_type value="ELLIPSE" />
<draw_type value="Interior" />
<interior_type value="Fill" />
</Shape>
</Shapes>
</Layer>
</Layers>
<Width value="650" />
<Height value="350" />
</Document>

View File

@@ -1,195 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Layers>
<Layer>
<BlendOp value="표준" />
<MaskOpType value="None" />
<MaskLayer value="null" />
<LayerMaskedSurface value="null" />
<Opacity value="100" />
<Name value="Background" />
<Visible value="True" />
<Effects />
<Shapes />
</Layer>
<Layer>
<BlendOp value="표준" />
<MaskOpType value="Layering" />
<MaskLayer>
<MaskOpType value="Layered" />
<LayerMaskedSurface value="null" />
<Visible value="True" />
</MaskLayer>
<LayerMaskedSurface value="null" />
<Opacity value="100" />
<Name value="Layer 2" />
<Visible value="True" />
<Effects />
<Shapes />
</Layer>
<Layer>
<BlendOp value="표준" />
<MaskOpType value="None" />
<MaskLayer value="null" />
<LayerMaskedSurface value="null" />
<Opacity value="100" />
<Name value="Layer 3" />
<Visible value="True" />
<Effects />
<Shapes>
<Shape>
<scaling_enabled value="False" />
<gradient_start_color value="B: 19, G: 120, R: 52, A: 255" />
<gradient_end_color value="B: 119, G: 17, R: 4, A: 255" />
<gradient_type value="LinearClamped" />
<gradient_angle value="0" />
<rectangle_radius value="30" />
<op_points>
<Item>
<IsEmpty value="False" />
<X value="233.99997" />
<Y value="79.99997" />
</Item>
<Item>
<IsEmpty value="False" />
<X value="603.99994" />
<Y value="139.99997" />
</Item>
</op_points>
<angle value="0" />
<primary_color value="B: 171, G: 238, R: 64, A: 255" />
<secondary_color value="B: 85, G: 5, R: 0, A: 255" />
<shadow_color value="B: 0, G: 0, R: 0, A: 178" />
<shadow_distance value="3" />
<shadow_width value="5" />
<shadow_blur value="1" />
<shadow_angle value="320" />
<outline_peninfo>
<Width value="3" />
</outline_peninfo>
<shape_type value="ROUNDED_RECTANGLE" />
<draw_type value="Interior" />
<interior_type value="Gradient" />
</Shape>
</Shapes>
</Layer>
<Layer>
<BlendOp value="표준" />
<MaskOpType value="None" />
<MaskLayer value="null" />
<LayerMaskedSurface value="null" />
<Opacity value="100" />
<Name value="어린이 과학관" />
<Visible value="True" />
<Effects />
<Shapes>
<Shape>
<lines>
<Item value="어린이 과학관" />
</lines>
<font>
<Size value="32" />
<Style value="Italic" />
<Bold value="False" />
<Italic value="True" />
<Strikeout value="False" />
<Underline value="False" />
<Name value="돋움" />
</font>
<alignment value="Left" />
<scaling_enabled value="False" />
<gradient_start_color value="B: 0, G: 0, R: 0, A: 255" />
<gradient_end_color value="B: 255, G: 255, R: 255, A: 255" />
<gradient_type value="LinearClamped" />
<gradient_angle value="0" />
<rectangle_radius value="30" />
<op_points>
<Item>
<IsEmpty value="False" />
<X value="252" />
<Y value="68" />
</Item>
<Item>
<IsEmpty value="False" />
<X value="589" />
<Y value="151" />
</Item>
</op_points>
<angle value="0" />
<primary_color value="B: 0, G: 224, R: 255, A: 255" />
<secondary_color value="B: 165, G: 77, R: 240, A: 255" />
<shadow_color value="B: 0, G: 0, R: 0, A: 178" />
<shadow_distance value="3" />
<shadow_width value="5" />
<shadow_blur value="1" />
<shadow_angle value="320" />
<outline_peninfo>
<Width value="3" />
</outline_peninfo>
<shape_type value="TEXT" />
<draw_type value="Interior, Outline" />
<interior_type value="Fill" />
</Shape>
</Shapes>
</Layer>
<Layer>
<BlendOp value="표준" />
<MaskOpType value="None" />
<MaskLayer value="null" />
<LayerMaskedSurface value="null" />
<Opacity value="100" />
<Name value="Layer 5" />
<Visible value="True" />
<Effects />
<Shapes>
<Shape>
<scaling_enabled value="False" />
<gradient_start_color value="B: 19, G: 120, R: 52, A: 255" />
<gradient_end_color value="B: 119, G: 17, R: 4, A: 255" />
<gradient_type value="LinearClamped" />
<gradient_angle value="0" />
<rectangle_radius value="30" />
<op_points>
<Item>
<IsEmpty value="False" />
<X value="77.99997" />
<Y value="207.99997" />
</Item>
<Item>
<IsEmpty value="False" />
<X value="227.99994" />
<Y value="357.99997" />
</Item>
</op_points>
<angle value="0" />
<primary_color value="B: 120, G: 136, R: 0, A: 255" />
<secondary_color value="B: 85, G: 5, R: 0, A: 255" />
<shadow_color value="B: 0, G: 0, R: 0, A: 178" />
<shadow_distance value="3" />
<shadow_width value="5" />
<shadow_blur value="1" />
<shadow_angle value="320" />
<outline_peninfo>
<Width value="7" />
</outline_peninfo>
<shape_type value="RECTANGLE" />
<draw_type value="Interior, Outline, Shadow" />
<interior_type value="Fill" />
</Shape>
</Shapes>
</Layer>
<Layer>
<BlendOp value="표준" />
<MaskOpType value="Clipping" />
<MaskLayer value="null" />
<LayerMaskedSurface value="null" />
<Opacity value="100" />
<Name value="Layer 6" />
<Visible value="True" />
<Effects />
<Shapes />
</Layer>
</Layers>
<Width value="650" />
<Height value="450" />
</Document>

View File

@@ -1 +1 @@
[{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Tracking']]/Effects/Item/Name/@value"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape[*[starts-with(name(), 'gradient')]]"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape/shape_type/@value"}]
[{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Tracking']]/Effects/Item/Name/@value"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape[*[starts-with(name(), 'gradient')]]"},{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Flower']]/Effects/Item/Name/@value | //Layer[Name[@value='Flower']]/Effects/Item/EffectData/VibranceValue/@value"},{"kind":2,"language":"xpath","value":"//Layer[Name[@value='{layer}']]/Effects/Item[EffectData/{option}]/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value"},{"kind":2,"language":"xpath","value":"//Layer[Name[@value='{layer}']]/Effects/Item/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value\r\n"},{"kind":2,"language":"xpath","value":"//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']"},{"kind":2,"language":"xpath","value":"//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']"}]

View File

@@ -0,0 +1,693 @@
{
"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=='Wooden playground')].name",
"value": "Wooden playground",
"point": 4
},
"7": {
"ele": "$.children[?(@.name=='Wooden playground')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 2
},
"8": {
"ele": "$.children[?(@.name=='Wooden playground')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 2
},
"9": {
"ele": "$.children[?(@.name=='Wooden playground')].text.font.sizes[0]",
"value": 48,
"point": 2
},
"10": {
"ele": "$.children[?(@.name=='Wooden playground')].text.font.colors[0]",
"type": "color",
"value": "801717",
"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": "YetR",
"point": 2
},
"16": {
"ele": "$.children[?(@.name=='나무 놀이터')].text.font.sizes[0]",
"value": 36,
"point": 2
},
"17": {
"ele": "$.children[?(@.name=='나무 놀이터')].text.font.colors[0]",
"type": "color",
"value": "0e4510",
"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": {
"videoStartTime": 170,
"openingStartTime": 0,
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"type": "array",
"value": [
"동영상.mp4",
"이미지1.jpg",
"이미지3.jpg",
"이미지2.jpg"
],
"point": 4
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='150']",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
"end": "380",
"point": 2
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='40'][@VID100='20'][@VID103='0.5']",
"point": 3
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "video",
"value": "자연 놀이터",
"point": 3
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "자연 놀이터",
"type": "video",
"value": "굴림체",
"point": 2
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "자연 놀이터",
"type": "video",
"value": "100",
"point": 2
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "자연 놀이터",
"type": "video",
"value": "-16711795",
"point": 2
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "자연 놀이터",
"value": [
0.39375001,
0.93333334
],
"point": 2
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "자연 놀이터",
"type": "video",
"value": 170,
"point": 2
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "자연 놀이터",
"type": "video",
"value": "120",
"point": 2
},
"12": {
"existEle": "//CRClip[@Path='동영상.mp4']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"type": "searchIndex",
"value": "1",
"point": 2
},
"13": {
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']",
"value": [
"103",
"7"
],
"point": 2
},
"15": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"55",
"470:530",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"16": {
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"17": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"69",
"50"
],
"point": 2
},
"18": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"93",
"680:740",
"16"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"19": {
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID100']",
"value": [
"132",
"90"
],
"point": 2
},
"21": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"25",
"860:890",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "opening",
"value": "자연 속 놀이터 Nature playground",
"point": 3
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": "휴먼옛체",
"point": 2
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": "150",
"point": 2
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": "-13962321",
"point": 2
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": [
"0.2",
"-1659649"
],
"point": 2
},
"27": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value":[
"5",
"3"
],
"point": 3
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": 0,
"point": 2
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "자연 속 놀이터 Nature playground",
"type": "opening",
"value": "120",
"point": 2
},
"30": {
"ele": "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]",
"point": 2
},
"31": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='750']",
"point": 2
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='90']",
"point": 2
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"350"
],
"point": 5,
"desc": "캔버스 사이즈 650*350"
},
"2": {
"ele": "none",
"point": 5,
"desc": "자유 변형 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/Name/@value",
"value": "Germs",
"point": 5,
"desc": "Germs 레이어가 있는지 여부 체크"
},
"4": {
"type" : "effects",
"ele": "//Layer[Name[@value='{layer}']]/Effects/Item",
"layer" : "Germs",
"option" : "amount",
"value" : [
"선명하게",
"12"
],
"point": 5,
"desc": "Germs 레이어의 효과 체크"
},
"5": {
"ele": "none",
"point": 6,
"desc": "올가미 도구/이미지 문항은 채점 불가"
},
"6": {
"type": "exists",
"ele": "//Layer/Effects/Item/Name/@value",
"value": "세피아",
"point": 6,
"desc": "세피아 효과가 있는지 여부 체크"
},
"7": {
"type": "exact",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ELLIPSE",
"point": 3,
"desc": "레이어 쉐이프 타입이 ELLIPSE인지 체크"
},
"8": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 130,
"height": 80
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"9": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "000555",
"point": 6,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"10": {
"type" : "multiValue",
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"value": [
"중첩",
"75"
],
"point": 6,
"desc": "혼합모드(중첩, 불투명도 : 75)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/MaskOpType/@value",
"value": "Layering",
"point": 6
},
"4": {
"ele": "none",
"point": 5,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"type": "exists",
"ele": "//Layer//shape_type/@value",
"value": "ROUNDED_RECTANGLE",
"point": 3
},
"6": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 370,
"height": 60
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"ele": "//Layer/Shapes/Shape",
"startColor": "gradient_start_color/@value",
"endColor": "gradient_end_color/@value",
"value": {
"startColor": "347813",
"endColor": "041177"
},
"point": 6
},
"8": {
"type": "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": "32",
"point": 3
},
"12": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "f04da5",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exists",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "3",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "ffe000",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"type":"boolean",
"ele": "//Layer[MaskOpType/@value='Clipping']",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"type": "exists",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "RECTANGLE",
"point": 3
},
"17": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 150,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"type": "exists",
"ele": "//Layer//outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "008878",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "5",
"distance": "3",
"blur": "1",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
},
"21": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}

View File

@@ -0,0 +1,698 @@
{
"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": 5
},
"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=='Time to stroll')].name",
"value": "Time to stroll",
"point": 4
},
"6": {
"ele": "$.children[?(@.name=='Time to stroll')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 2
},
"7": {
"ele": "$.children[?(@.name=='Time to stroll')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 2
},
"8": {
"ele": "$.children[?(@.name=='Time to stroll')].text.font.sizes[0]",
"value": 48,
"point": 2
},
"9": {
"ele": "$.children[?(@.name=='Time to stroll')].text.font.colors[0]",
"type": "color",
"value": "ff9000",
"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
},
"15": {
"ele": "$.children[?(@.name=='즐거운 산책 시간')].text.font.sizes[0]",
"value": 36,
"point": 2
},
"16": {
"ele": "$.children[?(@.name=='즐거운 산책 시간')].text.font.colors[0]",
"type": "color",
"value": "035b80",
"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": {
"videoStartTime": 180,
"openingStartTime": 0,
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"type": "array",
"value": [
"동영상.mp4",
"이미지2.jpg",
"이미지1.jpg",
"이미지3.jpg"
],
"point": 4
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='120']",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
"end": "360",
"point": 2
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@Type='1'][@ID='86'][@VID100='5'][@VID101='30']",
"point": 3
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "video",
"value": "숲 속으로 떠나는 여행",
"point": 3
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "숲 속으로 떠나는 여행",
"type": "video",
"value": "바탕체",
"point": 2
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "숲 속으로 떠나는 여행",
"type": "video",
"value": "110",
"point": 2
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "숲 속으로 떠나는 여행",
"type": "video",
"value": "-16769281",
"point": 2
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "숲 속으로 떠나는 여행",
"value": [
0.28229165,
0.92962962
],
"point": 2
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "숲 속으로 떠나는 여행",
"type": "videoIsExist",
"value": [
179,
180
],
"point": 2,
"desc": "출제 오류로 인해 두 가지 정답 모두 인정"
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "숲 속으로 떠나는 여행",
"type": "video",
"value": "120",
"point": 2
},
"12": {
"existEle": "//CRClip[@Path='동영상.mp4']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"type": "searchIndex",
"value": "1",
"point": 2
},
"13": {
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"125",
"8"
],
"point": 2
},
"15": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"96",
"450:540",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"16": {
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"17": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID100']",
"value": [
"99",
"50"
],
"point": 2
},
"18": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"35",
"660:720",
"16"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"19": {
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"102",
"8"
],
"point": 2
},
"21": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"1",
"810:840",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "opening",
"value": "길가에 피어있는 꽃 Roadside flowers",
"point": 3
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": "휴먼편지체",
"point": 2
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": "130",
"point": 2
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": "-9664512",
"point": 2
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": [
"0.40000001",
"-3868161"
],
"point": 2
},
"27": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": [
"23",
"2"
],
"point": 3
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": 0,
"point": 2
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "길가에 피어있는 꽃 Roadside flowers",
"type": "opening",
"value": "120",
"point": 2
},
"30": {
"ele": "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]",
"point": 2
},
"31": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='740']",
"point": 2
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='0'][@VID8='60']",
"point": 2
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"350"
],
"point": 5,
"desc": "캔버스 사이즈 650*350"
},
"2": {
"ele": "none",
"point": 5,
"desc": "자유 변형 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/Name/@value",
"value": "Tracking",
"point": 5,
"desc": "Tracking 레이어가 있는지 여부 체크"
},
"4": {
"type": "effects",
"ele": "//Layer[Name[@value='{layer}']]/Effects/Item",
"layer": "Tracking",
"option": "brightness",
"value": [
"밝기/대비",
"30"
],
"point": 5,
"desc": "Tracking 레이어의 효과 체크"
},
"5": {
"ele": "none",
"point": 6,
"desc": "올가미 도구/이미지 문항은 채점 불가"
},
"6": {
"type": "exists",
"ele": "//Layer/Effects/Item/Name/@value",
"value": "세피아",
"point": 6,
"desc": "세피아 효과가 있는지 여부 체크"
},
"7": {
"type": "exact",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ELLIPSE",
"point": 3,
"desc": "레이어 쉐이프 타입이 타원인지 체크"
},
"8": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 80,
"height": 80
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"9": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "999999",
"point": 6,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"10": {
"type": "multiValue",
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"value": [
"색 회피율",
"80"
],
"point": 6,
"desc": "혼합모드(색 회피율, 불투명도 : 80)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/MaskOpType/@value",
"value": "Layering",
"point": 6
},
"4": {
"ele": "none",
"point": 6,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"type": "exists",
"ele": "//Layer//shape_type/@value",
"value": "ROUNDED_RECTANGLE",
"point": 3
},
"6": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 400,
"height": 60
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"ele": "//Layer/Shapes/Shape",
"startColor": "gradient_start_color/@value",
"endColor": "gradient_end_color/@value",
"value": {
"startColor": "fff000",
"endColor": "009998"
},
"point": 6
},
"8": {
"type": "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": "Bold",
"value": "True",
"point": 3
},
"11": {
"type": "exists",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
"value": "24",
"point": 3
},
"12": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "ffffff",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exists",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "5",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "781651",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"type": "boolean",
"ele": "//Layer[MaskOpType/@value='Clipping'][last()]",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"type": "exists",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ELLIPSE",
"point": 3
},
"17": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 150,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"type": "exists",
"ele": "//Layer//outline_peninfo/Width/@value",
"value": "3",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "40eeab",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "7",
"distance": "5",
"blur": "1",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
},
"21": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}

View File

@@ -0,0 +1,693 @@
{
"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=='Park Rest Area')].name",
"value": "Park Rest Area",
"point": 4
},
"7": {
"ele": "$.children[?(@.name=='Park Rest Area')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 2
},
"8": {
"ele": "$.children[?(@.name=='Park Rest Area')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 2
},
"9": {
"ele": "$.children[?(@.name=='Park Rest Area')].text.font.sizes[0]",
"value": 48,
"point": 2
},
"10": {
"ele": "$.children[?(@.name=='Park Rest Area')].text.font.colors[0]",
"type": "color",
"value": "076414",
"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": "GungsuhChe",
"point": 2
},
"16": {
"ele": "$.children[?(@.name=='공원 쉼터')].text.font.sizes[0]",
"value": 36,
"point": 2
},
"17": {
"ele": "$.children[?(@.name=='공원 쉼터')].text.font.colors[0]",
"type": "color",
"value": "4f4300",
"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": {
"videoStartTime": 170,
"openingStartTime": 0,
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"type": "array",
"value": [
"동영상.mp4",
"이미지2.jpg",
"이미지3.jpg",
"이미지1.jpg"
],
"point": 4
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='150']",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
"end": "350",
"point": 2
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='56'][@VID100='80'][@VID101='100']",
"point": 3
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "video",
"value": "연못 전망대 가는 길",
"point": 3
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "연못 전망대 가는 길",
"type": "video",
"value": "바탕체",
"point": 2
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "연못 전망대 가는 길",
"type": "video",
"value": "100",
"point": 2
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "연못 전망대 가는 길",
"type": "video",
"value": "-2490121",
"point": 2
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "연못 전망대 가는 길",
"value": [
0.31979167,
0.93333334
],
"point": 2
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "연못 전망대 가는 길",
"type": "video",
"value": 170,
"point": 2
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "연못 전망대 가는 길",
"type": "video",
"value": "150",
"point": 2
},
"12": {
"existEle": "//CRClip[@Path='동영상.mp4']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"type": "searchIndex",
"value": "1",
"point": 2
},
"13": {
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"104",
"7"
],
"point": 2
},
"15": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"13",
"440:500",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"16": {
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "180",
"point": 2
},
"17": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID105']",
"value": [
"108",
"5"
],
"point": 2
},
"18": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"21",
"650:710",
"16"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"19": {
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"type": "searchIndex",
"value": "150",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"value": [
"93",
"5"
],
"point": 2
},
"21": {
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"value": [
"24",
"800:830",
"2"
],
"point": 2,
"desc": "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"type": "opening",
"value": "자연 테마 파크 Nature theme park",
"point": 3
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": "궁서체",
"point": 2
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": "150",
"point": 2
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": "-16715265",
"point": 2
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": [
"0.2",
"-6323684"
],
"point": 2
},
"27": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value":[
"1",
"3"
],
"point": 3
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": 0,
"point": 2
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "자연 테마 파크 Nature theme park",
"type": "opening",
"value": "120",
"point": 2
},
"30": {
"ele": "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]",
"point": 2
},
"31": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='800']",
"point": 2
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='90']",
"point": 2
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"4": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"350"
],
"point": 5,
"desc": "캔버스 사이즈 650*350"
},
"2": {
"ele": "none",
"point": 5,
"desc": "자유 변형 문항은 채점 불가"
},
"3": {
"type" : "exists",
"ele": "//Layer/Name/@value",
"value": "Leaf",
"point": 5,
"desc": "Leaf 레이어가 있는지 여부 체크"
},
"4": {
"type" : "effects",
"ele": "//Layer[Name[@value='{layer}']]/Effects/Item",
"layer" : "Leaf",
"option" : "Lift",
"value" : [
"감마",
"0.64"
],
"point": 5,
"desc": "Leaf 레이어의 효과 체크"
},
"5": {
"ele": "none",
"point": 6,
"desc": "올가미 도구/이미지 문항은 채점 불가"
},
"6": {
"type" : "exists",
"ele": "//Layer/Effects/Item/Name/@value",
"value" : "세피아",
"point": 6,
"desc": "세피아 효과가 있는지 여부 체크"
},
"7": {
"type": "exact",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "RECTANGLE",
"point": 3,
"desc": "레이어 쉐이프 타입이 RECTANGLE인지 체크"
},
"8": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 650,
"height": 50
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"9": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "ff3030",
"point": 6,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"10": {
"type" : "multiValue",
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"value" : [
"추가",
"65"
],
"point": 6,
"desc": "혼합모드(추가, 불투명도 : 65)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"type": "multi",
"ele": "//Document/Width/@value | //Document/Height/@value",
"value": [
"650",
"450"
],
"point": 5,
"desc": "캔버스 사이즈 650*450"
},
"2": {
"ele": "none",
"point": 5,
"desc": "배경색 문항은 채점 불가"
},
"3": {
"type": "exists",
"ele": "//Layer/MaskOpType/@value",
"value": "Layering",
"point": 6
},
"4": {
"ele": "none",
"point": 5,
"desc": "가로방향 흐릿하게 문항은 채점 불가"
},
"5": {
"type": "exists",
"ele": "//Layer//shape_type/@value",
"value": "ELLIPSE",
"point": 3
},
"6": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 450,
"height": 85
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"7": {
"type": "gradient",
"ele": "//Layer/Shapes/Shape",
"startColor": "gradient_start_color/@value",
"endColor": "gradient_end_color/@value",
"value": {
"startColor": "ffe000",
"endColor": "995555"
},
"point": 6
},
"8": {
"type": "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": "Underline",
"value": "True",
"point": 3
},
"11": {
"type": "exists",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
"value": "30",
"point": 3
},
"12": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"value": "446444",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"13": {
"type": "exists",
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"value": "7",
"point": 3
},
"14": {
"type": "color",
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "ffffff",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것"
},
"15": {
"type":"boolean",
"ele": "//Layer[MaskOpType/@value='Clipping']",
"point": 6,
"desc": "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
},
"16": {
"type": "exists",
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"value": "ROUNDED_RECTANGLE",
"point": 3
},
"17": {
"type": "size",
"ele": "//Layer//op_points",
"value": {
"width": 120,
"height": 150
},
"point": 3,
"desc": "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
},
"18": {
"type": "exists",
"ele": "//Layer//outline_peninfo/Width/@value",
"value": "5",
"point": 3
},
"19": {
"type": "color",
"ele": "//Layer//Shape[contains(draw_type/@value, 'Outline')]/primary_color/@value",
"value": "901651",
"point": 3,
"desc": "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
},
"20": {
"type": "shadow",
"ele": {
"shadow": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"value": {
"width": "3",
"distance": "10",
"blur": "5",
"angle": "320"
},
"point": 5,
"desc": "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
},
"21": {
"ele": "none",
"point": 0,
"desc": "기본설정"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,492 @@
{
"0": {
"1": {
"ele": "none",
"point": 0,
"desc": "문제1/캔버스/캔버스 크기[Canvas Size]/가로(650 픽셀[Pixels]) X 세로(450 픽셀[Pixels]) ",
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/①/복구 브러시 도구[Healing Brush Tool]/이미지 제거"
},
"3": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/②/색조/채도[Hue/Saturation]/초록색 계열로 보정"
},
"4": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/③/색상 균형[Color Balance]/빨간색 계열로 보정"
},
"5": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/밝기 조정/곡선[Curves]을 이용하여 이미지 조정 (입력[Input] : 80, 출력[Output] : 105)",
"note": "원본대비 밝아짐"
},
"6": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/필터 효과/그물눈[Crosshatch]을 이용하여 필터 적용\r\n(선/획 길이[Stroke Length] : 5, 선명도[Sharpness] : 4, 강도[Strength] : 1)"
},
"7": {
"ele": "none",
"point": 0,
"desc": "문제1/저장/JPG/이미지 크기 ⇒ 600 X 400 픽셀[Pixels]"
},
"8": {
"ele": "$[?(@.width == 65 && @.height == 45)]",
"point": 10,
"desc": "문제1/저장/PSD/이미지 크기 ⇒ 65 X 45 픽셀[Pixels] ",
"type": "boolean"
},
"9": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"1": {
"1": {
"ele": "none",
"point": 0,
"desc": "문제2/캔버스/캔버스 크기[Canvas Size]/가로(650 픽셀[Pixels]) X 세로(450 픽셀[Pixels]) ",
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/모양 도구[Shape Tool]/선/획[Stroke]/①크기 : 2px"
},
"3": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/모양 도구[Shape Tool]/선/획[Stroke]/②색상 : #f3715b"
},
"4": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/모양 도구[Shape Tool]/그라디언트 오버레이[Gradient Overlay]/①색상 : #75caea - #fdfa03"
},
"5": {
"ele": "$.children[?(@.name=='Healing Cafe')].name",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/텍스트 입력/“Healing Cafe”",
"value": "Healing Cafe"
},
"6": {
"ele": "$.children[?(@.name=='Healing Cafe')].text.font.names[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/①글꼴(Arial)",
"type": "font",
"value": "Arial"
},
"7": {
"ele": "$.children[?(@.name=='Healing Cafe')].text.font.names[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/②글꼴 스타일(Bold Italic)",
"value": "Arial-BoldItalicMT"
},
"8": {
"ele": "$.children[?(@.name=='Healing Cafe')].text.font.sizes[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/③크기(48pt)",
"value": 48
},
"9": {
"ele": "$.children[?(@.name=='Healing Cafe')].text.font.colors[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/④색상(#cdf9c3)",
"type": "color",
"value": "cdf9c3"
},
"10": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/⑤앤티 앨리어싱 : 선명하게[Sharp]"
},
"11": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/윗행 문자/선/획[Stroke]/①크기 : 4px"
},
"12": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/윗행 문자/선/획[Stroke]/②색상 : #086413"
},
"13": {
"ele": "$.children[?(@.name=='나만의 힐링 카페')].name",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/텍스트 입력/“나만의 힐링 카페”",
"value": "나만의 힐링 카페"
},
"14": {
"ele": "$.children[?(@.name=='나만의 힐링 카페')].text.font.names[0]",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/①글꼴(굴림체)",
"type": "font",
"value": "GulimChe"
},
"15": {
"ele": "$.children[?(@.name=='나만의 힐링 카페')].text.font.sizes[0]",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/②크기(36pt)",
"value": 36
},
"16": {
"ele": "$.children[?(@.name=='나만의 힐링 카페')].text.font.colors[0]",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/③색상(#92350c)",
"type": "color",
"value": "92350c"
},
"17": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/④앤티 앨리어싱 : 선명하게[Sharp]"
},
"18": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/아래행 문자/선/획[Stroke]/①크기 : 2px"
},
"19": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/아래행 문자/선/획[Stroke]/②색상 : #fcf7a6"
},
"20": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/모서리가 둥근 직사각형 도구[Rounded Rectangle Tool]/모서리가 둥근 직사각형의 크기/200 px × 150 px",
"note": "클리핑 마스크기능 이용"
},
"21": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/선/획[Stroke]/①크기 : 4px"
},
"22": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/선/획[Stroke]/②색상 : #ff3904"
},
"23": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/선/획[Stroke]/③위치 : 안쪽[Inside]"
},
"24": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/그림자 효과[Drop Shadow]/①혼합모드[Blend Mode] : 곱하기[Multiply]"
},
"25": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/그림자 효과[Drop Shadow]/②각도[Angle] : 120°"
},
"26": {
"ele": "none",
"point": 0,
"desc": "문제2/저장/JPG/이미지 크기 ⇒ 600 X 400 픽셀[Pixels]"
},
"27": {
"ele": "$[?(@.width == 65 && @.height == 45)]",
"point": 10,
"desc": "문제2/저장/PSD/이미지 크기 ⇒ 65 X 45 픽셀[Pixels] ",
"type": "boolean"
},
"28": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"2": {
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"point": 4,
"desc": "문제3/순서/미디어 소스 순서/동영상.mp4 > 이미지2.jpg > 이미지3.jpg > 이미지1.jpg",
"type": "array",
"value": [
"동영상.mp4",
"이미지2.jpg",
"이미지3.jpg",
"이미지1.jpg"
]
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='140']",
"point": 2,
"desc": "문제3/동영상 파일/배속/1.4x"
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"point": 2,
"desc": "문제3/동영상 파일/자르기/시작 시간(0.00), 재생 시간(12.10)",
"type": "startend",
"start": "0",
"end": "370"
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='70'][@VID100='40'][@VID101='60']",
"point": 3,
"desc": "문제3/동영상 파일/이펙트/이미지 보정-블룸(불빛 : 40, 블러 : 60)"
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"point": 3,
"desc": "문제3/동영상 파일/자막/텍스트 입력/다양한 커피 원두",
"type": "video",
"value": "다양한 커피 원두"
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/①돋움체",
"type": "video",
"search": "다양한 커피 원두",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"value": "돋움체"
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/②크기 110",
"type": "video",
"search": "다양한 커피 원두",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"value": "110"
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/③3949ab",
"type": "video",
"search": "다양한 커피 원두",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"value": "-12036743"
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"point": 2,
"desc": "문제3/동영상 파일/자막/위치 설정/화면 정가운데 아래",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "다양한 커피 원두",
"value": [
"0.25729167",
"0.78518522"
]
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"point": 2,
"desc": "문제3/동영상 파일/자막/시작 시간/[5.00]",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"type": "video",
"search": "다양한 커피 원두",
"value": 150
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"point": 2,
"desc": "문제3/동영상 파일/자막/클립 길이/[6.00]",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"type": "video",
"search": "다양한 커피 원두",
"value": "180"
},
"12": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"point": 2,
"desc": "문제3/동영상 파일/원본 동영상에 포함된 오디오는 모두 음소거 할 것",
"existEle": "//CRClip[@Path='동영상.mp4']",
"type": "searchIndex",
"value": "1"
},
"13": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지2.jpg/이미지 클립 길이/[6.00]",
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"type": "searchIndex",
"value": "180"
},
"14": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지2.jpg/오버레이/비누 방울(크기 : 4)",
"type": "multi",
"value": [
"102",
"4"
]
},
"15": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지2.jpg/클립 트랜지션/위로 덮기(앞으로 이동, 재생 시간 : 2.00)",
"type": "multi",
"value": [
"13",
"490:550",
"2"
]
},
"16": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지3.jpg/이미지 클립 길이/[6.00]",
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"type": "searchIndex",
"value": "180"
},
"17": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지3.jpg/오버레이/내려앉는(크기 : 8)",
"type": "multi",
"value": [
"103",
"8"
]
},
"18": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지3.jpg/클립 트랜지션/왼쪽으로 덮기(앞으로 이동, 재생 시간 : 2.00)",
"type": "multi",
"value": [
null,
null,
null
]
},
"19": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지1.jpg/이미지 클립 길이/[5.00]",
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"type": "searchIndex",
"value": "150"
},
"20": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지1.jpg/오버레이/지나가는 01(기울기 : 20)",
"type": "multi",
"value": [
"184",
"20"
]
},
"21": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지1.jpg/클립 트랜지션/디졸브(앞으로 이동, 재생 시간 : 1.00)",
"type": "multi",
"value": [
"0",
"850:880",
"2"
]
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"point": 3,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 입력/라떼아트 만들기\r\n(Making latte art)",
"type": "opening",
"value": "라떼아트 만들기 (Making latte art)"
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/①바탕체",
"type": "opening",
"search": "라떼아트 만들기 (Making latte art)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"value": "바탕체"
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/②크기 140",
"type": "opening",
"search": "라떼아트 만들기 (Making latte art)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"value": "140"
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/③795548",
"type": "opening",
"search": "라떼아트 만들기 (Making latte art)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"value": "-12036743"
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 윤곽선 색/c8e6c9, 두께 : 20",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": [
"0.2",
"-3545400"
]
},
"27": {
"ele": "none",
"point": 0,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/나타나기/위로 닦아내기, 지속 시간 : 2.00"
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/시작 시간/[0.00]",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": 0
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 클립 길이/[4.00]",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "라떼아트 만들기 (Making latte art)",
"type": "opening",
"value": "120"
},
"30": {
"ele": "none",
"point": 0,
"desc": "문제3/음악 파일/시작구간/[0.00]"
},
"31": {
"ele": "none",
"point": 0,
"desc": "문제3/음악 파일/종료구간/[29.00]"
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='60']",
"point": 2,
"desc": "문제3/음악 파일/페이드 아웃/[2.00]"
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
},
"videoStartTime": 170,
"openingStartTime": 0
}
}

View File

@@ -0,0 +1,488 @@
{
"0": {
"1": {
"ele": "none",
"point": 0,
"desc": "문제1/캔버스/캔버스 크기[Canvas Size]/가로(650 픽셀[Pixels]) X 세로(450 픽셀[Pixels]) ",
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/①/복구 브러시 도구[Healing Brush Tool]/이미지 제거"
},
"3": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/②/색조/채도[Hue/Saturation]/파란색 계열로 보정"
},
"4": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/③/색상 균형[Color Balance]/보라색 계열로 보정"
},
"5": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/밝기 조정/곡선[Curves]을 이용하여 이미지 조정 (입력[Input] : 90, 출력[Output] : 105)",
"note": "원본대비 밝아짐"
},
"6": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/필터 효과/텍스처화[Texturizer]를 이용하여 필터 적용\r\n(텍스처[Texture] : 캔버스[Canvas], 비율[Scaling] : 110%, 부조[Relief] : 4, 조명[Light] : 위[Top])"
},
"7": {
"ele": "none",
"point": 0,
"desc": "문제1/저장/JPG/이미지 크기 ⇒ 600 X 400 픽셀[Pixels]"
},
"8": {
"ele": "$[?(@.width == 65 && @.height == 45)]",
"point": 10,
"desc": "문제1/저장/PSD/이미지 크기 ⇒ 65 X 45 픽셀[Pixels] ",
"type": "boolean"
},
"9": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"1": {
"1": {
"ele": "none",
"point": 0,
"desc": "문제2/캔버스/캔버스 조정/가로(650 픽셀[Pixels]) X 세로(350 픽셀[Pixels]) ",
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 0,
"desc": "문제2/캔버스/캔버스 조정/배경색(색상 : #81098f)"
},
"3": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/이미지 복사/자유 변형[Free Transform]/①자유 변형[Free Transform] 으로 크기 변형"
},
"4": {
"ele": "$.children[?(@.name=='꽃잎들')]",
"point": 10,
"desc": "문제2/사진2.jpg/이미지 복사/자유 변형[Free Transform]/②레이어 이름 - ‘꽃잎들’",
"type": "boolean"
},
"5": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/이미지 복사/레이어 마스크[Layer Mask]/③레이어 마스크[Layer Mask] 설정, 가로 방향으로 흐릿하게"
},
"6": {
"ele": "$.children[?(@.name=='Flower Rock')].name",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/텍스트 입력/“Flower Rock”",
"value": "Flower Rock"
},
"7": {
"ele": "$.children[?(@.name=='Flower Rock')].text.font.names[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/①글꼴(Arial)",
"type": "font",
"value": "Arial"
},
"8": {
"ele": "$.children[?(@.name=='Flower Rock')].text.font.names[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/②글꼴 스타일(Bold Italic)",
"value": "Arial-BoldItalicMT"
},
"9": {
"ele": "$.children[?(@.name=='Flower Rock')].text.font.sizes[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/③크기(48pt)",
"value": 48
},
"10": {
"ele": "$.children[?(@.name=='Flower Rock')].text.font.colors[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/④색상(#d6f592)",
"type": "color",
"value": "d6f592"
},
"11": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/⑤앤티 앨리어싱 : 선명하게[Sharp]"
},
"12": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/윗행 문자/선/획[Stroke]/①크기 : 5px"
},
"13": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/윗행 문자/선/획[Stroke]/②색상 : #c1215d"
},
"14": {
"ele": "$.children[?(@.name=='꽃과 바위')].name",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/텍스트 입력/“꽃과 바위\"",
"value": "꽃과 바위"
},
"15": {
"ele": "$.children[?(@.name=='꽃과 바위')].text.font.names[0]",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/①글꼴(돋움체)",
"type": "font",
"value": "DotumChe"
},
"16": {
"ele": "$.children[?(@.name=='꽃과 바위')].text.font.sizes[0]",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/②크기(36pt)",
"value": 36
},
"17": {
"ele": "$.children[?(@.name=='꽃과 바위')].text.font.colors[0]",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/③색상(#0d17d5)",
"type": "color",
"value": "0d17d5"
},
"18": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/④앤티 앨리어싱 : 선명하게[Sharp]"
},
"19": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/아래행 문자/선/획[Stroke]/①크기 : 2px"
},
"20": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/아래행 문자/선/획[Stroke]/②색상 : #cefbd5"
},
"21": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/이미지 복사/자유 변형[Free Transform]/①자유 변형[Free Transform]으로 크기 변형"
},
"22": {
"ele": "$.children[?(@.name=='노랑꽃')]",
"point": 10,
"desc": "문제2/사진3.jpg\r\n/이미지 복사/자유 변형[Free Transform]/②레이어 이름 - ‘노랑꽃’",
"type": "boolean"
},
"23": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/이미지 복사/그림자 효과[Drop Shadow]/①혼합모드[Blend Mode] : 곱하기[Multiply]"
},
"24": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/이미지 복사/그림자 효과[Drop Shadow]/②각도[Angle] : 120°"
},
"25": {
"ele": "none",
"point": 0,
"desc": "문제2/저장/JPG/이미지 크기 ⇒ 600 X 300 픽셀[Pixels]"
},
"26": {
"ele": "$[?(@.width == 65 && @.height == 35)]",
"point": 10,
"desc": "문제2/저장/PSD/이미지 크기 ⇒ 65 X 35 픽셀[Pixels] ",
"type": "boolean"
},
"27": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"2": {
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"point": 4,
"desc": "문제3/순서/미디어 소스 순서/동영상.mp4 > 이미지3.jpg > 이미지1.jpg > 이미지2.jpg",
"type": "array",
"value": [
"동영상.mp4",
"이미지3.jpg",
"이미지1.jpg",
"이미지2.jpg"
]
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='140']",
"point": 2,
"desc": "문제3/동영상 파일/배속/1.4x"
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"point": 2,
"desc": "문제3/동영상 파일/자르기/시작 시간(0.00), 재생 시간(12.10)",
"type": "startend",
"start": "0",
"end": "370"
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='44'][@VID100='8'][@VID102='8']",
"point": 3,
"desc": "문제3/동영상 파일/이펙트/LUT 필터-카메라 필름-카메라 필름 09(노출 : 8, 감마 : 0.9)"
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"point": 3,
"desc": "문제3/동영상 파일/자막/텍스트 입력/화단의 꽃들",
"type": "video",
"value": "화단의 꽃들"
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/①돋움체",
"type": "video",
"search": "화단의 꽃들",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"value": "돋움체"
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/②크기 110",
"type": "video",
"search": "화단의 꽃들",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"value": "110"
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/③ff531b",
"type": "video",
"search": "화단의 꽃들",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"value": "-7601940"
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"point": 2,
"desc": "문제3/동영상 파일/자막/위치 설정/화면 정가운데 아래",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "화단의 꽃들",
"value": [
"0.19062501",
"0.78518522"
]
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"point": 2,
"desc": "문제3/동영상 파일/자막/시작 시간/[5.20]",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"type": "video",
"search": "화단의 꽃들",
"value": 170
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"point": 2,
"desc": "문제3/동영상 파일/자막/클립 길이/[5.00]",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"type": "video",
"search": "화단의 꽃들",
"value": "150"
},
"12": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"point": 2,
"desc": "문제3/동영상 파일/원본 동영상에 포함된 오디오는 모두 음소거 할 것",
"existEle": "//CRClip[@Path='동영상.mp4']",
"type": "searchIndex",
"value": "1"
},
"13": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지3.jpg/이미지 클립 길이/[6.00]",
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"type": "searchIndex",
"value": "180"
},
"14": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지3.jpg/오버레이/흩날림(개수/양 : 40)",
"type": "multi",
"value": [
"67",
"40"
]
},
"15": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지3.jpg/클립 트랜지션/아래로 밀기(앞으로 이동, 재생 시간 : 2.00)",
"type": "multi",
"value": [
"10",
"490:550",
"2"
]
},
"16": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지1.jpg/이미지 클립 길이/[6.00]",
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"type": "searchIndex",
"value": "180"
},
"17": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지1.jpg/오버레이/내려앉는(속도 : 7)",
"type": "multi",
"value": [
"103",
"7"
]
},
"18": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지1.jpg/클립 트랜지션/오른쪽으로 덮기(앞으로 이동, 재생 시간 : 2.00)",
"type": "multi",
"value": [
null,
null,
null
]
},
"19": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지2.jpg/이미지 클립 길이/[5.00]",
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"type": "searchIndex",
"value": "150"
},
"20": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지2.jpg/오버레이/비누 방울(크기 : 3)",
"type": "multi",
"value": [
"102",
"3"
]
},
"21": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지2.jpg/클립 트랜지션/디졸브(앞으로 이동, 재생 시간 : 1.00)",
"type": "multi",
"value": [
"0",
"850:880",
"2"
]
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"point": 3,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 입력/아름다운 꽃 축제\r\n(Happy Flower Festival)",
"type": "opening",
"value": "아름다운 꽃 축제 (Happy Flower Festival)"
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/①궁서체",
"type": "opening",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"value": "궁서체"
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/②크기 140",
"type": "opening",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"value": "140"
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/③ec008c",
"type": "opening",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"value": "-7601940"
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 윤곽선 색/fff9c4, 두께 : 40",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": [
"0.40000001",
"-3868161"
]
},
"27": {
"ele": "none",
"point": 0,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/나타나기/오른쪽으로 펼치기, 지속 시간 : 2.00"
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/시작 시간/[0.00]",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": 0
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 클립 길이/[4.00]",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": "120"
},
"30": {
"ele": "none",
"point": 0,
"desc": "문제3/음악 파일/시작구간/[0.00]"
},
"31": {
"ele": "none",
"point": 0,
"desc": "문제3/음악 파일/종료구간/[29.00]"
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='60']",
"point": 2,
"desc": "문제3/음악 파일/페이드 아웃/[2.00]"
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
},
"videoStartTime": 170,
"openingStartTime": 0
}
}

View File

@@ -0,0 +1,492 @@
{
"0": {
"1": {
"ele": "none",
"point": 0,
"desc": "문제1/캔버스/캔버스 크기[Canvas Size]/가로(650 픽셀[Pixels]) X 세로(450 픽셀[Pixels]) ",
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/①/복구 브러시 도구[Healing Brush Tool]/이미지 제거"
},
"3": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/②/색조/채도[Hue/Saturation]/분홍색 계열로 보정"
},
"4": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/③/색상 균형[Color Balance]/노란색 계열로 보정"
},
"5": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/밝기 조정/곡선[Curves]을 이용하여 이미지 조정 (입력[Input] : 90, 출력[Output] : 110)",
"note": "원본대비 밝아짐"
},
"6": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/필터 효과/텍스처화[Texturizer]를 이용하여 필터 적용\r\n텍스처[Texture] : 캔버스[Canvas], 비율[Scaling] : 130%, 부조[Relief] : 4, 조명[Light] : 위[Top])"
},
"7": {
"ele": "none",
"point": 0,
"desc": "문제1/저장/JPG/이미지 크기 ⇒ 600 X 400 픽셀[Pixels]"
},
"8": {
"ele": "$[?(@.width == 65 && @.height == 45)]",
"point": 10,
"desc": "문제1/저장/PSD/이미지 크기 ⇒ 65 X 45 픽셀[Pixels] ",
"type": "boolean"
},
"9": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"1": {
"1": {
"ele": "none",
"point": 0,
"desc": "문제2/캔버스/캔버스 크기[Canvas Size]/가로(650 픽셀[Pixels]) X 세로(450 픽셀[Pixels]) ",
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/모양 도구[Shape Tool]/선/획[Stroke]/①크기 : 2px"
},
"3": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/모양 도구[Shape Tool]/선/획[Stroke]/②색상 : #ac5ef6"
},
"4": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/모양 도구[Shape Tool]/그라디언트 오버레이[Gradient Overlay]/①색상 : #a8f589 - #ffcafd"
},
"5": {
"ele": "$.children[?(@.name=='Arboretum in spring')].name",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/텍스트 입력/“Arboretum in spring”",
"value": "Arboretum in spring"
},
"6": {
"ele": "$.children[?(@.name=='Arboretum in spring')].text.font.names[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/①글꼴(Arial)",
"type": "font",
"value": "Arial"
},
"7": {
"ele": "$.children[?(@.name=='Arboretum in spring')].text.font.names[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/②글꼴 스타일(Bold Italic)",
"value": "Arial-BoldItalicMT"
},
"8": {
"ele": "$.children[?(@.name=='Arboretum in spring')].text.font.sizes[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/③크기(48pt)",
"value": 48
},
"9": {
"ele": "$.children[?(@.name=='Arboretum in spring')].text.font.colors[0]",
"point": 10,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/④색상(#a808d0)",
"type": "color",
"value": "a808d0"
},
"10": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/윗행 문자/글꼴 서식/⑤앤티 앨리어싱 : 선명하게[Sharp]"
},
"11": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/윗행 문자/선/획[Stroke]/①크기 : 4px"
},
"12": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/윗행 문자/선/획[Stroke]/②색상 : #fff88d"
},
"13": {
"ele": "$.children[?(@.name=='봄날의 수목원')].name",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/텍스트 입력/“봄날의 수목원”",
"value": "봄날의 수목원"
},
"14": {
"ele": "$.children[?(@.name=='봄날의 수목원')].text.font.names[0]",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/①글꼴(궁서체)",
"type": "font",
"value": "GungsuhChe"
},
"15": {
"ele": "$.children[?(@.name=='봄날의 수목원')].text.font.sizes[0]",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/②크기(36pt)",
"value": 36
},
"16": {
"ele": "$.children[?(@.name=='봄날의 수목원')].text.font.colors[0]",
"point": 10,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/③색상(#096e34)",
"type": "color",
"value": "096e34"
},
"17": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/아래행 문자/글꼴 서식/④앤티 앨리어싱 : 선명하게[Sharp]"
},
"18": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/아래행 문자/선/획[Stroke]/①크기 : 2px"
},
"19": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/아래행 문자/선/획[Stroke]/②색상 : #8bfffe"
},
"20": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/사각형 도구[Rectangle Tool]/사각형의 크기/180 px × 120 px",
"note": "클리핑 마스크기능 이용"
},
"21": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/선/획[Stroke]/①크기 : 5px"
},
"22": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/선/획[Stroke]/②색상 : #00de05"
},
"23": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/선/획[Stroke]/③위치 : 안쪽[Inside]"
},
"24": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/그림자 효과[Drop Shadow]/①혼합모드[Blend Mode] : 곱하기[Multiply]"
},
"25": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg\r\n/레이어 스타일/그림자 효과[Drop Shadow]/②각도[Angle] : 120°"
},
"26": {
"ele": "none",
"point": 0,
"desc": "문제2/저장/JPG/이미지 크기 ⇒ 600 X 400 픽셀[Pixels]"
},
"27": {
"ele": "$[?(@.width == 65 && @.height == 45)]",
"point": 10,
"desc": "문제2/저장/PSD/이미지 크기 ⇒ 65 X 45 픽셀[Pixels] ",
"type": "boolean"
},
"28": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"2": {
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"point": 4,
"desc": "문제3/순서/미디어 소스 순서/동영상.mp4 > 이미지3.jpg > 이미지2.jpg > 이미지1.jpg",
"type": "array",
"value": [
"동영상.mp4",
"이미지3.jpg",
"이미지2.jpg",
"이미지1.jpg"
]
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='130']",
"point": 2,
"desc": "문제3/동영상 파일/배속/1.3x"
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"point": 2,
"desc": "문제3/동영상 파일/자르기/시작 시간(0.00), 재생 시간(12.00)",
"type": "startend",
"start": "0",
"end": "360"
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='151'][@VID104='20']",
"point": 3,
"desc": "문제3/동영상 파일/이펙트/이미지 보정-톤맵(감마 : 0.8, 채도 : 20)"
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"point": 3,
"desc": "문제3/동영상 파일/자막/텍스트 입력/아름다운 봄꽃들",
"type": "video",
"value": "아름다운 봄꽃들"
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/①굴림체",
"type": "video",
"search": "아름다운 봄꽃들",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"value": "굴림체"
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/②크기 110",
"type": "video",
"search": "아름다운 봄꽃들",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"value": "110"
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/③fffe37",
"type": "video",
"search": "아름다운 봄꽃들",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"value": "-5232740"
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"point": 2,
"desc": "문제3/동영상 파일/자막/위치 설정/화면 정가운데 아래",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "아름다운 봄꽃들",
"value": [
"0.27083331",
"0.78518522"
]
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"point": 2,
"desc": "문제3/동영상 파일/자막/시작 시간/[5.15]",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"type": "video",
"search": "아름다운 봄꽃들",
"value": 165
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"point": 2,
"desc": "문제3/동영상 파일/자막/클립 길이/[5.00]",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"type": "video",
"search": "아름다운 봄꽃들",
"value": "150"
},
"12": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"point": 2,
"desc": "문제3/동영상 파일/원본 동영상에 포함된 오디오는 모두 음소거 할 것",
"existEle": "//CRClip[@Path='동영상.mp4']",
"type": "searchIndex",
"value": "1"
},
"13": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지3.jpg/이미지 클립 길이/[5.00]",
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"type": "searchIndex",
"value": "150"
},
"14": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID103']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지3.jpg/오버레이/지나가는01(밀도 : 50)",
"type": "multi",
"value": [
"184",
"50"
]
},
"15": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지3.jpg/클립 트랜지션/위로 밀기(앞으로 이동, 재생 시간 : 1.00)",
"type": "multi",
"value": [
"9",
"480:510",
"2"
]
},
"16": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지2.jpg/이미지 클립 길이/[6.00]",
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"type": "searchIndex",
"value": "180"
},
"17": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID100']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지2.jpg/오버레이/스페이스 01(개수/양 : 9)",
"type": "multi",
"value": [
"128",
"9"
]
},
"18": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지2.jpg/클립 트랜지션/왼쪽으로 덮기(앞으로 이동, 재생 시간 : 2.00)",
"type": "multi",
"value": [
null,
null,
null
]
},
"19": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지1.jpg/이미지 클립 길이/[7.00]",
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"type": "searchIndex",
"value": "210"
},
"20": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID104']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지1.jpg/오버레이/흩날림(속도 : 5)",
"type": "multi",
"value": [
"67",
"5"
]
},
"21": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일\r\n(순서 맞추기)/이미지1.jpg/클립 트랜지션/세로 나누기(앞으로 이동, 재생 시간 : 3.00)",
"type": "multi",
"value": [
"21",
"810:900",
"2"
]
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"point": 3,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 입력/봄을 담은 정원\r\n(A Spring Garden)",
"type": "opening",
"value": "봄을 담은 정원 (A Spring Garden)"
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/①궁서체",
"type": "opening",
"search": "봄을 담은 정원 (A Spring Garden)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"value": "궁서체"
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/②크기 140",
"type": "opening",
"search": "봄을 담은 정원 (A Spring Garden)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"value": "140"
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/③9c27b0",
"type": "opening",
"search": "봄을 담은 정원 (A Spring Garden)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"value": "-5232740"
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 윤곽선 색/fecdd2, 두께 : 40",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": [
"0.40000001",
"-2961922"
]
},
"27": {
"ele": "none",
"point": 0,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/나타나기/커지면서 나타나기, 지속 시간 : 2.00"
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/시작 시간/[0.00]",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": 0
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 클립 길이/[4.00]",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "봄을 담은 정원 (A Spring Garden)",
"type": "opening",
"value": "120"
},
"30": {
"ele": "none",
"point": 0,
"desc": "문제3/음악 파일/시작구간/[0.00]"
},
"31": {
"ele": "none",
"point": 0,
"desc": "문제3/음악 파일/종료구간/[29.00]"
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='30']",
"point": 2,
"desc": "문제3/음악 파일/페이드 아웃/[1.00]"
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
},
"videoStartTime": 170,
"openingStartTime": 0
}
}

View File

@@ -0,0 +1,726 @@
{
"0": {
"1": {
"ele": "none",
"point": 0,
"desc": "문제1/캔버스/캔버스/가로(650 픽셀) X 세로(350 픽셀) ",
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/이미지 복사/자유 변형/크기 변형으로 캔버스 크기에 맞게 변형"
},
"3": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/이미지 복사/레이어 이름/Flower"
},
"4": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/조정/생동감을 이용하여 이미지 조정 (생동감 : 40)",
"note": "40으로만 여러 번 설정한 경우에는 정답 처리\r\n(프로그램 상 40을 설정했는지 유무를 명확히 확인 불가)\r\nif:조정을 여러 번 진행했을 경우, 조정값이 1개라도 40이 아닐 시 오답으로 처리"
},
"5": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/①/복제 도장/이미지 복구"
},
"6": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/②/세피아/보라색 계열로 보정"
},
"7": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/③/도형 도구/① 원형/타원형"
},
"8": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/③/도형 도구/② 크기 : 120 x 120"
},
"9": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/③/도형 도구/③ 채우기(색상 : 7097BB)"
},
"10": {
"ele": "none",
"point": 0,
"desc": "문제1/사진1.jpg/③/도형 도구/④ 혼합모드(반사, 불투명도 : 80)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "문제1/기본/기본설정/지시사항 외 설정 하나 당 \"-1점\" 처리됨"
},
"12": {
"ele": "none",
"point": 0,
"desc": "문제1/저장/dpi_01_123456_성명.JPG와 dpi_01_123456_성명.GPDP 파일 중 하나라도 누락 시 “0점” 처리됨"
}
},
"1": {
"1": {
"ele": "none",
"point": 0,
"desc": "문제2/캔버스/캔버스/가로(650 픽셀) X 세로(450 픽셀) ",
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 0,
"desc": "문제2/캔버스/캔버스/배경색(색상 : 81098F)"
},
"3": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/이미지 복사/레이어 마스크/레이어 마스크 설정"
},
"4": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/이미지 복사/레이어 마스크/가로 방향으로 흐릿하게",
"note": "결과파일과 동일한 방향으로 그라이언트 되면 정답"
},
"5": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/①/도형 도구/① 모서리가 둥근 사각형"
},
"6": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/①/도형 도구/② 크기 : 400 x 60"
},
"7": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/①/도형 도구/③ 그라데이션(색상 : FFE000 34A159)"
},
"8": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/텍스트/텍스트 입력/흰 꽃 사이 노란 꽃"
},
"9": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/① 글꼴(맑은 고딕)"
},
"10": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/② 글꼴 스타일(기울임꼴)"
},
"11": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/③ 크기(30pt)"
},
"12": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/④ 채우기(색상 : B46EF8)"
},
"13": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/⑤ 외곽선(두께 : 7px)"
},
"14": {
"ele": "none",
"point": 0,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/⑥ 외곽선(색상 : FFFFFF)"
},
"15": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/클리핑 마스크 설정"
},
"16": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/① 사각형"
},
"17": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/② 크기 : 150 × 150"
},
"18": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/③ 외곽선(두께 : 7px)"
},
"19": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/④ 외곽선(색상 : E8E88E)"
},
"20": {
"ele": "none",
"point": 0,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/⑤ 그림자(두께 : 3px, 거리 : 5px, 분산도 : 1px, 각도 : 320°)",
"note": "그림자설정/두께/거리/분산/각도 중 오답 하나 당 \"-1점\""
},
"21": {
"ele": "none",
"point": 0,
"desc": "문제2/기본/기본설정/지시사항 외 설정 하나 당 \"-1점\" 처리됨"
},
"22": {
"ele": "none",
"point": 0,
"desc": "문제2/저장/dpi_02_123456_성명.JPG와 dpi_02_123456_성명.GPDP 파일 중 하나라도 누락 시 “0점” 처리됨"
}
},
"2": {
"1": {
"ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
"point": 4,
"desc": "문제3/순서/미디어 소스 순서/동영상.mp4 > 이미지3.jpg > 이미지1.jpg > 이미지2.jpg",
"type": "array",
"value": [
"동영상.mp4",
"이미지3.jpg",
"이미지1.jpg",
"이미지2.jpg"
],
"note": "미디어소스 사이에 공백 있을 경우, 0점"
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='140']",
"point": 2,
"desc": "문제3/동영상 파일/배속/1.4x"
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"point": 2,
"desc": "문제3/동영상 파일/자르기/시작 시간(0.00), 재생 시간(12.10)",
"type": "startend",
"start": "0",
"end": "370"
},
"4": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='44'][@VID100='8'][@VID102='8']",
"point": 3,
"desc": "문제3/동영상 파일/이펙트/LUT 필터-카메라 필름-카메라 필름 09(노출 : 8, 감마 : 0.9)"
},
"5": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"point": 3,
"desc": "문제3/동영상 파일/자막/텍스트 입력/화단의 꽃들",
"type": "video",
"value": "화단의 꽃들"
},
"6": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/① 돋움체",
"type": "video",
"search": "화단의 꽃들",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"value": "돋움체"
},
"7": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/② 크기 110",
"type": "video",
"search": "화단의 꽃들",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"value": "110"
},
"8": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"point": 2,
"desc": "문제3/동영상 파일/자막/텍스트 서식/③ ff531b",
"type": "video",
"search": "화단의 꽃들",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"value": "-7601940"
},
"9": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']",
"point": 2,
"desc": "문제3/동영상 파일/자막/위치 설정/화면 정가운데 아래",
"ele2": "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']",
"type": "video",
"search": "화단의 꽃들",
"value": [
"0.19062501",
"0.78518522"
]
},
"10": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"point": 2,
"desc": "문제3/동영상 파일/자막/시작 시간/[5.20]",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"type": "video",
"search": "화단의 꽃들",
"value": 170
},
"11": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"point": 2,
"desc": "문제3/동영상 파일/자막/클립 길이/[5.00]",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"type": "video",
"search": "화단의 꽃들",
"value": "150"
},
"12": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
"point": 2,
"desc": "문제3/동영상 파일/원본 동영상에 포함된 오디오는 모두 음소거 할 것",
"existEle": "//CRClip[@Path='동영상.mp4']",
"type": "searchIndex",
"value": "1"
},
"13": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일/이미지3.jpg/이미지 클립 길이/[6.00]",
"existEle": "//CRClip[@Path='이미지3.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']",
"type": "searchIndex",
"value": "180"
},
"14": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']",
"point": 2,
"desc": "문제3/이미지 파일/이미지3.jpg/오버레이/흩날림(개수/양 : 40)",
"type": "multi",
"value": [
"67",
"40"
]
},
"15": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일/이미지3.jpg/클립 트랜지션/아래로 밀기(앞으로 이동, 재생 시간 : 2.00)",
"type": "multi",
"value": [
"10",
"490:550",
"2"
]
},
"16": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일/이미지1.jpg/이미지 클립 길이/[6.00]",
"existEle": "//CRClip[@Path='이미지1.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']",
"type": "searchIndex",
"value": "180"
},
"17": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지1.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']",
"point": 2,
"desc": "문제3/이미지 파일/이미지1.jpg/오버레이/내려앉는(속도 : 7)",
"type": "multi",
"value": [
"103",
"7"
]
},
"18": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일/이미지1.jpg/클립 트랜지션/오른쪽으로 덮기(앞으로 이동, 재생 시간 : 2.00)",
"type": "multi",
"value": [
null,
null,
null
]
},
"19": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/@Length",
"point": 2,
"desc": "문제3/이미지 파일/이미지2.jpg/이미지 클립 길이/[5.00]",
"existEle": "//CRClip[@Path='이미지2.jpg'] | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']",
"type": "searchIndex",
"value": "150"
},
"20": {
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID101']",
"point": 2,
"desc": "문제3/이미지 파일/이미지2.jpg/오버레이/비누 방울(크기 : 3)",
"type": "multi",
"value": [
"102",
"3"
]
},
"21": {
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지2.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']",
"point": 2,
"desc": "문제3/이미지 파일/이미지2.jpg/클립 트랜지션/디졸브(앞으로 이동, 재생 시간 : 1.00)",
"type": "multi",
"value": [
"0",
"850:880",
"2"
]
},
"22": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name",
"point": 3,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 입력/아름다운 꽃 축제\r\n(Happy Flower Festival)",
"type": "opening",
"value": "아름다운 꽃 축제 (Happy Flower Festival)"
},
"23": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/① 궁서체",
"type": "opening",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102",
"value": "궁서체"
},
"24": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/② 크기 140",
"type": "opening",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101",
"value": "140"
},
"25": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/글꼴 서식/③ ec008c",
"type": "opening",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"value": "-7601940"
},
"26": {
"ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 윤곽선 색/fff9c4, 두께 : 40",
"ele2": "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": [
"0.40000001",
"-3868161"
]
},
"27": {
"ele": "none",
"point": 0,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/나타나기/오른쪽으로 펼치기, 지속 시간 : 2.00"
},
"28": {
"ele": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/preceding-sibling::CRTrackClip/@Length)",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/시작 시간/[0.00]",
"ele2": "sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/preceding-sibling::CRTrackClip/@Length)",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": 0
},
"29": {
"ele": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][{subtitleOrder}]/@Length",
"point": 2,
"desc": "문제3/제목\r\n또는\r\n제작진/오프닝/텍스트 클립 길이/[4.00]",
"ele2": "//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][@ClipIndex={clipIndex}]/@Length",
"search": "아름다운 꽃 축제 (Happy Flower Festival)",
"type": "opening",
"value": "120"
},
"30": {
"ele": "none",
"point": 0,
"desc": "문제3/음악 파일/시작구간/[0.00]"
},
"31": {
"ele": "none",
"point": 0,
"desc": "문제3/음악 파일/종료구간/[29.00]"
},
"32": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='60']",
"point": 2,
"desc": "문제3/음악 파일/페이드 아웃/[2.00]"
},
"33": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
},
"videoStartTime": 170,
"openingStartTime": 0
},
"4": {
"1": {
"ele": "//Document/Width/@value | //Document/Height/@value",
"point": 5,
"desc": "문제1/캔버스/캔버스/가로(650 픽셀) X 세로(350 픽셀) ",
"type": "multi",
"value": [
"650",
"350"
],
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 5,
"desc": "문제1/사진1.jpg/이미지 복사/자유 변형/크기 변형으로 캔버스 크기에 맞게 변형"
},
"3": {
"ele": "//Layer/Name/@value",
"point": 5,
"desc": "문제1/사진1.jpg/이미지 복사/레이어 이름/Flower",
"type": "isExist",
"value": "Flower"
},
"4": {
"ele": "none",
"point": 5,
"desc": "문제1/사진1.jpg/조정/생동감을 이용하여 이미지 조정 (생동감 : 40)",
"note": "40으로만 여러 번 설정한 경우에는 정답 처리\r\n(프로그램 상 40을 설정했는지 유무를 명확히 확인 불가)\r\nif:조정을 여러 번 진행했을 경우, 조정값이 1개라도 40이 아닐 시 오답으로 처리"
},
"5": {
"ele": "none",
"point": 6,
"desc": "문제1/사진1.jpg/①/복제 도장/이미지 복구"
},
"6": {
"ele": "//Layer/Effects/Item/Name/@value",
"point": 6,
"desc": "문제1/사진1.jpg/②/세피아/보라색 계열로 보정",
"type": "isExist",
"value": "세피아"
},
"7": {
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"point": 3,
"desc": "문제1/사진1.jpg/③/도형 도구/① 원형/타원형",
"type": "exact",
"value": "ELLIPSE"
},
"8": {
"ele": "none",
"point": 3,
"desc": "문제1/사진1.jpg/③/도형 도구/② 크기 : 120 x 120",
"posX": "//Layer//op_points[Item]/Item[last()]/X/@value - //Layer//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer//op_points[Item]/Item[last()]/Y/@value - //Layer//op_points[Item]/Item[1]/Y/@value",
"type": "size",
"value": {
"width": 120,
"height": 120
}
},
"9": {
"ele": "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"point": 6,
"desc": "문제1/사진1.jpg/③/도형 도구/③ 채우기(색상 : 7097BB)",
"type": "color",
"value": "7097bb"
},
"10": {
"ele": "//Layer/BlendOp/@value | //Layer/Opacity/@value",
"point": 6,
"desc": "문제1/사진1.jpg/③/도형 도구/④ 혼합모드(반사, 불투명도 : 80)",
"type": "multiValue",
"value": [
"반사",
"80"
]
},
"11": {
"ele": "none",
"point": 0,
"desc": "문제1/기본/기본설정/지시사항 외 설정 하나 당 \"-1점\" 처리됨"
},
"12": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
},
"5": {
"1": {
"ele": "//Document/Width/@value | //Document/Height/@value",
"point": 5,
"desc": "문제2/캔버스/캔버스/가로(650 픽셀) X 세로(450 픽셀) ",
"type": "multi",
"value": [
"650",
"450"
],
"note": "원본이미지가 잘리거나, 왜곡되지 않으면 정답"
},
"2": {
"ele": "none",
"point": 5,
"desc": "문제2/캔버스/캔버스/배경색(색상 : 81098F)"
},
"3": {
"ele": "//Layer[MaskOpType/@value='Layering']",
"point": 6,
"desc": "문제2/사진2.jpg/이미지 복사/레이어 마스크/레이어 마스크 설정"
},
"4": {
"ele": "none",
"point": 6,
"desc": "문제2/사진2.jpg/이미지 복사/레이어 마스크/가로 방향으로 흐릿하게",
"note": "결과파일과 동일한 방향으로 그라이언트 되면 정답"
},
"5": {
"ele": "//Layer/Shapes/Shape/shape_type/@value",
"point": 3,
"desc": "문제2/사진2.jpg/①/도형 도구/① 모서리가 둥근 사각형",
"type": "exact",
"value": "ROUNDED_RECTANGLE"
},
"6": {
"ele": "none",
"point": 3,
"desc": "문제2/사진2.jpg/①/도형 도구/② 크기 : 400 x 60",
"posX": "//Layer//op_points[Item]/Item[last()]/X/@value - //Layer//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer//op_points[Item]/Item[last()]/Y/@value - //Layer//op_points[Item]/Item[1]/Y/@value",
"type": "size",
"value": {
"width": 400,
"height": 60
}
},
"7": {
"ele": "none",
"point": 6,
"desc": "문제2/사진2.jpg/①/도형 도구/③ 그라데이션(색상 : FFE000 34A159)",
"startColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_start_color/@value",
"endColor": "//Layer[contains(Name/@value, 'Layer 3')]//gradient_end_color/@value",
"type": "gradient",
"value": {
"startColor": "ffe000",
"endColor": "34a159"
}
},
"8": {
"ele": "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value",
"point": 5,
"desc": "문제2/사진2.jpg/텍스트/텍스트 입력/흰 꽃 사이 노란 꽃",
"type": "exact",
"value": "흰 꽃 사이 노란 꽃"
},
"9": {
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value",
"point": 3,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/① 글꼴(맑은 고딕)",
"type": "exact",
"value": "맑은 고딕"
},
"10": {
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Italic/@value",
"point": 3,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/② 글꼴 스타일(기울임꼴)",
"type": "exact",
"value": "True"
},
"11": {
"ele": "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value",
"point": 3,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/③ 크기(30pt)",
"type": "exact",
"value": "30"
},
"12": {
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value",
"point": 3,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/④ 채우기(색상 : B46EF8)",
"type": "exact",
"value": "b46ef8"
},
"13": {
"ele": "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value",
"point": 3,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/⑤ 외곽선(두께 : 7px)",
"type": "exact",
"value": "7"
},
"14": {
"ele": "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"point": 3,
"desc": "문제2/사진2.jpg/텍스트/텍스트 서식/⑥ 외곽선(색상 : FFFFFF)",
"type": "exact",
"value": "ffffff"
},
"15": {
"ele": "//Layer[MaskOpType/@value='Clipping'][last()]",
"point": 6,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/클리핑 마스크 설정"
},
"16": {
"ele": "//Layer[contains(Name/@value, 'Layer 5')]//shape_type/@value",
"point": 3,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/① 사각형",
"value": "RECTANGLE"
},
"17": {
"ele": "none",
"point": 3,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/② 크기 : 150 × 150",
"posX": "//Layer//Shape[shape_type/@value='RECTANGLE']//op_points[Item]/Item[last()]/X/@value - //Layer//Shape[shape_type/@value='RECTANGLE']//op_points[Item]/Item[1]/X/@value",
"posY": "//Layer//Shape[shape_type/@value='RECTANGLE']//op_points[Item]/Item[last()]/Y/@value - //Layer//Shape[shape_type/@value='RECTANGLE']//op_points[Item]/Item[1]/Y/@value",
"type": "size",
"value": {
"width": 150,
"height": 150
}
},
"18": {
"ele": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Outline')]//outline_peninfo/Width/@value",
"point": 3,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/③ 외곽선(두께 : 7px)",
"value": "7"
},
"19": {
"ele": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Outline')]/primary_color/@value",
"point": 3,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/④ 외곽선(색상 : E8E88E)",
"value": "e8e88e"
},
"20": {
"ele": {
"shadow": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]",
"width": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_width/@value",
"distance": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_distance/@value",
"blur": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_blur/@value",
"angle": "//Layer//Shape[shape_type/@value='RECTANGLE'][contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
},
"point": 5,
"desc": "문제2/사진3.jpg/②/클리핑 마스크/⑤ 그림자(두께 : 3px, 거리 : 5px, 분산도 : 1px, 각도 : 320°)",
"type": "shadow",
"value": {
"width": "3",
"distance": "5",
"blur": "1",
"angle": "320"
},
"note": "그림자설정/두께/거리/분산/각도 중 오답 하나 당 \"-1점\""
},
"21": {
"ele": "none",
"point": 0,
"desc": "문제2/기본/기본설정/지시사항 외 설정 하나 당 \"-1점\" 처리됨"
},
"22": {
"ele": "none",
"point": 0,
"desc": "파일명 확인"
}
}
}