famibee/SKYNovel

View on GitHub
docs/tag.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html><html amp lang="ja">
<head>
    <meta charset="utf-8">
    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <link rel="preload" href="https://fonts.gstatic.com/s/inconsolata/v17/QldKNThLqRwH-OJ1UHjlKGlZ5qhExfHw.woff2" as="font" type="font/woff2" crossorigin>
    <link rel="preload" href="https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2" as="font" type="font/woff2" crossorigin>
    <link rel="preload" href="https://cdn.ampproject.org/rtv/011905140117570/v0/amp-auto-lightbox-0.1.js" as="script">
    <link rel="preload" href="https://fonts.googleapis.com/css?family=Inconsolata|Montserrat" as="style">
    <title>SKYNovel タグリファレンス Tag Reference</title>
    <link rel="canonical" href="https://famibee.github.io/SKYNovel/tag.html"/>
    <meta name="description" content="SKYNovel タグリファレンス Tag Reference"/>
    <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"/>
    <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style>
    <noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
    <link href="https://fonts.googleapis.com/css?family=Inconsolata|Montserrat" rel="stylesheet">
    <style amp-custom>
        .ampstart-footer{background-color:#fff;color:#000;font-size:.75rem;padding-top:7rem;padding-bottom:7rem}
        .ampstart-footer .ampstart-icon{fill:#000}
        .ampstart-footer .ampstart-social-follow li:last-child{margin-right:0}

        .ampstart-headerbar{background-color:#ffffffc0;color:#000;z-index:999;box-shadow:0 0 5px 2px rgba(0,0,0,.1)}
        .ampstart-headerbar+:not(amp-sidebar),.ampstart-headerbar+amp-sidebar+*{margin-top:3.5rem}
        .ampstart-headerbar-nav .ampstart-nav-item{padding:0 1.5rem;background:0 0;opacity:.8}
        .ampstart-headerbar-nav{line-height:3.5rem}

/*! Bassplate | MIT License | http://github.com/basscss/bassplate *//*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.h1{font-size:3rem}.h2{font-size:2rem}.h3{font-size:1.5rem}.h4{font-size:1.125rem}.h5{font-size:.875rem}.h6{font-size:.75rem}.font-family-inherit{font-family:inherit}.font-size-inherit{font-size:inherit}.text-decoration-none{text-decoration:none}.bold{font-weight:700}.regular{font-weight:400}.italic{font-style:italic}.caps{letter-spacing:.2em}.left-align{text-align:left}.center{text-align:center}.right-align{text-align:right}.justify{text-align:justify}.nowrap{white-space:nowrap}.break-word{word-wrap:break-word}.line-height-1{line-height:1rem}.line-height-2{line-height:1.125rem}.line-height-3{line-height:1.5rem}.line-height-4{line-height:2rem}.list-style-none{list-style:none}.underline{text-decoration:underline}.truncate{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-reset{list-style:none;padding-left:0}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.table{display:table}.table-cell{display:table-cell}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.left{float:left}.right{float:right}.fit{max-width:100%}.max-width-1{max-width:24rem}.max-width-2{max-width:32rem}.max-width-3{max-width:48rem}.max-width-4{max-width:64rem}.border-box{box-sizing:border-box}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.m0{margin:0}.mt0{margin-top:0}.mr0{margin-right:0}.mb0{margin-bottom:0}.ml0,.mx0{margin-left:0}.mx0{margin-right:0}.my0{margin-top:0;margin-bottom:0}.m1{margin:1rem}.mt1{margin-top:1rem}.mr1{margin-right:1rem}.mb1{margin-bottom:1rem}.ml1,.mx1{margin-left:1rem}.mx1{margin-right:1rem}.my1{margin-top:1rem;margin-bottom:1rem}.m2{margin:1.5rem}.mt2{margin-top:1.5rem}.mr2{margin-right:1.5rem}.mb2{margin-bottom:1.5rem}.ml2,.mx2{margin-left:1.5rem}.mx2{margin-right:1.5rem}.my2{margin-top:1.5rem;margin-bottom:1.5rem}.m3{margin:2rem}.mt3{margin-top:2rem}.mr3{margin-right:2rem}.mb3{margin-bottom:2rem}.ml3,.mx3{margin-left:2rem}.mx3{margin-right:2rem}.my3{margin-top:2rem;margin-bottom:2rem}.m4{margin:2.5rem}.mt4{margin-top:2.5rem}.mr4{margin-right:2.5rem}.mb4{margin-bottom:2.5rem}.ml4,.mx4{margin-left:2.5rem}.mx4{margin-right:2.5rem}.my4{margin-top:2.5rem;margin-bottom:2.5rem}.mxn1{margin-left:-1rem;margin-right:-1rem}.mxn2{margin-left:-1.5rem;margin-right:-1.5rem}.mxn3{margin-left:-2rem;margin-right:-2rem}.mxn4{margin-left:-2.5rem;margin-right:-2.5rem}.ml-auto{margin-left:auto}.mr-auto,.mx-auto{margin-right:auto}.mx-auto{margin-left:auto}.p0{padding:0}.pt0{padding-top:0}.pr0{padding-right:0}.pb0{padding-bottom:0}.pl0,.px0{padding-left:0}.px0{padding-right:0}.py0{padding-top:0;padding-bottom:0}.p1{padding:1rem}.pt1{padding-top:1rem}.pr1{padding-right:1rem}.pb1{padding-bottom:1rem}.pl1{padding-left:1rem}.py1{padding-top:1rem;padding-bottom:1rem}.px1{padding-left:1rem;padding-right:1rem}.p2{padding:1.5rem}.pt2{padding-top:1.5rem}.pr2{padding-right:1.5rem}.pb2{padding-bottom:1.5rem}.pl2{padding-left:1.5rem}.py2{padding-top:1.5rem;padding-bottom:1.5rem}.px2{padding-left:1.5rem;padding-right:1.5rem}.p3{padding:2rem}.pt3{padding-top:2rem}.pr3{padding-right:2rem}.pb3{padding-bottom:2rem}.pl3{padding-left:2rem}.py3{padding-top:2rem;padding-bottom:2rem}.px3{padding-left:2rem;padding-right:2rem}.p4{padding:2.5rem}.pt4{padding-top:2.5rem}.pr4{padding-right:2.5rem}.pb4{padding-bottom:2.5rem}.pl4{padding-left:2.5rem}.py4{padding-top:2.5rem;padding-bottom:2.5rem}.px4{padding-left:2.5rem;padding-right:2.5rem}.col{float:left}.col,.col-right{box-sizing:border-box}.col-right{float:right}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{width:100%}@media (min-width:40.06rem){.sm-col{float:left;box-sizing:border-box}.sm-col-right{float:right;box-sizing:border-box}.sm-col-1{width:8.33333%}.sm-col-2{width:16.66667%}.sm-col-3{width:25%}.sm-col-4{width:33.33333%}.sm-col-5{width:41.66667%}.sm-col-6{width:50%}.sm-col-7{width:58.33333%}.sm-col-8{width:66.66667%}.sm-col-9{width:75%}.sm-col-10{width:83.33333%}.sm-col-11{width:91.66667%}.sm-col-12{width:100%}}@media (min-width:52.06rem){.md-col{float:left;box-sizing:border-box}.md-col-right{float:right;box-sizing:border-box}.md-col-1{width:8.33333%}.md-col-2{width:16.66667%}.md-col-3{width:25%}.md-col-4{width:33.33333%}.md-col-5{width:41.66667%}.md-col-6{width:50%}.md-col-7{width:58.33333%}.md-col-8{width:66.66667%}.md-col-9{width:75%}.md-col-10{width:83.33333%}.md-col-11{width:91.66667%}.md-col-12{width:100%}}@media (min-width:64.06rem){.lg-col{float:left;box-sizing:border-box}.lg-col-right{float:right;box-sizing:border-box}.lg-col-1{width:8.33333%}.lg-col-2{width:16.66667%}.lg-col-3{width:25%}.lg-col-4{width:33.33333%}.lg-col-5{width:41.66667%}.lg-col-6{width:50%}.lg-col-7{width:58.33333%}.lg-col-8{width:66.66667%}.lg-col-9{width:75%}.lg-col-10{width:83.33333%}.lg-col-11{width:91.66667%}.lg-col-12{width:100%}}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}@media (min-width:40.06rem){.sm-flex{display:-webkit-box;display:-ms-flexbox;display:flex}}@media (min-width:52.06rem){.md-flex{display:-webkit-box;display:-ms-flexbox;display:flex}}@media (min-width:64.06rem){.lg-flex{display:-webkit-box;display:-ms-flexbox;display:flex}}.flex-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start{-ms-flex-item-align:start;align-self:flex-start}.self-end{-ms-flex-item-align:end;align-self:flex-end}.self-center{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around{-ms-flex-pack:distribute;justify-content:space-around}.content-start{-ms-flex-line-pack:start;align-content:flex-start}.content-end{-ms-flex-line-pack:end;align-content:flex-end}.content-center{-ms-flex-line-pack:center;align-content:center}.content-between{-ms-flex-line-pack:justify;align-content:space-between}.content-around{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch{-ms-flex-line-pack:stretch;align-content:stretch}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-last{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.z1{z-index:1}.z2{z-index:2}.z3{z-index:3}.z4{z-index:4}.border{border-style:solid;border-width:1px}.border-top{border-top-style:solid;border-top-width:1px}.border-right{border-right-style:solid;border-right-width:1px}.border-bottom{border-bottom-style:solid;border-bottom-width:1px}.border-left{border-left-style:solid;border-left-width:1px}.border-none{border:0}.rounded{border-radius:3px}.circle{border-radius:50%}.rounded-top{border-radius:3px 3px 0 0}.rounded-right{border-radius:0 3px 3px 0}.rounded-bottom{border-radius:0 0 3px 3px}.rounded-left{border-radius:3px 0 0 3px}.not-rounded{border-radius:0}.hide{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}@media (max-width:40rem){.xs-hide{display:none}}@media (min-width:40.06rem) and (max-width:52rem){.sm-hide{display:none}}@media (min-width:52.06rem) and (max-width:64rem){.md-hide{display:none}}@media (min-width:64.06rem){.lg-hide{display:none}}

    .h1,h1{font-size:3rem;line-height:3.5rem}
    .h2,h2{font-size:2rem;line-height:2.5rem}
    .h3,h3{font-size:1.5rem;line-height:2rem}
    .h4,h4{font-size:1.125rem;line-height:1.5rem}
    .h5,h5{font-size:.875rem;line-height:1.125rem}
    .h6,h6{font-size:.75rem;line-height:1rem}
    h1,h2,h3,h4,h5,h6{margin:0;padding:0;font-weight:400;letter-spacing:.06em}
    a,a:active,a:visited{color:inherit}
    .ampstart-btn{font-family:inherit;font-weight:inherit;font-size:1rem;line-height:1.125rem;padding:.7em .8em;text-decoration:none;white-space:nowrap;word-wrap:normal;vertical-align:middle;cursor:pointer;background-color:#fff;color:#4508b6;border:1px solid #4508b6}

    .w-header,h1,h2,h3,h4,h5,h6{font-family:Inconsolata,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Arial,sans-serif;margin-top: 1.2em}
    .ampstart-headerbar-nav .ampstart-nav-item{padding-right:1rem}
    .ampstart-headerbar-nav .ampstart-nav-item.w-current-page{color:#066573}
    .ampstart-headerbar-nav .ampstart-nav-item.w-current-page:after,.anchor[selected]:after{content:"";display:block;height:4px;background:linear-gradient(90deg,#1e1049 0,#004dff)}

    aside li>a{text-decoration:none}

    .w-header{
        background-image:linear-gradient(90deg,#1e1049 0,#004dff);
        padding:7rem 0;
        color:#fff;
        -webkit-clip-path: polygon(0 1%, 100% 25%, 100% 100%, 0 75%);
        clip-path: polygon(0 1%, 100% 25%, 100% 100%, 0 75%);
    }

    .w-components-sec-nav{min-width:200px;margin-top:-4.5rem;padding-top:4.5rem}
    .w-components-sec-nav >p {
        background:linear-gradient(90deg,#1e1049 0,#004dff);
        color: white;
    }

    .w-heading{letter-spacing:inherit;position:relative;font-size:1.5rem;}

    .ampstart-footer{position:relative}
    .ampstart-footer:before{content:"";position:absolute;width:100%;height:35px;background-image:linear-gradient(90deg,#1e1049 0,#004dff);top:0;left:0;right:0}
    .ampstart-device-preview-mask,.ampstart-device-preview-select{background:#f9f7f7}
    .ampstart-device-preview-select{box-shadow:0 0 5px 2px rgba(0,0,0,.1)}

    .w-component-desc{margin-bottom:5rem; padding-left:1rem;padding-right:1rem;line-height: 1.6}
    .w-component-desc h1{letter-spacing:inherit;background:linear-gradient(90deg,#1e1049 0,#004dff);color: white}
    .w-component-desc:target:before{content:"";display:block;height:3.5rem}
    .w-component-desc [placeholder]{background:#fff}
    .w-component-rendered{margin-top:3.5rem}
    .w-component-desc pre{white-space:pre-line;background:#f9f7f7;overflow-y:auto;margin:0}
    .w-example-code amp-accordion [expanded] h3:after{-webkit-transform:scaleY(-1);transform:scaleY(-1)}@media (max-width:40rem){.w-component-desc>*{padding-left:0;padding-right:0}

    .w-header>*{padding-left:0;padding-right:0}}@media (max-width:363px){.w-component-iframe-container>amp-iframe{-webkit-transform:scale(.792);transform:scale(.792);-webkit-transform-origin:0 0;transform-origin:0 0;width:343px}}
    :root{--font-family-serif:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-monospace:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,sans-serif;--color-primary:#005AF0}

    body{font-family:var(--font-family-serif)}

    .abe-sublist,.ampstart-nav-item .abe-list-container{opacity:0;pointer-events:none;position:absolute}

    .ampstart-btn-secondary,.ampstart-btn-secondary[disabled],.ampstart-btn-secondary[disabled]:focus,.ampstart-btn-secondary[disabled]:hover,a.ampstart-btn-secondary,a.ampstart-btn-secondary.disabled,a.ampstart-btn-secondary.disabled:focus,a.ampstart-btn-secondary.disabled:hover{color:#fff;background:#4508b6;border:1px solid #fff}@keyframes slideUp{0%{transform:translateY(100%);opacity:.5}100%{transform:translateY(0);opacity:1}}amp-consent{background:#fff;box-shadow:rgba(0,0,0,.26) 0 0 19px 0;animation:.5s ease-out 0s 1 slideUp}

    table {margin: 1em 0;}
    th {background-color: #6033d1; color: white;}
    tr.y {background-color: #18bc9c; font-weight: bold;}
    table td {border-right: dashed 1px black; border-bottom: solid 1px black;}
    table.row td {border-bottom: solid 1px black;}
    span.red {color: #B60000;}
</style>
</head>
<body>
    <header class="ampstart-headerbar fixed flex justify-start items-center top-0 left-0 right-0 pl2 pr4">
        <div role="button" on="tap:header-sidebar.toggle" tabindex="0" class="ampstart-navbar-trigger md-hide lg-hide pr2">☰</div>
        <nav class="ampstart-headerbar-nav ampstart-nav xs-hide">
        <ul class="list-reset m0 p0 flex justify-center nowrap">
        <li class="ampstart-nav-item abe-nav-list w-current-page">
            <a href="tag.html" class="text-decoration-none block">タグ</a>
        </li>
        <li class="ampstart-nav-item abe-nav-list">
            <a href="macro_plg.html" class="text-decoration-none block">マクロ・プラグイン</a>
        </li>
        <li class="ampstart-nav-item abe-nav-list">
            <a href="dev.html" class="text-decoration-none block">開発者向け情報</a>
        </li>
        <li class="ampstart-nav-item abe-nav-list">
            <a href="https://github.com/famibee/SKYNovel" class="text-decoration-none block">github</a>
        </li>
        <li class="ampstart-nav-item abe-nav-list">
            <a href="https://famibee.blog.fc2.com/" class="text-decoration-none block">blog</a>
        </li>
    </ul>
    </nav>
    </header>

    <header class="w-header center" id="top-header">
        <h1 class="mb1">SKYNovel タグリファレンス</h1>
        <p class="block mb4 caps text-decoration-none">SKYNovel Tag Reference</p>
<!--
        <div class="w-index-header-action mx-auto">
<a class="ampstart-btn ampstart-btn-secondary caps mb1 mx2 text-decoration-none inline-block" href="/playground/#url=https://ampbyexample.com/components/amp-sidebar/source/">Open in Playground</a> <a class="ampstart-btn ampstart-btn-secondary caps mb1 mx2 text-decoration-none inline-block" href="/components/amp-sidebar/preview/">View Demo</a>
        </div>
-->
    </header>

<main class="flex pl2 mt1">
<aside class="w-components-sec-nav col-3 xs-hide sm-hide relative">
    <h3>タグ一覧</h3>
    <p>変数操作</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#clearsysvar">[clearsysvar] システム変数の全消去</a></li>
        <li class="mb1"><a href="#clearvar">[clearvar] ゲーム変数の全消去</a></li>
        <li class="mb1"><a href="#let_abs">[let_abs] 絶対値</a></li>
        <li class="mb1"><a href="#let_char_at">[let_char_at] 文字列から一字取りだし</a></li>
        <li class="mb1"><a href="#let_index_of">[let_index_of] 文字列で検索</a></li>
        <li class="mb1"><a href="#let_length">[let_length] 文字列の長さ</a></li>
        <li class="mb1"><a href="#let_ml">[let_ml] インラインテキスト代入</a></li>
        <li class="mb1"><a href="#let_replace">[let_replace] 正規表現で置換</a></li>
        <li class="mb1"><a href="#let_round">[let_round] 四捨五入</a></li>
        <li class="mb1"><a href="#let_search">[let_search] 正規表現で検索</a></li>
        <li class="mb1"><a href="#let_substr">[let_substr] 文字列から抜きだし</a></li>
        <li class="mb1"><a href="#let">[let] 変数代入・演算</a></li>
    </ul>
    <p>レイヤ共通</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#add_lay">[add_lay] レイヤを追加する</a></li>
        <li class="mb1"><a href="#clear_lay">[clear_lay] レイヤ設定の消去</a></li>
        <li class="mb1"><a href="#finish_trans">[finish_trans] トランス強制終了</a></li>
        <li class="mb1"><a href="#lay">[lay] レイヤ設定</a></li>
        <li class="mb1"><a href="#blendMode"> blendModeの解説</a></li>
        <li class="mb1"><a href="#txtlay"> レイヤ設定(文字レイヤ)</a></li>
        <li class="mb1"><a href="#grplay"> レイヤ設定(画像レイヤ)</a></li>
        <li class="mb1"><a href="#trans">[trans] ページ裏表を交換</a></li>
        <li class="mb1"><a href="#wt">[wt] トランス終了待ち</a></li>
        <li class="mb1"><a href="#add_filter">[add_filter] フィルター追加</a></li>
        <li class="mb1"><a href="#clear_filter">[clear_filter] フィルター全削除</a></li>
        <li class="mb1"><a href="#enable_filter">[enable_filter] フィルター個別切替</a></li>
    </ul>
    <p>トゥイーンアニメ</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#pause_tsy">[pause_tsy] 一時停止</a></li>
        <li class="mb1"><a href="#resume_tsy">[resume_tsy] 一時停止再開</a></li>
        <li class="mb1"><a href="#stop_tsy">[stop_tsy] トゥイーン中断</a></li>
        <li class="mb1"><a href="#tsy">[tsy] トゥイーン開始</a></li>
        <li class="mb1"><a href="#wait_tsy">[wait_tsy] トゥイーン終了待ち</a></li>
    </ul>
    <p>文字・文字レイヤ</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#autowc">[autowc] 文字ごとのウェイト</a></li>
        <li class="mb1"><a href="#ch_in_style">[ch_in_style] 文字出現演出定義</a></li>
        <li class="mb1"><a href="#ch_out_style">[ch_out_style] 文字消去演出定義</a></li>
        <li class="mb1"><a href="#ch">[ch] 文字を追加する</a></li>
        <li class="mb1"><a href="#clear_text">[clear_text] 文字消去</a></li>
        <li class="mb1"><a href="#current">[current] デフォルト文字レイヤ設定</a></li>
        <li class="mb1"><a href="#endlink">[endlink] ハイパーリンクの終了</a></li>
        <li class="mb1"><a href="#er">[er] ページ両面の文字消去</a></li>
        <li class="mb1"><a href="#graph">[graph] インライン画像表示</a></li>
        <li class="mb1"><a href="#link">[link] ハイパーリンク</a></li>
        <li class="mb1"><a href="#r">[r] 改行</a></li>
        <li class="mb1"><a href="#rec_ch">[rec_ch] 履歴書き込み</a></li>
        <li class="mb1"><a href="#rec_r">[rec_r] 履歴改行</a></li>
        <li class="mb1"><a href="#reset_rec">[reset_rec] 履歴リセット</a></li>
        <li class="mb1"><a href="#ruby2">[ruby2] 文字列と複数ルビの追加</a></li>
        <li class="mb1"><a href="#set_focus">[set_focus] フォーカス移動</a></li>
        <li class="mb1"><a href="#span">[span] インラインスタイル設定</a></li>
        <li class="mb1"><a href="#tcy">[tcy] 縦中横を表示する</a></li>
    </ul>
    <p>画像・画像レイヤ</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#add_face">[add_face] 差分名称の定義</a></li>
        <li class="mb1"><a href="#wv">[wv] 動画再生終了待ち</a></li>
    </ul>
    <p>HTMLフレーム</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#add_frame">[add_frame] フレーム追加</a></li>
        <li class="mb1"><a href="#frame">[frame] フレームに設定</a></li>
        <li class="mb1"><a href="#let_frame">[let_frame] フレーム変数を取得</a></li>
        <li class="mb1"><a href="#set_frame">[set_frame] フレーム変数に設定</a></li>
        <li class="mb1"><a href="#tsy_frame">[tsy_frame] フレームをトゥイーン開始</a></li>
    </ul>
    <p>イベント</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#clear_event">[clear_event] イベントを全消去</a></li>
        <li class="mb1"><a href="#enable_event">[enable_event] イベント有無の切替</a></li>
        <li class="mb1"><a href="#event">[event] イベントを予約</a></li>
        <li class="mb1"><a href="#l">[l] 行末クリック待ち</a></li>
        <li class="mb1"><a href="#p">[p] 改ページクリック待ち</a></li>
        <li class="mb1"><a href="#s">[s] 停止する</a></li>
        <li class="mb1"><a href="#set_cancel_skip">[set_cancel_skip] スキップ中断予約</a></li>
        <li class="mb1"><a href="#wait">[wait] ウェイトを入れる</a></li>
        <li class="mb1"><a href="#waitclick">[waitclick] クリックを待つ</a></li>
    </ul>
    <p>BGM・効果音</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#fadebgm">[fadebgm] BGMのフェード</a></li>
        <li class="mb1"><a href="#fadeoutbgm">[fadeoutbgm] BGMのフェードアウト</a></li>
        <li class="mb1"><a href="#fadeoutse">[fadeoutse] 効果音のフェードアウト</a></li>
        <li class="mb1"><a href="#fadese">[fadese] 効果音のフェード</a></li>
        <li class="mb1"><a href="#playbgm">[playbgm] BGM の演奏</a></li>
        <li class="mb1"><a href="#playse">[playse] 効果音の再生</a></li>
        <li class="mb1"><a href="#stop_allse">[stop_allse] 全効果音再生の停止</a></li>
        <li class="mb1"><a href="#stopbgm">[stopbgm] BGM 演奏の停止</a></li>
        <li class="mb1"><a href="#stopfadese">[stopfadese] 音声フェードの停止</a></li>
        <li class="mb1"><a href="#stopse">[stopse] 効果音再生の停止</a></li>
        <li class="mb1"><a href="#volume">[volume] 音量設定</a></li>
        <li class="mb1"><a href="#wb">[wb] BGM フェードの終了待ち</a></li>
        <li class="mb1"><a href="#wf">[wf] 効果音フェードの終了待ち</a></li>
        <li class="mb1"><a href="#wl">[wl] BGM 再生の終了待ち</a></li>
        <li class="mb1"><a href="#ws">[ws] 効果音再生の終了待ち</a></li>
        <li class="mb1"><a href="#xchgbuf">[xchgbuf] サウンドバッファの交換</a></li>
    </ul>
    <p>条件分岐</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#else">[else] その他ifブロック開始</a></li>
        <li class="mb1"><a href="#elsif">[elsif] 別条件のifブロック開始</a></li>
        <li class="mb1"><a href="#endif">[endif] ifブロックの終端</a></li>
        <li class="mb1"><a href="#if">[if] ifブロックの開始</a></li>
    </ul>
    <p>ラベル・ジャンプ</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#button">[button] ボタンを表示</a></li>
        <li class="mb1"><a href="#call">[call] サブルーチンコール</a></li>
        <li class="mb1"><a href="#jump">[jump] シナリオジャンプ</a></li>
        <li class="mb1"><a href="#page">[page] ページ移動</a></li>
        <li class="mb1"><a href="#pop_stack">[pop_stack] コールスタック破棄</a></li>
        <li class="mb1"><a href="#return">[return] サブルーチンから戻る</a></li>
    </ul>
    <p>マクロ</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#bracket2macro">[bracket2macro] 括弧マクロの定義</a></li>
        <li class="mb1"><a href="#char2macro">[char2macro] 一文字マクロの定義</a></li>
        <li class="mb1"><a href="#endmacro">[endmacro] マクロ定義の終了</a></li>
        <li class="mb1"><a href="#macro">[macro] マクロ定義の開始</a></li>
    </ul>
    <p>しおり</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#copybookmark">[copybookmark] しおりの複写</a></li>
        <li class="mb1"><a href="#erasebookmark">[erasebookmark] しおりの消去</a></li>
        <li class="mb1"><a href="#load">[load] しおりの読込</a></li>
        <li class="mb1"><a href="#record_place">[record_place] セーブポイント指定</a></li>
        <li class="mb1"><a href="#reload_script">[reload_script] スクリプト再読込</a></li>
        <li class="mb1"><a href="#save">[save] しおりの保存</a></li>
    </ul>
    <p>画面揺らし</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#quake">[quake] 画面を揺らす</a></li>
        <li class="mb1"><a href="#stop_quake">[stop_quake] 画面揺らし中断</a></li>
        <li class="mb1"><a href="#wq">[wq] 画面揺らし終了待ち</a></li>
    </ul>
    <p>システム</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#close">[close] アプリの終了</a></li>
        <li class="mb1"><a href="#export">[export] プレイデータをエクスポート</a></li>
        <li class="mb1"><a href="#import">[import] プレイデータをインポート</a></li>
        <li class="mb1"><a href="#loadplugin">[loadplugin] プラグインの読み込み</a></li>
        <li class="mb1"><a href="#navigate_to">[navigate_to] URLを開く</a></li>
        <li class="mb1"><a href="#snapshot">[snapshot] スナップショット</a></li>
        <li class="mb1"><a href="#title">[title] タイトル指定</a></li>
        <li class="mb1"><a href="#toggle_full_screen">[toggle_full_screen] 全画面状態切替</a></li>
        <li class="mb1"><a href="#update_check">[update_check] 更新チェック機能</a></li>
        <li class="mb1"><a href="#window">[window] アプリウインドウ設定</a></li>
    </ul>
    <p>デバッグ・その他</p>
    <ul class="anchors list-reset m0 p0 px1">
        <li class="mb1"><a href="#dump_lay">[dump_lay] 外部へスクリプトを表示</a></li>
<!--
        <li class="mb1"><a href="#dump_script">[dump_script] スクリプトのダンプ</a></li>
-->
        <li class="mb1"><a href="#dump_stack">[dump_stack] スタックのダンプ</a></li>
        <li class="mb1"><a href="#dump_val">[dump_val] 変数のダンプ</a></li>
        <li class="mb1"><a href="#log">[log] ログ出力</a></li>
        <li class="mb1"><a href="#trace">[trace] デバッグ表示へ出力</a></li>
    </ul>
</aside>

<article class="w-components flex-auto col-9">
<section class="w-component-desc">

<h1>変数操作</h1>

<h2 id="clearsysvar" class="w-heading">[clearsysvar] システム変数の全消去</h2>
<h4>sys:変数を全消去。削除すると言うより、初期化する</h4>
<p class="mb2 px1">

    属性無し

</p>
<h2 id="clearvar" class="w-heading">[clearvar] ゲーム変数の全消去</h2>
<h4>save:変数を全消去。削除すると言うより、初期化する</h4>
<p class="mb2 px1">

    属性無し

</p>
<h2 id="let_abs" class="w-heading">[let_abs]絶対値</h2>
<h4>絶対値を求める。結果を変数に代入する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>実数</td><td>絶対値を求める数</td></tr>
<tr><td>cast</td><td></td><td>出来るだけ数値変換</td><td>num、int、uint、bool、str</td><td>値をセットする際の型。(詳細は[let]を参照)</td></tr>
</table>

</p>
<h2 id="let_char_at" class="w-heading">[let_char_at] 文字列から一字取りだし</h2>
<h4>文字列中の一文字を取り出す。結果を変数に代入する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>元になる文字列</td></tr>
<tr><td>pos</td><td></td><td>0</td><td>0(先頭)〜</td><td>何番目の文字を取り出すか。0(先頭)</td></tr>
<tr><td>cast</td><td></td>実数<td>出来るだけ数値変換</td><td>num、int、uint、bool、str</td><td>値をセットする際の型。(詳細は[let]を参照)</td></tr>
</table>

</p>
<h2 id="let_index_of" class="w-heading">[let_index_of]文字列で検索</h2>
<h4>文字列内を検索し、文字列内の start 以降で、最初に val が見つかった位置を返す。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数。-1の場合は見つからなかった</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>元になる文字列</td></tr>
<tr class="y"><td>val</td><td>y</td><td></td><td>文字列</td><td>探す文字列</td></tr>
<tr><td>start</td><td></td><td>0</td><td>0〜</td><td>検索を開始する位置。0(先頭)</td></tr>
<tr><td>cast</td><td></td>実数<td>出来るだけ数値変換</td><td>num、int、uint、bool、str</td><td>値をセットする際の型。(詳細は[let]を参照)</td></tr>
</table>

</p>
<h2 id="let_length" class="w-heading">[let_length]文字列の長さ</h2>
<h4>文字列の長さを求める。結果を変数に代入する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>長さを求める文字列</td></tr>
<tr><td>cast</td><td></td>実数<td>出来るだけ数値変換</td><td>num、int、uint、bool、str</td><td>値をセットする際の型。(詳細は[let]を参照)</td></tr>
</table>

</p>
<h2 id="let_ml" class="w-heading">[let_ml]インラインテキスト代入</h2>
<h4>[let_ml]〜[endlet_ml]で囲んだ複数行テキストを代入する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数</td></tr>
</table>

</p>
<h2 id="let_replace" class="w-heading">[let_replace]正規表現で置換</h2>
<h4>文字列を正規表現で検索し、マッチする箇所を文字列で置き換える。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>置換対象の文字列</td></tr>
<tr class="y"><td>reg</td><td>y</td><td></td><td>文字列</td><td>正規表現</td></tr>
<tr><td>flags</td><td></td><td>(なし)</td><td>文字列</td><td>正規表現のフラグ</td></tr>
<tr class="y"><td>val</td><td>y</td><td></td><td>文字列</td><td>置き換える文字列</td></tr>
<tr><td>cast</td><td></td>実数<td>出来るだけ数値変換</td><td>num、int、uint、bool、str</td><td>値をセットする際の型。(詳細は[let]を参照)</td></tr>
</table>

</p>
<h2 id="let_round" class="w-heading">[let_round]四捨五入</h2>
<h4>四捨五入する。結果を変数に代入する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>実数</td><td>四捨五入する数</td></tr>
<tr><td>cast</td><td></td>実数<td>出来るだけ数値変換</td><td>num、int、uint、bool、str</td><td>値をセットする際の型。(詳細は[let]を参照)</td></tr>
</table>

</p>
<h2 id="let_search" class="w-heading">[let_search]正規表現で検索</h2>
<h4>文字列内を正規表現で検索し、最初に val が見つかった位置を返します。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>検索対象の文字列</td></tr>
<tr class="y"><td>reg</td><td>y</td><td></td><td>文字列</td><td>正規表現</td></tr>
<tr><td>flags</td><td></td><td>(なし)</td><td>文字列</td><td>正規表現のフラグ</td></tr>
<tr><td>cast</td><td></td>実数<td>出来るだけ数値変換</td><td>num、int、uint、bool、str</td><td>値をセットする際の型。(詳細は[let]を参照)</td></tr>
</table>

</p>
<h2 id="let_substr" class="w-heading">[let_substr] 文字列から抜きだし</h2>
<h4>文字列の一部を取り出す。結果を変数に代入する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>元になる文字列</td></tr>
<tr><td>pos</td><td></td><td>0</td><td>整数</td><td>何番目の文字から取り出すか。<br/>負の値なら「後ろから何個目か」。0(先頭)が先頭、-1が最後の文字。<br/>【pos=-3 len=all】とすると、後ろから3文字を取り出す</td></tr>
<tr><td>len</td><td></td><td>1</td><td>文字数、または all</td><td>何文字取り出すか。all でpos以降の全て</td></tr>
<tr><td>cast</td><td></td>実数<td>出来るだけ数値変換</td><td>num、int、uint、bool、str</td><td>値をセットする際の型。(詳細は[let]を参照)</td></tr>
</table>

</p>
<h2 id="let" class="w-heading">[let] 変数代入・演算</h2>
<h4>変数に値を代入する</h4>
<p class="mb2 px1">
    変数については「<a href="dev.md#reserve_value_sys">SKYNovel 組み込み変数</a>」を参照して下さい

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>代入変数名</td><td>代入する変数</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>セットする値</td></tr>
<tr><td>cast</td><td></td><td>出来るだけ数値変換</td><td>num、int、uint、bool、str</td><td>値をセットする際の型。<br/>num……数値(実数)。「01」は数値の1となる。<br/>int……数値(符合付き整数)<br/>uint……数値(符合なし整数)<br/>bool……true、false<br/>str……文字列。「01」は「01」のまま</td></tr>
</table>
<pre>
[let]を使わない、より簡潔な記述文法があります。
    ※condのような条件分岐、「=aaa|0x0」のような省略記法はできません。
以下の記述は、
    [let name=a text=1]
    [let name="b" text=2]
    [let name=ret text="&amp;a + b"](文字列ではなく計算の場合、右辺に&amp;をつける)
    [let name="&amp;'ret'+ a" text="&amp;1 + b"](左辺で&amp;を使える)
    以下のようにも書けます。(&amp;から改行かタブまでを[let]文と解釈します)
    &amp;a=1
    &amp;b=2
    &amp;ret = a + b(このように、右辺の&amp;は省略します。常に&amp;がついているイメージ)
    &amp;&amp;'tst' + a = 1+b(左辺で&amp;を使える。&amp;ret1 = 1 + b と同じ)
キャストも記述できます。(両者は同じ意味)
    [let name=ret text=&amp;1+2 cast=int](結果は3。1+2の計算結果が入る)
    &amp;ret=1+2=int(同上)
キャスト動作そのものは、以下のとおり。
    &amp;num = '0+1' = int(結果は0、文字列「0+1」を計算せず文字列のまま、数値に変換できないため)
    &amp;num = 0+1 = int(結果は1、0+1という計算結果をintで変数へ)
    &amp;txt = '0+1' = str(結果は文字列「0+1」、文字列をそのまま変数に)
    &amp;txt = 0+1 = str(結果は文字列「1」、0+1を計算してから結果1を文字列「1」として変数に)
</pre>

</p>


<h1><a id="レイヤ共通"></a>レイヤ共通</h1>
<h2 id="add_lay" class="w-heading">[add_lay]レイヤを追加する</h2>
<h4>レイヤを追加する。</h4>
<p class="mb2 px1">

レイヤはページの裏表があり、文字レイヤや画像レイヤなどの種類があります。<br/>
<br/>
レイヤの追加と同時に、[lay]に指定できる属性を指定できます。(内部的に[lay]を呼ぶ)<br/>
これにより、[add_lay visible=false ...]等とすると、非表示状態でレイヤ追加できます。

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>layer</td><td>y</td><td></td><td>未使用のレイヤ名</td><td>レイヤ名を指定する。<br/>未使用のレイヤ名でなければエラー&アプリ停止</td></tr>
<tr class="y"><td>class</td><td>y</td><td></td><td>grp、txt</td><td>レイヤの種類。grp(画像レイヤ)、txt(文字レイヤ)のレイヤ種別</td></tr>
<tr><td colspan="3">(その他)</td><td colspan="2">[lay]に指定できる属性</td></tr>
</table>

</p>
<h2 id="clear_lay" class="w-heading">[clear_lay]レイヤ設定の消去</h2>
<h4>画像や文字などレイヤ状態をクリアする。</h4>
<p class="mb2 px1">

<p>alpha、blendMode、rotation、scaleX、scaleYを初期値にする<br/>
    ※背景や背景画像はクリアしません(b_color、b_alpha、b_alpha_isfixed)
     クリアしたい場合は、[lay back_clear=true]</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>全てのレイヤ</td><td>レイヤ名(カンマ区切りで複数可)</td><td></td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back、both</td><td>ページの裏表(both指定で両面)</td></tr>
<tr><td><s>filter</s></td><td></td><td>false</td><td>true、false</td><td><s>true:フィルタもクリア</s>(ver 1.50.1 まで)</td></tr>
<tr><td>clear_filter</td><td></td><td>false</td><td>true、false</td><td>true:フィルタもクリア</td></tr>
</table>

</p>
<h2 id="finish_trans" class="w-heading">[finish_trans] トランス強制終了</h2>
<h4>[trans]で開始したトランスをすぐ終了させる</h4>
<p class="mb2 px1">
    属性無し。<br/>
    <br/>
    [trans]で開始したトランス終了を待たず、すぐ終了させる。<br/>
    終了次第、スクリプト処理を次へ進める

</p>
<h2 id="lay" class="w-heading">[lay]レイヤ設定(共通)</h2>
<h4>レイヤに各種設定を行う。</h4>
<p class="mb2 px1">

<p>レイヤの種類ごとに使用できる属性もあるが、共通な属性をここで解説する</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>layer</td><td>y</td><td></td><td>レイヤ名</td><td>処理対象のレイヤ</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr><td>visible</td><td></td><td>現在値</td><td>true、false</td><td>true:表示、false:非表示</td></tr>
<tr><td>alpha</td><td></td><td>1.0</td><td>0.0〜1.0</td><td>レイヤの透過度。0(完全透明)〜0.5(半透明)〜1(不透明)</td></tr>
<tr><td>blendmode</td><td></td><td>何もしない</td><td>ブレンドモード名("screen"など)</td><td>このレイヤと下のレイヤとの重なりにおいて、<br/>ドット単位で色のブレンド演算を行なう。<br/>詳細は<a href="tag.html#blendMode" target="_blank" rel="noopener">blendModeの解説</a>を参照</td></tr>
<tr><td>pos</td><td></td><td>c</td><td>c・l・r・横座標</td><td>主に立ち絵に使う。横と縦座標を同時に設定する。<br/>横座標は指定した値(文字cの場合は画面中央、lは左寄り、rは右寄り)に設定し、画像下端を画面下端に接するように自動計算する</td></tr>
<tr><td>left</td><td></td><td>0</td><td>実数</td><td>レイヤやボタン左端の画面左端からの距離</td></tr>
<tr><td>center</td><td></td><td>0</td><td>実数</td><td>レイヤやボタン中央の画面左端からの距離</td></tr>
<tr><td>right</td><td></td><td>0</td><td>実数</td><td>レイヤやボタン右端の画面左端からの距離</td></tr>
<tr><td>s_right</td><td></td><td>0</td><td>実数</td><td>レイヤやボタン右端の画面右端からの距離</td></tr>
<tr><td>top</td><td></td><td>0</td><td>実数</td><td>レイヤやボタン上端の画面上端からの距離</td></tr>
<tr><td>middle</td><td></td><td>0</td><td>実数</td><td>レイヤやボタン中央の画面上端からの距離</td></tr>
<tr><td>bottom</td><td></td><td>0</td><td>実数</td><td>レイヤやボタン下端の画面上端からの距離</td></tr>
<tr><td>s_bottom</td><td></td><td>0</td><td>実数</td><td>レイヤやボタン下端の画面下端からの距離</td></tr>
<tr><td>rotation</td><td></td><td>0</td><td>-180〜180;回転角度</td><td>回転角を度単位で指定。時計回りは0~180、反時計回りは0~-180を指定。 左上を中心に回る</td></tr>
<tr><td>scale_x</td><td></td><td>1.0</td><td>実数</td><td>横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転</td></tr>
<tr><td>scale_y</td><td></td><td>1.0</td><td>実数</td><td>縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転</td></tr>
<tr><td>pivot_x</td><td></td><td>0.0</td><td>実数</td><td>左上を基準として、回転や移動時の基準を指定</td></tr>
<tr><td>pivot_y</td><td></td><td>0.0</td><td>実数</td><td>左上を基準として、回転や移動時の基準を指定</td></tr>
<tr><td>float</td><td></td><td>何もしない</td><td>true、false</td><td>true:レイヤを最前面に移動する</td></tr>
<tr><td>index</td><td></td><td>何もしない</td><td>0〜</td><td>レイヤをindexで指定したインデックスに移動する。<br/>0がもっとも背後。レイヤを重ねるたびに1加算したindexになる</td></tr>
<tr><td>dive</td><td></td><td>何もしない</td><td>レイヤ名</td><td>レイヤをdiveで指定したレイヤのすぐ後ろに潜り込ませる</td></tr>
<tr><td>filter</td><td></td><td>なにもしない</td><td>フィルター名</td><td>レイヤに指定するフィルター名。その他必要な属性は適宜指定する。詳細は<a href="tag.html#add_filter" target="_blank" rel="noopener">[add_filter]</a>参照。ただし[add_filter]のような追加ではなく上書き</td></tr>
<tr><td>enable_filter</td><td></td><td>true</td><td>true、false</td><td>フィルターを有効にするか</td></tr>
</table>

</p>


<h2 id="blendMode" class="w-heading">blendModeの解説</h2>
<p class="mb2 px1">

<table><tr><th>SKYNovel での blendmode 属性の値</th><th>Photoshop ブレンドモード名</th><th>コメント</th></tr>
<tr><td>normal        </td><td>標準    </td><td>表示オブジェクトは、背景の前に表示されます。(なにもしない)</td></tr>
<tr><td>add            </td><td>加算    </td><td>表示オブジェクトの要素カラーの値を背景色に加算し、その際に上限 0xFF を適用します</td></tr>
<tr><td>multiply    </td><td>乗算    </td><td>表示オブジェクトの要素カラーの値と背景色の要素カラーの値を乗算した後、0xFF で割って正規化し、色を暗くします</td></tr>
<tr><td>screen        </td><td>スクリーン    </td><td>表示オブジェクトの色の補数(逆)と背景色の補数を乗算して、ブリーチ効果を得ます</td></tr>
<!--
<tr><td>overlay        </td><td>オーバーレイ    </td><td>背景の暗さに基づいて、各ピクセルの色を調整します</td></tr>
<tr><td>darken        </td><td>比較 (暗)    </td><td>表示オブジェクトの要素カラーと背景色のうち暗い方(値が小さい方)の色を選択します</td></tr>
<tr><td>lighten        </td><td>比較 (明)    </td><td>表示オブジェクトの要素カラーと背景色のうち明るい方(値が大きい方)の色を選択します</td></tr>
<tr><td>color_dodge    </td><td>    </td><td></td></tr>
<tr><td>color_burn    </td><td>    </td><td></td></tr>
<tr><td>hard_light    </td><td>ハードライト    </td><td>表示オブジェクトの暗さに基づいて、各ピクセルの色を調整します</td></tr>
<tr><td>soft_light    </td><td>    </td><td></td></tr>
<tr><td>difference    </td><td>差の絶対値    </td><td>表示オブジェクトの各ピクセルのアルファ値を背景に適用します</td></tr>
<tr><td>exclusion    </td><td>    </td><td></td></tr>
<tr><td>hue            </td><td>    </td><td></td></tr>
<tr><td>saturation    </td><td>    </td><td></td></tr>
<tr><td>color        </td><td>    </td><td></td></tr>
<tr><td>luminosity    </td><td>    </td><td></td></tr>
<tr><td>normal_npm    </td><td>    </td><td></td></tr>
<tr><td>add_npm        </td><td>    </td><td></td></tr>
<tr><td>screen_npm    </td><td>    </td><td></td></tr>
<tr><td>none        </td><td>    </td><td></td></tr>
<tr><td>src_in        </td><td>    </td><td></td></tr>
<tr><td>src_out        </td><td>    </td><td></td></tr>
<tr><td>src_atop    </td><td>    </td><td></td></tr>
<tr><td>dst_over    </td><td>    </td><td></td></tr>
<tr><td>dst_in        </td><td>    </td><td></td></tr>
<tr><td>dst_out        </td><td>    </td><td></td></tr>
<tr><td>dst_atop    </td><td>    </td><td></td></tr>
<tr><td>subtract    </td><td>減算    </td><td>結果の下限を 0 として、表示オブジェクトの要素カラーの値をその背景色の値から減算します</td></tr>
<tr><td>src_over    </td><td>    </td><td></td></tr>
<tr><td>erase        </td><td>消去    </td><td>表示オブジェクトのアルファ値に基づいて背景を消去します</td></tr>
<tr><td>xor            </td><td>    </td><td></td></tr>
-->
</table>

</p>


<h2 id="txtlay" class="w-heading">[lay]レイヤ設定(文字レイヤ)</h2>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>b_color</td><td></td><td>(↑と同じ)</td><td>色指定。0x000000など</td><td>テキスト背後の矩形色。初期値は 0x000000(黒)</td></tr>
<tr><td>b_alpha</td><td></td><td>(↑と同じ)</td><td>実数:0.0(透明)〜1.0(不透過)</td><td>テキスト背後の矩形不透明度。<br/>表示しない場合は0を指定。初期値は 0</td></tr>
<tr><td>b_alpha_isfixed</td><td></td><td>現在値</td><td>true、false</td><td>true:テキスト背後の矩形不透明度を、「b_alpha属性と sys:TextLayer.Back.Alpha の掛け算とせず」、b_alpha属性値そのものにする。(これは2017/2/13以前の仕様)</td></tr>
<tr><td>b_pic</td><td></td><td>(↑と同じ)</td><td>画像ファイル名</td><td>文字レイヤ背後の枠画像を指定する。b_alphaの影響を受ける。<br/>(これを指定するとb_colorは無視される)</td></tr>
<tr><td>back_clear</td><td></td><td>現在値</td><td>true、false</td><td>true:背景をクリアする</td></tr>
<tr><td>break_fixed</td><td rowspan="3"></td><td rowspan="3">現在値</td><td>true、false</td><td>
    true:クリック待ちマークを固定位置に表示<br/>
    false:最後に表示した文字の次、改行せずぶら下げ位置に表示
</td></tr>
<tr><td>break_fixed_left</td><td rowspan="2">整数</td><td rowspan="2">クリック待ちマークの表示位置を指定する</td></tr>
<tr><td>break_fixed_top</td></tr>
<tr><td>style</td><td></td><td>何もしない</td><td>CSS style</td><td>
    文字の CSS Style を指定する。<br/>
    [span][ch]などで style を指定しない際のデフォルト値。<br/>
    「color: red;」「color: blue;」と個別指定時は、過去値を上書きする。<br/>
    空白文字を指定時は全てクリアする<br/>
</td></tr>
<tr><td>r_style</td><td></td><td>何もしない</td><td>CSS style</td><td>
    ルビの CSS Style を指定する。<br/>
    「color: red;」「color: blue;」と個別指定時は、過去値を上書きする。<br/>
    空白文字を指定時は全てクリアする<br/>
</td></tr>
<tr><td>r_align</td><td></td><td>現在値</td><td>left、center、right、justify、121、even、1ruby</td><td>ルビ揃えを指定する。<br/>left ……(肩付き)先頭親文字から、ルビ間は密着<br/>center ……(中付き)センター合わせ、〃<br/>right ……(右/下揃え)末尾親文字から、〃<br/>justify
    ……(両端揃え)先頭から末尾親文字間に、ルビ間は均等にあける<br/>121 ……(1-2-1(JIS))ルビの前後を比率1、ルビ間を比率2であける<br/>even ……(均等アキ)ルビの前後、ルビ間も均等にあける<br/>1ruby
    ……(1ルビ文字アキ)ルビの前後をルビ一文字空け、ルビ間は均等にあける<br/><br/>初期値は center。<br/>
    <br/>
    ※親文字よりルビの方が長い場合は、親文字に対する「中付き」表示になる<br/>
    →<a href="https://famibee.github.io/SKYNovel_gallery/index.html?cur=ruby" target="_blank" rel="noopener">参考(機能ギャラリー・直感的なルビ文法)</a>
</td></tr>
</table>

    <amp-img src="pic/r_align.png" width="864" height="275" layout="responsive"></amp-img>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>ch_in_style</td><td></td><td>何もしない</td><td>文字出現演出名</td><td><a href="tag.html#ch_in_style" target="_blank" rel="noopener">[ch_in_style]</a>で定義した文字出現演出名</td></tr>
<tr><td>ch_out_style</td><td></td><td>何もしない</td><td>文字消去演出名</td><td><a href="tag.html#ch_out_style" target="_blank" rel="noopener">[ch_out_style]</a>で定義した文字消去演出名</td></tr>
<tr><td>ffs</td><td></td><td>現在値</td><td>(コメントで解説)</td><td>
    CSS の文字詰め font-feature-settingsでの「"pwid"」「"palt"」など指定できる。<br/>
    (styleで指定してはいけない)<br/>
    (二重引用符・ダブルコーテーションマークも必要なので、【ffs='"pwid"'】と指定する。<br/>
    これは【ffs='"palt" 1, "trad" 1'】という指定も CSS にできるため)<br/>
    初期値は指定なし<br/>
    →【参考】<a href="https://ics.media/entry/14087/" target="_blank" rel="noopener">文字詰めできるCSSのfont-feature-settingsが凄い! 日本語フォントこそ指定したい自動カーニング - ICS MEDIA</a>
</td></tr>
<tr><td>noffs</td><td></td><td>現在値</td><td>文字列</td><td>
    font-feature-settingsの対象としない文字を指定できる。複数指定可能。<br/>
    デフォルト値は指定なし。(ただしインライン画像やクリック待ち記号表示のため、全角空白は必ず指定に含まれる)
</td></tr>
<tr><td>kinsoku_sol</td><td></td><td>何もしない</td><td>文字列</td><td>
    行頭禁則の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。<br/>
    デフォルト値は以下の通り。<br/>
、。,.)]}〉」』】〕”〟ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮヵヶ!?!?‼⁉・ーゝゞヽヾ々
</td></tr>
<tr><td>kinsoku_eol</td><td></td><td>何もしない</td><td>文字列</td><td>
    行末禁則の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。<br/>
    デフォルト値は以下の通り。<br/>
[({〈「『【〔“〝
</td></tr>
<tr><td>kinsoku_dns</td><td></td><td>何もしない</td><td>文字列</td><td>
    分割禁止の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。<br/>
    デフォルト値は以下の通り。<br/>
─‥…
</td></tr>
</table>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>(以下は未作成)</td><td></td><td></td><td></td><td>(以下は未作成)</td></tr>

<tr><td>draggable</td><td></td><td>false</td><td>true、false</td><td>true:テキスト背後の矩形をドラッグできる</td></tr>
<tr><td>drag_x</td><td></td><td>0</td><td>画面左上を原点とする座標</td><td>ドラッグ範囲の左上始点</td></tr>
<tr><td>drag_y</td><td></td><td>0</td><td>(↑と同じ)</td><td>(↑と同じ)</td></tr>
<tr><td>drag_w</td><td></td><td>画面横幅</td><td>ドラッグ範囲縦横ピクセル数</td><td>ドラッグ範囲縦横サイズ</td></tr>
<tr><td>drag_h</td><td></td><td>画面縦幅</td><td>(↑と同じ)</td><td>(↑と同じ)</td></tr>
<tr><td>dragmove_fn</td><td>...</td><td>...</td><td>...</td><td>ドラッグ中にサブルーチンコールする先。<br/>指定方法は[jump]と同様</td></tr>
<tr><td>dragmove_label</td><td>(↑と同じ)</td><td>(↑と同じ)</td><td>(↑と同じ)</td><td>(↑と同じ)</td></tr>
<tr><td>dragmove_arg</td><td></td><td></td><td>文字列</td><td>指定した場合、ドラッグ中コール先で「&amp;sn.eventArg」にて値を受け取れる</td></tr>
<tr><td>h_scroll</td><td></td><td></td><td>ピクセル数</td><td>横スクロールさせる量</td></tr>
<tr><td>v_scroll</td><td></td><td></td><td>ピクセル数</td><td>縦スクロールさせる量</td></tr>
<tr><td>mouse_wheel_enabled</td><td></td><td></td><td>true、false</td><td>マウスホイールでスクロール許可するか否か</td></tr>
</table>

</p>
<h2 id="grplay" class="w-heading">[lay]レイヤ設定(画像レイヤ)</h2>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>fn</td><td>y</td><td>何もしない</td><td>画像ファイル名</td><td>
    基本画像・動画ファイルを指定する<br/>
    基本画像ファイルを指定する。複数指定時はこの属性一つで基本画像(先頭)と差分名称(二つめ以降)を指定できる。<br/>
    動画ファイルを指定時はロードしてすぐに動画再生が始まる。<br/>
    <br/>
    ※ただし、ブラウザ版では「ページロード後に一度だけでもクリック(クリック待ちでもボタンでも可)されていないと再生させない」というブラウザの挙動があるため、再生する前のいつでもいいのでクリックの機会を作ること。<br/>
    ※ ムービー再生されない場合、DevTools に【Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.】のようなエラーが出ていればこの件。<br/>
</td></tr>
<tr><td>face</td><td></td><td>何もしない</td><td>差分名称(カンマ区切りで複数可)</td><td>差分名称または画像ファイル名を指定する。<br/>[fg fn="a" face="b,c,d"]なら「基本a」の上に「差分b」を重ね、「差分c」を重ね、「差分d」を重ねる。<br/><br/>【注意】fnは同じでface属性だけを指定→指定なしにした場合、表示が変わりませんが不具合ではありません。
    「face属性指定なし」は「何もしない」、つまり変化させないからです。<br/>[fg layer=upd fn="a" face="b"]<br/>[l]<br/>[fg layer=upd fn="a"]<br/>[l]<br/><br/>差分名称を無くしたい場合、明確に空文字("")を指定します。<br/>[fg
    layer=upd fn="a" face="b"]<br/>[l]<br/>[fg layer=upd fn="a" face=""]<br/>[l]</td></tr>

<tr class="y"><td>(以下は未作成)</td><td></td><td></td><td></td><td>(以下は未作成)</td></tr>

<tr><td>draggable</td><td></td><td>false</td><td>true、false</td><td>true:テキスト背後の矩形をドラッグできる</td></tr>
<tr><td>drag_x</td><td></td><td>0</td><td>画面左上を原点とする座標</td><td>ドラッグ範囲の左上始点</td></tr>
<tr><td>drag_y</td><td></td><td>0</td><td>(↑と同じ)</td><td>(↑と同じ)</td></tr>
<tr><td>drag_w</td><td></td><td>画面横幅</td><td>ドラッグ範囲縦横ピクセル数</td><td>ドラッグ範囲縦横サイズ</td></tr>
<tr><td>drag_h</td><td></td><td>画面縦幅</td><td>(↑と同じ)</td><td>(↑と同じ)</td></tr>
<tr><td>dragmove_fn</td><td>...</td><td>...</td><td>...</td><td>ドラッグ中にサブルーチンコールする先。<br/>指定方法は[jump]と同様</td></tr>
<tr><td>dragmove_label</td><td>...</td><td>...</td><td>...</td><td>(↑と同じ)</td></tr>
<tr><td>dragmove_arg</td><td></td><td></td><td>文字列</td><td>指定した場合、ドラッグ中コール先で「&amp;sn.eventArg」にて値を受け取れる</td></tr>
</table>

</p>
<h2 id="trans" class="w-heading">[trans]ページ裏表を交換</h2>
<h4>裏ページを表ページとクロスフェードする。</h4>
<p class="mb2 px1">

<p>クロスフェードを開始すると、終了を待たずに次のタグへと処理を進める。<br/>
    終了を待ちたい場合は[wt]を使用する。<br/>
    <br/>
    クロスフェード終了後は元・裏ページから元・表ページに内容をコピーし、同じ内容になる。<br/>
    <br/>
    ルール画像は白黒かグレースケールを推奨。(見た目と動きが一致する)<br/>
    また[trans]~[wt]間で文字表示や[ch]は動作未定義、非推奨。<br/>
    [trans]終了を待たず何かをするのは避けた方がよいでしょう。</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>全てのレイヤ</td><td>レイヤ名(カンマ区切りで複数可能)</td><td>クロスフェードするレイヤ。指定以外のレイヤは変化させない</td></tr>
<tr><td>time</td><td></td><td>0</td><td>0〜;ミリ秒</td><td>変化にかける時間</td></tr>
<tr><td>delay</td><td></td><td>0</td><td>0〜;ミリ秒</td><td>変化する前に待機する遅延時間</td></tr>
<tr><td>rule</td><td></td><td>画面全体ピクセルで同時にクロスフェードする</td><td>画像ファイル名</td><td>指定した場合はルール画像として、ピクセル単位でクロスフェードするタイミングをずらす。<br/>ルール画像の黒いピクセル(と同じ位置にあるピクセル)が先に処理され、白が最後になる</td></tr>
<tr><td>vague</td><td></td><td>0.04</td><td>0.0〜1.0</td><td>トランジション期間全体を1とした値。表レイヤと裏レイヤの境界を曖昧にぼかす度合い</td></tr>
<tr><td>ease</td><td></td><td>Linear.None</td><td>イージング名</td><td>揺れのイージング(値の変化の仕方)を指定する。<br/><a href="https://createjs.com/demos/tweenjs/tween_sparktable" target="_blank" rel="noopener">イージングの変化はこちらの図</a>(または<a href="https://sole.github.io/tween.js/examples/03_graphs.html" target="_blank" rel="noopener">こちら</a>)が分かりやすい。<br/>
指定できる値は以下の通り。<br/>
Back.In、Back.InOut、Back.Out<br/>
Bounce.In、Bounce.InOut、Bounce.Out<br/>
Circular.In、Circular.InOut、Circular.Out<br/>
Cubic.In、Cubic.InOut、Cubic.Out<br/>
Elastic.In、Elastic.InOut、Elastic.Out<br/>
Exponential.In、Exponential.InOut、Exponential.Out<br/>
Linear.None<br/>
Quadratic.In、Quadratic.InOut、Quadratic.Out<br/>
Quartic.In、Quartic.InOut、Quartic.Out<br/>
Quintic.In、Quintic.InOut、Quintic.Out<br/>
Sinusoidal.In、Sinusoidal.InOut、Sinusoidal.Out<br/>
<br/>
・<a href="https://github.com/tweenjs/tween.js/blob/master/README.md" target="_blank" rel="noopener">tween.js/README.md at master · tweenjs/tween.js</a><br/>
・<a href="https://ics.media/tutorial-createjs/tween/" target="_blank" rel="noopener">CreateJS でのトゥイーンの作成方法 - ICS MEDIA</a><br/>
</td></tr>
<tr><td>glsl</td><td></td><td></td><td>シェーダー記述言語GLSL</td><td>
動作サンプルがありますので、詳細はそちらで。<br/>機能ギャラリー【[フラグメントシェーダで[trans]](https://famibee.github.io/SKYNovel_gallery/?cur=glsl_slide)】<br/>
    ざっくり説明すると、<br/>
    【vTextureCoord】がピクセルの位置、<br/>
    【uSampler】が一ピクセル単位の画像データ、<br/>
    【tick】が時間経過、です。<br/>
</td></tr>
</table>

</p>
<h2 id="wt" class="w-heading">[wt]トランス終了待ち</h2>
<h4>[trans]で開始したトランスの終了を待つ。</h4>
<p class="mb2 px1">

<p>終了次第、スクリプト処理を次へ進める。<br/>
    <br/>
    また[trans]~[wt]間で文字表示や[ch]は動作未定義、非推奨。<br/>
    [trans]終了を待たず何かをするのは避けた方がよいでしょう<br/></p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>canskip</td><td></td><td>true</td><td>true、false</td><td>trueでクリックキャンセル可能にする</td></tr>
<tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
</table>

</p>
<h2 id="add_filter" class="w-heading">[add_filter]フィルター追加</h2>
<h4>レイヤにフィルターを追加する。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>全てのレイヤ</td><td>レイヤ名(カンマ区切りで複数可)</td><td></td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back、both</td><td>ページの裏表(both指定で両面)</td></tr>
<tr class="y"><td>filter</td><td>y</td><td></td><td>フィルター名</td><td>
    レイヤに指定するフィルタ。その他必要な属性は適宜指定する<br/>
    指定できる値は以下の通り。<br/>
    blur        …… ガウスぼかし<br/>
    noise        …… ノイズエフェクト<br/>
    color_matrix    …… カラーマトリックス<br/>
    black_and_white    …… 白黒<br/>
    brightness    …… 明るさを調整<br/>
    browni    …… おいしいブラウニー<br/>
    color_tone    …… カラートーン<br/>
    contrast    …… コントラスト<br/>
    grayscale    …… グレースケール<br/>
    hue    …… 色相<br/>
    kodachrome    …… コダクローム<br/>
    lsd    …… LSD効果<br/>
    negative    …… ネガティブ画像 (古典的なRGBマトリックスの逆)<br/>
    night    …… ナイトエフェクト<br/>
    polaroid    …… ポラロイド<br/>
    predator    …… 捕食者効果、新しい独立したマトリックスを設定<br/>
    saturate    …… 彩度。色の間の分離を増やします。<br/>
    sepia        …… セピア<br/>
    technicolor    …… テクニカラー。1916 年に発明されたカラ<br/>
    tint    …… 色合い。カラーマトリクスの対角線上に各チャネルを<br/>
    to_bgr    …… 赤→青、青→赤<br/>
    vintage    …… ビンテージ<br/>
</td></tr>
<tr><td>enabled</td><td></td><td>true</td><td>true、false</td><td>フィルターを有効にするか</td></tr>
</table>

 以下はフィルターごとに指定できる属性説明です。<br/>
 項目ごとの説明は煩雑なので、<a href="https://github.com/pixijs/filters?tab=readme-ov-file" target="_blank" rel="noopener">pixijs の動くサンプル</a>をお試しください。<br/>

<h4>フィルター「blur」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>strength</td><td></td><td>8</td><td>整数</td><td>強さ</td></tr>
<tr><td>quality</td><td></td><td>4</td><td>整数</td><td>品質</td></tr>
<tr><td>resolution</td><td></td><td>0</td><td>整数</td><td>解像度</td></tr>
<tr><td>kernel_size</td><td></td><td>5</td><td>5、7、9、11、13、15</td><td>カーネルサイズ</td></tr>
<tr><td>blur_x</td><td></td><td>2</td><td>整数</td><td>X強度</td></tr>
<tr><td>blur_y</td><td></td><td>2</td><td>整数</td><td>Y強度</td></tr>
<tr><td>epeat_edge_pixels</td><td></td><td>false</td><td>整数</td><td>true に設定すると、ターゲットのエッジがクランプされます</td></tr>
</table>

<h4>フィルター「noise」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>noise</td><td></td><td>0.5</td><td>0.0〜1.0</td><td>適用するノイズの量</td></tr>
<tr><td>seed</td><td></td><td>Math.random()</td><td>整数</td><td>ノイズの生成に適用するシード値</td></tr>
</table>

<h4>フィルター「color_matrix」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>matrix</td><td></td><td>
    '1,0,0,0,0, 0,1,0,0,0, 0,0,1,0,0, 0,0,0,1,0'
</td><td>カンマ区切りの20個の整数値</td><td>
    ピクセルの RGBA カラーとアルファ値に 5x4 マトリックス変換を適用して、新しい RGBA カラーとアルファ値のセットを含む結果を生成する
</td></tr>
</table>

<h4>フィルター「black_and_white」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「brightness」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>b</td><td></td><td>0.5</td><td>0.0〜1.0</td><td>明るさの値 (0 は黒)</td></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「browni」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>multiply</td><td></td><td style="color: red;">true</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「color_tone」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>desaturation</td><td></td><td>0.5</td><td>0.0〜1.0</td><td></td></tr>
<tr><td>toned</td><td></td><td>0.5</td><td>0.0〜1.0</td><td></td></tr>
<tr><td>light_color</td><td></td><td>0xFFE580</td><td>16進数値</td><td>色指定。'#FF0000'など</td></tr>
<tr><td>dark_color</td><td></td><td>0xFFE580</td><td>16進数値</td><td>色指定。'#FF0000'など</td></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「contrast」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>amount</td><td></td><td>0.5</td><td>0.0〜1.0</td><td>コントラストの値</td></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「grayscale」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>scale</td><td></td><td>0.5</td><td>0.0〜1.0</td><td>グレーの値</td></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「hue」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>f_rotation</td><td></td><td>0</td><td>0〜360;回転角度</td><td>度単位</td></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「kodachrome」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>multiply</td><td></td><td style="color: red;">true</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「night」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>intensity</td><td></td><td>0.5</td><td>0.0〜1.0</td><td>夜の効果の強さ</td></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「predator」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>amount</td><td></td><td>0.5</td><td>0.0〜1.0</td><td>捕食者は自分の将来の犠牲者をどれほど感じているか</td></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「saturate」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>amount</td><td></td><td>0.5</td><td>0.0〜1.0</td><td>飽和量</td></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「technicolor」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>multiply</td><td></td><td style="color: red;">true</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「tint」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>f_color</td><td></td><td>0x888888</td><td>16進数値</td><td>色合いの色</td></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>フィルター「vintage」に指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>multiply</td><td></td><td style="color: red;">true</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>

<h4>その他のフィルターに指定できる属性</h4>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>multiply</td><td></td><td>false</td><td>true、false</td><td>true の場合、現在の行列と行列を乗算</td></tr>
</table>


</p>
<h2 id="clear_filter" class="w-heading">[clear_filter]フィルター全削除</h2>
<h4>レイヤのフィルターを全削除する。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>全てのレイヤ</td><td>レイヤ名(カンマ区切りで複数可)</td><td></td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back、both</td><td>ページの裏表(both指定で両面)</td></tr>
</table>

</p>
<h2 id="enable_filter" class="w-heading">[enable_filter]フィルター個別切替</h2>
<h4>個別にフィルター有効・無効を変更する。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>全てのレイヤ</td><td>レイヤ名(カンマ区切りで複数可)</td><td></td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back、both</td><td>ページの裏表(both指定で両面)</td></tr>
<tr><td>index</td><td></td><td>0</td><td>0〜</td><td>追加したフィルターの中で、有効・無効を変更するフィルターの番号。<br/>0が最初のフィルター。フィルターを重ねるたびに1加算したindexになる</td></tr>
<tr><td>enabled</td><td></td><td>true</td><td>true、false</td><td>フィルターを有効にするか</td></tr>
</table>

</p>


<h1><a id="トゥイーンアニメ"></a>トゥイーンアニメ</h1>
<h2 id="pause_tsy" class="w-heading">[pause_tsy]一時停止</h2>
<h4>レイヤーやフレームのトゥイーンアニメを一時停止させる</h4>
<p class="mb2 px1">

    「layer(とpage)」を指定した場合はレイヤーの操作、<br/>
    「id」を指定した場合はフレームの操作を行なう。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>layer</td><td rowspan="2">y</td><td></td><td>レイヤ名</td><td>処理対象のレイヤ</td></tr>
<tr class="y"><td>page</td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>id</td><td>y</td><td></td><td>フレーム名</td><td>処理対象のフレーム</td></tr>
</table>

</p>
<h2 id="resume_tsy" class="w-heading">[resume_tsy]一時停止再開</h2>
<h4>レイヤーやフレームのトゥイーンアニメ一時停止を再開させる</h4>
<p class="mb2 px1">

    「layer(とpage)」を指定した場合はレイヤーの操作、<br/>
    「id」を指定した場合はフレームの操作を行なう。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>layer</td><td rowspan="2">y</td><td></td><td>レイヤ名</td><td>処理対象のレイヤ</td></tr>
<tr class="y"><td>page</td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>id</td><td>y</td><td></td><td>フレーム名</td><td>処理対象のフレーム</td></tr>
</table>

</p>
<h2 id="stop_tsy" class="w-heading">[stop_tsy]トゥイーン中断</h2>
<h4>レイヤーやフレームのトゥイーンアニメを中断、終了する。</h4>
<p class="mb2 px1">

    「layer(とpage)」を指定した場合はレイヤーの操作、<br/>
    「id」を指定した場合はフレームの操作を行なう。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>layer</td><td rowspan="2">y</td><td></td><td>レイヤ名</td><td>処理対象のレイヤ</td></tr>
<tr class="y"><td>page</td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>id</td><td>y</td><td></td><td>フレーム名</td><td>処理対象のフレーム</td></tr>
</table>

</p>
<h2 id="tsy" class="w-heading">[tsy]トゥイーン開始</h2>
<h4>レイヤーにトゥイーンアニメ(変形・移動・回転アニメーション)を加える。</h4>
<p class="mb2 px1">

    「目標値」を設定する時、相対値あるいは絶対値を指定できる。
    <table><tr><th>指定</th><th>説明</th></tr>
    <tr><td>x=500            </td><td>X位置を500に</td></tr>
    <tr><td>x='=500'        </td><td>現在のX位置に+500加算した位置</td></tr>
    <tr><td>x='=-500'        </td><td>現在のX位置に-500加算した位置</td></tr>
    <tr><td>x='250,500'        </td><td>+250から+500までの間でランダムな値をX位置に</td></tr>
    <tr><td>x='=250,500'    </td><td>+250から+500までの間でランダムな値を現在のX位置に加算</td></tr>
    </table>
    <br/>
    注:フレームのトゥイーンアニメは<a href="tag.html#tsy_frame" target="_blank" rel="noopener">[tsy_frame]</a>で行なう。<br/>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>layer</td><td rowspan="3">y</td><td></td><td>レイヤ名</td><td>処理対象のレイヤ</td></tr>
<tr class="y"><td>name</td><td>layerの値</td><td>文字列</td><td>トゥイーン名</td></tr>
<tr class="y"><td>page</td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>time</td><td>y</td><td></td><td>0〜;ミリ秒</td><td>トゥイーンにかける時間</td></tr>
<tr><td>delay</td><td></td><td>0</td><td>0〜;ミリ秒</td><td>トゥイーンを始める前の、何もしない待ち時間</td></tr>
<tr><td>repeat</td><td></td><td>1</td><td>0〜</td><td>繰返し回数。0以下で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう</td></tr>
<tr><td>arrive</td><td></td><td>false</td><td>true、false</td><td>trueならクリックキャンセルでアニメ終端までSkip。<br/>falseならその場で停止</td></tr>
<tr><td>backlay</td><td></td><td>false</td><td>true、false</td><td>trueならトゥイーン終了時、fore→backへ属性をコピーする。<br/>コピーする属性はalpha, height, rotation, scale_x, scale_y, pivot_x, pivot_y, width, left, top</td></tr>
<tr><td>ease</td><td></td><td>Linear.None</td><td>イージング名</td><td>揺れのイージング(値の変化の仕方)を指定する。<br/><a href="https://createjs.com/demos/tweenjs/tween_sparktable" target="_blank" rel="noopener">イージングの変化はこちらの図</a>(または<a href="https://sole.github.io/tween.js/examples/03_graphs.html" target="_blank" rel="noopener">こちら</a>)が分かりやすい。<br/>
指定できる値は以下の通り。<br/>
Back.In、Back.InOut、Back.Out<br/>
Bounce.In、Bounce.InOut、Bounce.Out<br/>
Circular.In、Circular.InOut、Circular.Out<br/>
Cubic.In、Cubic.InOut、Cubic.Out<br/>
Elastic.In、Elastic.InOut、Elastic.Out<br/>
Exponential.In、Exponential.InOut、Exponential.Out<br/>
Linear.None<br/>
Quadratic.In、Quadratic.InOut、Quadratic.Out<br/>
Quartic.In、Quartic.InOut、Quartic.Out<br/>
Quintic.In、Quintic.InOut、Quintic.Out<br/>
Sinusoidal.In、Sinusoidal.InOut、Sinusoidal.Out<br/>
<br/>
・<a href="https://github.com/tweenjs/tween.js/blob/master/README.md" target="_blank" rel="noopener">tween.js/README.md at master · tweenjs/tween.js</a><br/>
・<a href="https://ics.media/tutorial-createjs/tween/" target="_blank" rel="noopener">CreateJS でのトゥイーンの作成方法 - ICS MEDIA</a><br/>
</td></tr>
<tr><td>yoyo</td><td></td><td>false</td><td>true、false</td><td>(暫定)ヨーヨーのように逆方向に戻って繰り返す</td></tr>
<tr><td>chain</td><td></td><td>なにもしない</td><td>レイヤ名</td><td>指定したレイヤのトゥイーンアニメが終了してから、このトゥイーンを続けて開始する</td></tr>
<tr class="y"><td>alpha</td><td rowspan="11">いずれかを指定</td><td rowspan="11">何もしない</td><td rowspan="11">相対値か絶対値</td><td rowspan="10">同名属性の変化目標値</td></tr>
<tr class="y"><td>height</td></tr>
<tr class="y"><td>rotation</td></tr>
<tr class="y"><td>scale_x</td></tr>
<tr class="y"><td>scale_y</td></tr>
<tr class="y"><td>pivot_x</td></tr>
<tr class="y"><td>pivot_y</td></tr>
<tr class="y"><td>width</td></tr>
<tr class="y"><td>x</td></tr>
<tr class="y"><td>y</td></tr>
<tr class="y"><td>path</td><td>
    指定すると複数のポイントを連続してトゥイーンアニメする。<br/>
    ポイントは半角丸括弧()【吉里吉里拡張】や{}【JSON形式】が連続する文字列。<br/>
    <br/>
    ・半角丸括弧に囲んで属性 x、y、alpha の三つを指定する(吉里吉里仕様)<br/>
     例)(1, 2, 0.3)<br/>
    ・以降はSKYNovel拡張<br/>
     ・変更しない項目を省略できる<br/>
      例)(,10, 0.11) (12,,0.13 ) (14,15,) ()<br/>
     ・[tsy]属性のような「初期位置からの相対値」形式<br/>
      先頭に=を追加する。<br/>
      例)(=-22)<br/>
     ・[tsy]属性のような「範囲内でランダムな値」形式<br/>
      'か"で囲み、カンマ , で【最小値】【最大値】を区切る。<br/>
      例)('=23,24','0.3, 1')<br/>
     ・[tsy]属性をJSONで指定できる形式<br/>
      文字列は " で囲む。<br/>
      例){"scale_x":100, "scale_y":"=101"}<br/>
      指定できる属性は[tsy]と同様、rotation・scale_x・pivot_x・width など<br/>
    ・動作が上手くいかないときは path 属性の解析に失敗しているかも?<br/>
     設定画面の debugLog スイッチを入れると、括弧ごとの逐次処理をコンソール出力する。<br/>
     JSON解析失敗はスイッチにかかわらず出力する。<br/>

</td></tr>
<tr><td>render</td><td></td><td>false</td><td>true、false</td><td>
    trueを指定すると[trans]のように絵を合成してから不透明度を適用するように(半透明時に差分境界が見えなくなる)
</td></tr>
<tr><td>filter</td><td></td><td>なにもしない</td><td>フィルター名</td><td>レイヤに指定するフィルター名。その他必要な属性は適宜指定する。詳細は<a href="tag.html#add_filter" target="_blank" rel="noopener">[add_filter]</a>参照。ただし[add_filter]のような追加ではなく上書き</td></tr>
<tr><td>enable_filter</td><td></td><td>true</td><td>true、false</td><td>フィルターを有効にするか</td></tr>
</table>

</p>
<h2 id="wait_tsy" class="w-heading">[wait_tsy]トゥイーン終了待ち</h2>
<h4>レイヤーやフレームの終了を待ち、再開する。</h4>
<p class="mb2 px1">

[event]などでイベントが登録されていても、イベント発生待ちを行わない。
繰返し回数が0(無限ループ)の場合、何もせず終了する

「layer(とpage)」を指定した場合はレイヤーの操作、<br/>
「id」を指定した場合はフレームの操作を行なう。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>layer</td><td rowspan="2">y</td><td></td><td>レイヤ名</td><td>処理対象のレイヤ</td></tr>
<tr class="y"><td>page</td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>id</td><td>y</td><td></td><td>フレーム名</td><td>処理対象のフレーム</td></tr>
<tr><td>canskip</td><td></td><td>true</td><td>true、false</td><td>クリックなど(→詳細は<a href="#waitclick" target="_blank" rel="noopener">[waitclick]</a>)でウエイトをキャンセルできるか</td></tr>
<tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
<tr><td>chk_exist_tw</td><td></td><td>false</td><td>true、false</td><td>トゥイーン存在チェックするか</td></tr>
</table>

</p>


<h1><a id="文字・文字レイヤ"></a>文字・文字レイヤ</h1>
<h2 id="autowc" class="w-heading">[autowc]文字ごとのウェイト</h2>
<h4>特定の文字の直後に自動的にウェイトを入れる。</h4>
<p class="mb2 px1">

<p>textに指定した文字に対し、timeに指定した数値が対応する。<br/>
    通常の文字表示速度にtimeの数値を掛け算する。</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>enabled</td><td></td><td>現在値</td><td>true、false</td><td>自動ウェイトを有効にするか。初期値false</td></tr>
<tr><td>text</td><td>両方同時に指定、或いは省略</td><td>現在値</td><td>一文字(カンマ区切りで複数可)</td><td>ウェイトを指定する文字の集まり</td></tr>
<tr><td>time</td><td>(↑と同じ)</td><td>現在値</td><td>0〜(カンマ区切りで複数可)</td><td>文字表示ウェイト倍数</td></tr>
</table>
<p> 以下のように指定する。<br/>
    [autowc enabled=true text="456" time="50,100,150"]<br/>
    [autowc enabled=true text="456" time="100,100,100"]<br/>
    [autowc enabled=false]</p>
<p> 以下はエラーとなる。<br/>
    ;x [autowc enabled=true text="456" time="100,100"]<br/>
    ;x [autowc enabled=true text="456" time="100,100,100,100"]<br/>
    ;x [autowc enabled=true text="456"]<br/>
    ;x [autowc enabled=true time="100,100,100"]<br/>
    ;x [autowc enabled=true]<br/>
    ;x [autowc enabled=true text="" time=""]<br/>
    ;x [autowc text="" time=""]</p>

</p>
<h2 id="ch_in_style" class="w-heading">[ch_in_style]文字出現演出定義</h2>
<h4>文字出現演出アニメを定義する</h4>
<p class="mb2 px1">
    [lay][span]などの ch_in_style属性で指定すると、定義どおりの文字出現演出アニメを行なう

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>文字出現演出名</td><td>文字出現演出を特定する名前</td></tr>
<tr><td>wait</td><td></td><td>500</td><td>0〜;ミリ秒</td><td>一時的な文字表示速度。0で瞬時</td></tr>
<tr><td>alpha</td><td></td><td>0.0</td><td>0.0〜1.0;透過度</td><td>0(完全透明)〜0.5(半透明)〜1(不透明)</td></tr>
<tr><td>x</td><td></td><td>'=0'</td></td><td>実数か相対位置指定</td><td rowspan="2">
    変化の初期値。以下のような相対位置指定が出来る<br/>
    500     ── X位置を500に<br/>
    '=500'  ── 文字表示位置を基準に+500加算した位置<br/>
    '=-500' ── 文字表示位置を基準に-500加算した位置

</td></tr>
<tr><td>y</td><td></td><td>'=0'</td></td><td>実数か相対位置指定</td></tr>

<tr><td>scale_x</td><td></td><td>1.0</td><td>実数</td><td>横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転</td></tr>
<tr><td>scale_y</td><td></td><td>1.0</td><td>実数</td><td>縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転</td></tr>
<tr><td>rotate</td><td></td><td>0</td><td>-360〜360;回転角度</td><td>正の値は時計回り</td></tr>
<tr><td>join</td><td></td><td>true</td><td>true、false</td><td>文字を順番に出すか(true)同時か(false)</td></tr>
<tr><td>ease</td><td></td><td>'ease-out'</td><td>animation-timing-function</td><td>
    <a href="https://developer.mozilla.org/ja/docs/Web/CSS/animation-timing-function" target="_blank" rel="noopener">CSSのanimation-timing-function プロパティ</a>
</td></tr>
</table>

</p>
<h2 id="ch_out_style" class="w-heading">[ch_out_style]文字消去演出定義</h2>
<h4>文字消去演出アニメを定義する</h4>
<p class="mb2 px1">
    [lay][span]などの ch_out_style属性で指定すると、定義どおりの文字消去演出アニメを行なう。<br/>
    文字消去演出は、次ページの文字出現演出と同時に行なわれる。文字消去演出を待ちたい場合は、<a href="tag.html#wait" target="_blank" rel="noopener">[wait]</a>などで待つ。

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>文字消去演出名</td><td>文字消去演出を特定する名前</td></tr>
<tr><td>wait</td><td></td><td>500</td><td>0〜;ミリ秒</td><td>一時的な文字消去速度。0で瞬時</td></tr>
<tr><td>alpha</td><td></td><td>0.0</td><td>0.0〜1.0</td><td>透過度。0(完全透明)〜0.5(半透明)〜1(不透明)</td></tr>
<tr><td>x</td><td></td><td>'=0'</td><td>実数か相対位置指定</td><td rowspan="2">
    変化の目標値。以下のような相対位置指定が出来る<br/>
    500     ── X位置を500に<br/>
    '=500'  ── 文字位置を基準に+500加算した位置<br/>
    '=-500' ── 文字位置を基準に-500加算した位置

</td></tr>
<tr><td>y</td><td></td><td>'=0'</td><td>実数か相対位置指定</td></tr>

<tr><td>scale_x</td><td></td><td>1.0</td><td>実数</td><td>横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転</td></tr>
<tr><td>scale_y</td><td></td><td>1.0</td><td>実数</td><td>縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転</td></tr>
<tr><td>rotate</td><td></td><td>0</td><td>実数</td><td>回転角度(単位:deg 度)、正の値は時計回り</td></tr>
<tr><td>join</td><td></td><td>false</td><td>true、false</td><td>文字を順番に出すか(true)同時か(false)</td></tr>
<tr><td>ease</td><td></td><td>'ease-out'</td><td></td><td>
    <a href="https://developer.mozilla.org/ja/docs/Web/CSS/animation-timing-function" target="_blank" rel="noopener">CSSのanimation-timing-function プロパティ</a>
</td></tr>
</table>

</p>
<h2 id="ch" class="w-heading">[ch]文字を追加する</h2>
<h4>文字レイヤに文字を出力する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>文字を表示するレイヤ</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>表示したい文字列</td><td>ルビ文法(《》)も解析する。改行も [r] で出来る</td></tr>
<tr><td>record</td><td></td><td>true</td><td>true、false</td><td>履歴に保存するか</td></tr>
<tr><td>wait</td><td></td><td>現在の文字表示速度</td><td>0〜;ミリ秒</td><td>一時的な文字表示速度。0で瞬時</td></tr>
<tr><td>style</td><td></td><td>何もしない</td><td>CSS style</td><td>
    文字の CSS Style を指定する。<br/>
    このタグによる表示のみに適用、以降は元に戻る。<br/>
    ※[ch]でのみ、背景styleなどを一塊とする。<br/>
    例)以下は表示が異なる<br/>
    [span style='background-image: linear-gradient(70deg, tomato 0%, lightskyblue 100%); border-radius: 8px;']SPAN[span]<br/>
    [ch text='CH' style='background-image: linear-gradient(70deg, tomato 0%, lightskyblue 100%); border-radius: 8px;']
</td></tr>
<tr><td>r_style</td><td></td><td>何もしない</td><td>CSS style</td><td>
    ルビの CSS Style を指定する。<br/>
    このタグによる表示のみに適用、以降は元に戻る
</td></tr>
<tr><td>ch_in_style</td><td></td><td>何もしない</td><td>文字出現演出名</td><td><a href="tag.html#ch_in_style" target="_blank" rel="noopener">[ch_in_style]</a>で定義した文字出現演出名</td></tr>
<tr><td>ch_out_style</td><td></td><td>何もしない</td><td>文字消去演出名</td><td><a href="tag.html#ch_out_style" target="_blank" rel="noopener">[ch_out_style]</a>で定義した文字消去演出名</td></tr>
</table>
<p>[ch]を使わない、より簡潔な記述文法があります。<br/>
    以下の記述は、<br/>
    [ch text=&amp;test]<br/>
    [ch text=test]<br/>
    [ch text="&amp;a + b"]<br/>
    <br/>
    以下のようにも書けます。&amp;から&amp;までを[ch]文と解釈します。<br/>
    &amp;test&amp;<br/>
    &amp;'test'&amp;<br/>
    &amp;a + b&amp;<br/>
    <br/>
    では「&(半角)」を表示するには?(これらの文法のせいで普通に書けない)<br/>
    [ch text="&'&'"]として下さい。
</p>

</p>
<h2 id="clear_text" class="w-heading">[clear_text]文字消去</h2>
<h4>文字のみをクリアする</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>文字を表示するレイヤ</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
</table>

</p>
<h2 id="current" class="w-heading">[current] デフォルト文字レイヤ設定</h2>
<h4>デフォルト文字レイヤを設定する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>layer</td><td>y</td><td></td><td>文字レイヤ名</td><td>デフォルトとするレイヤ</td></tr>
</table>

</p>
<h2 id="endlink" class="w-heading">[endlink]ハイパーリンクの終了</h2>
<h4>[link](ハイパーリンク)で開始したリンク区間を終了する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>文字を表示するレイヤ</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
</table>

</p>
<h2 id="er" class="w-heading">[er]ページ両面の文字消去</h2>
<h4>デフォルト文字レイヤの裏と表の両方に対して[clear_lay]を行う。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>rec_page_break</td><td></td><td>true</td><td>true、false</td><td>履歴を改ページするか</td></tr>
<tr><td>clear_filter</td><td></td><td>false</td><td>true、false</td><td>true:フィルタもクリア</td></tr>
</table>

</p>
<h2 id="graph" class="w-heading">[graph]インライン画像表示</h2>
<h4>文字レイヤに画像を文字として表示する。ルビは同時に設定する。</h4>
<p class="mb2 px1">

    フォントにない外字やアニメpng画像表示に使える。
    [span]は強制的に解除される。
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>文字を表示するレイヤ</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>pic</td><td>y</td><td></td><td>画像ファイル名</td><td>表示する画像やアニメpng</td></tr>
<tr><td>r</td><td></td><td>ルビ無し</td><td>ルビ文字列</td><td>ただしあまりに他の文字サイズと大きく異なる場合は正しい位置に表示されない</td></tr>
<tr><td>width</td><td></td><td>画像の横サイズ(※)</td><td>1〜</td><td>表示する画像の横ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>height</td><td></td><td>画像の縦サイズ(※)</td><td>1〜</td><td>保存する画像の縦ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>style</td><td></td><td>何もしない</td><td>CSS style</td><td>
    他の文字と並べて表示したい場合は style='font-size: 60px;' などとサイズ指定する。<br/>
    このタグによる表示のみに適用、以降は元に戻る。<br/>
    width, height属性は正確にサイズ指定できるが他の文字に関係なくはみ出して表示する
</td></tr>
<tr><td>r_style</td><td></td><td>全てクリア</td><td>CSS style</td><td>
    ルビの CSS Style を指定する。<br/>
    このタグによる表示のみに適用、以降は元に戻る
</td></tr>
<tr><td>wait</td><td></td><td>現在の文字表示速度</td><td>0〜;ミリ秒</td><td>一時的な文字表示速度。0で瞬時</td></tr>
</table>
<p>※省略時は画像サイズになるが、ロード完了直後に文字配置を決めるのでちらつく。それを嫌う際に指定する<br/>
    ※特にモバイルなどでゲーム画面が自動で拡大縮小される場合、省略したらその時の本文文字サイズとして扱われる。なるべくサイズ指定を推奨。</p>

</p>
<h2 id="link" class="w-heading">[link]ハイパーリンク</h2>
<h4>指定した文字レイヤの表ページに、ハイパーリンクを作成する。</h4>
<p class="mb2 px1">

<p>[link]から[endlink](ハイパーリンクの終了)までで囲った範囲をリンク区間と呼び、<br/>
    その区間の文字や縦中横がハイパーリンクになる。(リンク区間は入れ子に出来ません)<br/>
    ※選択肢として使用する場合、ジャンプ先のラベル直後には必ず[record_place]を記述して、ジャンプ直後でセーブしても正しくセーブされるようにして下さい。</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>文字を表示するレイヤ名</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr><td>style</td><td></td><td>'background-color: rgba(255,0,0,0.5);'</td><td>CSS style</td><td>リンク上にマウスカーソルが乗っていない状態のCSS スタイル</td></tr>
<tr><td>style_hover</td><td></td><td>'background-color: rgba(255,0,0,0.9);'</td><td>CSS style</td><td>文字ボタン上にマウスカーソルが乗っている状態(クリックしていない)のCSS スタイル</td></tr>
<tr><td>style_clicked</td><td></td><td>styleの値</td><td>CSS style</td><td>文字ボタン上にマウスカーソルが乗っている状態(クリックしている)のCSS スタイル</td></tr>
<tr><td>r_style</td><td></td><td>styleの値</td><td>CSS style</td><td>リンク上にマウスカーソルが乗っていない状態のルビの CSS スタイル</td></tr>
<tr><td>r_style_hover</td><td></td><td>style_hoverの値</td><td>CSS style</td><td>文字ボタン上にマウスカーソルが乗っている状態(クリックしていない)のルビの CSS スタイル</td></tr>
<tr><td>r_style_clicked</td><td></td><td>r_styleの値</td><td>CSS style</td><td>文字ボタン上にマウスカーソルが乗っている状態(クリックしている)のルビの CSS スタイル</td></tr>
<tr><td>ch_in_style</td><td></td><td>何もしない</td><td>文字出現演出名</td><td><a href="tag.html#ch_in_style" target="_blank" rel="noopener">[ch_in_style]</a>で定義した文字出現演出名</td></tr>
<tr><td>ch_out_style</td><td></td><td>何もしない</td><td>文字消去演出名</td><td><a href="tag.html#ch_out_style" target="_blank" rel="noopener">[ch_out_style]</a>で定義した文字消去演出名</td></tr>
<tr><td>wait</td><td></td><td>現在の文字表示速度</td><td>0〜;ミリ秒</td><td>一時的な文字表示速度。0で瞬時</td></tr>
<tr><td>call</td><td></td><td>false</td><td>true、false</td><td>trueの場合は[call]、falseは[jump]。<br/>ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る</td></tr>
<tr><td>fn</td><td>どちらか、もしくは両方を指定</td><td>処理中のスクリプトファイル</td><td>スクリプトファイル名</td><td>クリック時にジャンプする先</td></tr>
<tr><td>label</td><td>スクリプトファイルの先頭</td><td>ラベル名(半角アスタリスク*も含む)</td><td>コール先のスクリプトファイルにあるラベル</td><td>クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる</td></tr>
<tr><td>url</td><td>fnかlabelか、このurlを指定</td><td>fn・label によるスクリプトジャンプ</td><td>ブラウザで開けるURL</td><td>クリック時にURLを開く。指定時は fn・label を無視する</td></tr>
<tr><td>global</td><td></td><td>false</td><td>true、false</td><td>詳細は[event]と同様。<br/>※ボタンを[trans]する場合はtrueにしておく</td></tr>
<tr><td>arg</td><td></td><td></td><td>ジャンプ先に渡したい値</td><td>指定した場合、クリック時ジャンプ先で「&amp;sn.eventArg」にて値を受け取れる</td></tr>
<tr><td>onenter</td><td></td><td>何もしない</td><td>ラベル名</td><td>マウス重なり(フォーカス取得)時、指定したラベルをコールする。 必ず[return]で戻ること</td></tr>
<tr><td>onleave</td><td></td><td>何もしない</td><td>ラベル名</td><td>マウス重なり外れ(フォーカス外れ)時、指定したラベルをコールする。 必ず[return]で戻ること</td></tr>
<tr><td>clickse</td><td></td><td>省略時は無音</td><td>音声ファイル名</td><td>指定すると、クリック時に効果音を再生する</td></tr>
<tr><td>enterse</td><td></td><td>省略時は無音</td><td>音声ファイル名</td><td>指定すると、ボタン上にマウスカーソルが載った時に効果音を再生する</td></tr>
<tr><td>leavese</td><td></td><td>省略時は無音</td><td>音声ファイル名</td><td>指定すると、ボタン上からマウスカーソルが外れた時に効果音を再生する</td></tr>
<tr><td>clicksebuf</td><td></td><td>SYS</td><td>サウンドバッファ名</td><td>クリック時効果音を再生するサウンドバッファを指定する</td></tr>
<tr><td>entersebuf</td><td></td><td>SYS</td><td>サウンドバッファ名</td><td>クリック時効果音を再生するサウンドバッファを指定する</td></tr>
<tr><td>leavesebuf</td><td></td><td>SYS</td><td>サウンドバッファ名</td><td>クリック時効果音を再生するサウンドバッファを指定する</td></tr>
<tr><td>hint</td><td></td><td>表示しない</td><td>ヒント文字列</td><td>
    指定した場合のみ、マウスカーソルを載せるとツールチップス表示する。<br/>
    <s>hint(.pngなど)をプロジェクトに含めると、それをツールチップス図形として使う</s>
</td></tr>
<tr><td>hint_style</td><td></td><td>
    background-color: #3c3225;<br/>
    color: white;<br/>
    padding: 4px 8px;<br/>
    border-radius: 4px;<br/>
    font-size: 1.2em;<br/>
    ほか(狭いので省略)<br/>
</td><td>CSS style</td><td>ツールチップ矩形のスタイル</td></tr>
<tr><td>hint_opt</td><td></td><td>[button]と同様</td><td>json</td><td>
    解説は<a href="tag.html#button" target="_blank" rel="noopener">[button]</a>を参照
</td></tr>
<tr><td><s>hint_tate</s></td><td></td><td><s>文字レイヤの縦書き指定(writing-mode: vertical-rl なら true)</s></td><td><s>true、false</s></td><td><s>
    ツールチップスをリンクに対してどの位置に表示するか。<br/>
    false:リンクの上に表示(横書き文字レイヤの動作)<br/>
    true:リンクの右に横倒しで表示(縦書き文字レイヤの動作)<br/>
</s></td></tr>
<tr><td><s>hint_width</s></td><td></td><td><s>80</s></td><td><s>1〜ドット数</s></td><td><s>hintの幅を指定できる</s></td></tr>
<tr><td><s>hint_color</s></td><td></td><td><s>'white'</s></td><td><s>css色指定。'white', '#FF0000'など</s></td><td><s>ツールチップス文字色を指定</s></td></tr>
<tr><td><s>hint_font</s></td><td></td><td><s>'22px Arial'</s></td><td><s>文字サイズとフォント</s></td><td><s>hint文字サイズとフォントを指定</s></td></tr>
</table>

</p>
<h2 id="r" class="w-heading">[r] 改行</h2>
<h4>指定した文字レイヤの表ページに、改行を出力する。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>文字を表示するレイヤ名</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>

<tr><td>record</td><td></td><td>true</td><td>true、false</td><td>履歴に保存するか</td></tr>
<tr><td>wait</td><td></td><td>現在の文字表示速度</td><td>0〜;ミリ秒</td><td>一時的な文字表示速度。0で瞬時</td></tr>
<tr><td>style</td><td></td><td>何もしない</td><td>CSS style</td><td>文字の CSS Style を指定する。<br/>このタグによる表示のみに適用、以降は元に戻る</td></tr>
</table>

</p>
<h2 id="rec_ch" class="w-heading">[rec_ch]履歴書き込み</h2>
<h4>履歴に文字や付加情報を出力する。</h4>
<p class="mb2 px1">
    「現在のページ」のテキストに文字を追加する。<br/>
    「現在のページ」に対する、任意の属性も自由に追加できる。その属性はconst.sn.log.jsonにも含まれ、フレームに渡しJavaScriptなどで(JSON.parse()して)利用できる。<br/>
    文字列内では[r]で改行できる。<br/>
        →<a href="https://famibee.github.io/SKYNovel_gallery/index.html?cur=log_and_play" target="_blank" rel="noopener">参考(機能ギャラリー・履歴と機能追加)</a>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>text</td><td></td><td>現在値</td><td>表示したい文字列</td><td>
    ルビ文法(《》)も使用可能、[r]で改行
</td></tr>
<tr><td>style</td><td></td><td>何もしない</td><td>CSS style</td><td>
    文字の CSS Style を指定する。<br/>
    このタグによる履歴表示のみに適用、以降は元に戻る。<br/>
    ※[ch]でのみ、背景styleなどを一塊とする。
</td></tr>
<tr><td>r_style</td><td></td><td>何もしない</td><td>CSS style</td><td>
    ルビの CSS Style を指定する。<br/>
    このタグによる履歴表示のみに適用、以降は元に戻る
</td></tr>
</table>

</p>
<h2 id="rec_r" class="w-heading">[rec_r]履歴改行</h2>
<h4>履歴に改行を出力する。</h4>
<p class="mb2 px1">

<p>属性無し。</p>

</p>
<h2 id="reset_rec" class="w-heading">[reset_rec]履歴リセット</h2>
<h4>履歴をクリアする。</h4>
<p class="mb2 px1">

<p>応用として、履歴に加工した文字列を設定し、履歴画面に機能を追加する事も。</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>text</td><td></td><td>全てクリア</td><td>文字列</td><td>履歴に設定したい文字列</td></tr>
</table>

</p>
<h2 id="ruby2" class="w-heading">[ruby2]文字列と複数ルビの追加</h2>
<h4>親文字列とルビ文字列のセットで文字を追加する</h4>
<p class="mb2 px1">

    【参考】<a href="dev.html#ruby" target="_blank" rel="noopener">ルビ記法</a>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>文字を表示するレイヤ名</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>t</td><td>y</td><td></td><td>文字列</td><td>親文字列</td></tr>
<tr class="y"><td>r</td><td>y</td><td></td><td>文字列</td><td>ルビ文字列</td></tr>
<tr><td>style</td><td></td><td>全てクリア</td><td>CSS style</td><td>
    文字の CSS Style を指定する。<br/>
    このタグによる表示のみに適用、以降は元に戻る
</td></tr>
<tr><td>r_style</td><td></td><td>全てクリア</td><td>CSS style</td><td>
    ルビの CSS Style を指定する。<br/>
    このタグによる表示のみに適用、以降は元に戻る
</td></tr>
<tr><td>wait</td><td></td><td>現在の文字表示速度</td><td>0〜;ミリ秒</td><td>一時的な文字表示速度。0で瞬時</td></tr>
</table>

</p>
<h2 id="set_focus" class="w-heading">[set_focus] フォーカス移動</h2>
<h4>[button][link]やフレーム内HTML要素などのフォーカスを移動する。</h4>
<p class="mb2 px1">

    [button][link]が文字レイヤに追加された順番、あるいは逆順に「マウスオーバー」表示を移動し、選択する。Enter(Return)キーでボタンクリックと同じ動作をする。<br/>
    フレーム内HTML要素も[event key='dom=(略)']で自動的にフォーカス移動対象に加えられる。<br/>
    キーボードやゲームパッド、スイッチコントロールなどの操作を補助する。<br/>

    <br/>
    「data-focus="false"」指定したHTML要素は、一時的にフォーカスさせなく出来る。"true"指定か属性削除で再度有効化。<br/>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>to</td><td rowspan="3">y(いずれかを指定)</td><td></td><td>prev、next、null</td><td>
    prev……追加順で前に移動<br/>
    next……追加順で次に移動<br/>
    null……どの[button][link]にもフォーカスがない状態にする
</td></tr>
<tr class="y"><td>add</td><td></td><td>(querySelectorAll()引数なセレクタ指定)</td><td>
    [event key='dom=(略)']指定していないフレーム内HTML要素にフォーカス移動対象に加えられる。<br/>
    【例】[set_focus add='dom=archive:.card-image,.btn_delete']
</td></tr>
<tr class="y"><td>del</td><td></td><td>(querySelectorAll()引数なセレクタ指定)</td><td>
    フォーカス移動対象から外す。<br/>
    【例】[set_focus del='dom=archive:.card-image,.btn_delete']
</td></tr>
<tr><td>need_err</td><td></td><td>true</td><td>true、false</td><td>
    HTML内にセレクタ(add・del属性)に対応する要素が見つからない場合にエラーを出すか
</td></tr>
</table>

</p>
<h2 id="span" class="w-heading">[span]インラインスタイル設定</h2>
<h4>この指定以降の文字のレイアウト(フォントや文字色など)を指定する。</h4>
<p class="mb2 px1">

    一時的に文字レイヤのlayout属性への指定を上書きするイメージ。
    文字レイヤをクリア([clear_text]、[clear_lay])するとリセット、以降は元通り文字レイヤのlayout属性に従う<br/>
    【参考】<a href="dev.html#ruby" target="_blank" rel="noopener">ルビ記法</a>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>文字を表示するレイヤ</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr><td>wait</td><td></td><td>現在の文字表示速度</td><td>0〜;ミリ秒</td><td>一時的な文字表示速度。0で瞬時</td></tr>
<tr><td>style</td><td></td><td>全てクリア</td><td>CSS style</td><td>
    文字の CSS Style を指定する。<br/>
    このタグ以降の文字表示に適用される。
</td></tr>
<tr><td>r_style</td><td></td><td>全てクリア</td><td>CSS style</td><td>
    ルビの CSS Style を指定する。<br/>
    このタグ以降のルビ表示に適用される。
</td></tr>
<tr><td>ch_in_style</td><td></td><td>何もしない</td><td>文字出現演出名</td><td><a href="tag.html#ch_in_style" target="_blank" rel="noopener">[ch_in_style]</a>で定義した文字出現演出名</td></tr>
<tr><td>ch_out_style</td><td></td><td>何もしない</td><td>文字消去演出名</td><td><a href="tag.html#ch_out_style" target="_blank" rel="noopener">[ch_out_style]</a>で定義した文字消去演出名</td></tr>
<tr><td>r_align</td><td></td><td>現在値</td><td></td><td>ルビ揃えを指定する。<br/>設定値は「<a href="tag.html#lay" target="_blank" rel="noopener">[lay]</a>レイヤ設定(文字レイヤ)」を参照
</td></tr>
</table>

</p>
<h2 id="tcy" class="w-heading">[tcy]縦中横を表示する</h2>
<h4>縦中横文字を追加する。ルビは同時に設定する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>文字を表示するレイヤ</td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>t</td><td>y</td><td></td><td>縦中横文字列</td><td>縦中横文字列、通常半角文字を指定する</td></tr>
<tr><td>r</td><td></td><td>ルビ無し</td><td>ルビ文字列</td><td>ルビ文字列</td></tr>
<tr><td>style</td><td></td><td>全てクリア</td><td>CSS style</td><td>
    文字の CSS Style を指定する。<br/>
    このタグによる表示のみに適用、以降は元に戻る
</td></tr>
<tr><td>r_style</td><td></td><td>全てクリア</td><td>CSS style</td><td>
    ルビの CSS Style を指定する。<br/>
    このタグによる表示のみに適用、以降は元に戻る
</td></tr>
</table>

</p>


<h1><a id="画像・画像レイヤ"></a>画像・画像レイヤ</h1>
<h2 id="add_face" class="w-heading">[add_face]差分名称の定義</h2>
<h4>差分名称を定義する。</h4>
<p class="mb2 px1">

    本タグだけでは差分画像を表示しない。画像レイヤの[lay]タグface属性で指定する差分名称を登録するのみ。
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>差分名称</td><td>[lay]タグface属性で指定する差分名称</td></tr>
<tr><td>fn</td><td></td><td>属性nameの値</td><td>画像ファイル名</td><td>表示する画像、アニメpng</td></tr>
<tr><td>dx</td><td></td><td>0</td><td>実数;横座標</td><td>基本画像左上を原点とする差分画像の表示横位置</td></tr>
<tr><td>dy</td><td></td><td>0</td><td>実数;縦座標</td><td>基本画像左上を原点とする差分画像の表示縦位置</td></tr>
<tr><td>blendmode</td><td></td><td>何もしない</td><td>ブレンドモード名</td><td>このレイヤと下のレイヤとの重なりにおいて、<br/>ドット単位で色のブレンド演算を行なう。<br/>詳細は<a href="tag.html#blendMode" target="_blank" rel="noopener">blendModeの解説</a>を参照</td></tr>
</table>
    例えば同じ画像で差分表示位置やブレンドモードが違う登録をしたい場合、<br/>
    [add_face name="a_normal" fn="画像" dx=0 dy=0]<br/>
    [add_face name="a_10_10" fn="画像" dx=10 dy=10]<br/>
    [add_face name="a_screen" fn="画像" dx=0 dy=0 blendmode="screen"]<br/>
    とnameを変えることで登録できます。

</p>
<h2 id="wv" class="w-heading">[wv]動画再生終了待ち</h2>
<h4>[lay]で開始したムービー再生の終了を待つ</h4>
<p class="mb2 px1">

<p>何かしらの画像レイヤで再生している動画の終了を待つ</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>fn</td><td>y</td><td></td><td>動画ファイル名</td><td>再生終了を待つ動画</td></tr>
<tr><td>canskip</td><td></td><td>true</td><td>true、false</td><td>クリックなど(→詳細は<a href="tag.html#waitclick" target="_blank" rel="noopener">[waitclick]</a>)でウエイトをキャンセルできるか</td></tr>
<tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
<tr><td>stop</td><td></td><td>true</td><td>true、false</td><td>trueで「クリックキャンセル時の再生停止」、falseなら行なわない</td></tr>
</table>

</p>


<h1><a id="htmlフレーム"></a>HTMLフレーム</h1>
<h2 id="add_frame" class="w-heading">[add_frame]フレーム追加</h2>
<h4>HTMLファイルをベースとする「フレーム」を追加する</h4>
<p class="mb2 px1">

    注:これは HTML要素の iframe(インラインフレーム要素)で、フレームは全てのレイヤの手前に表示され、互い違いに重ねられない。<br/>
    <a href="dev.htm#reserve_value_tmp">const.sn.frm.(フレーム名)系</a>の値もセットする。
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>id</td><td>y</td><td></td><td>文字列</td><td>フレーム名。他のタグなどで操作・参照する歳の名前となる</td></tr>
<tr class="y"><td>src</td><td>y</td><td></td><td>
    <del>ファイルパス</del><br/>ファイル名
</td><td>
    フレームとして読み込むhtmlファイルの<br/>
    <del>パス(prj/をルートとする相対指定)</del><br/>
    ファイル名(画像や音声などのfn属性と同じように)
</td></tr>
<tr><td>alpha</td><td></td><td>1.0</td><td>0.0〜1.0</td><td>透過度。0(完全透明)〜0.5(半透明)〜1(不透明)</td></tr>
<tr><td>scale_x</td><td></td><td>1.0</td><td>実数</td><td>横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転</td></tr>
<tr><td>scale_y</td><td></td><td>1.0</td><td>実数</td><td>縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転</td></tr>
<tr><td>rotate</td><td></td><td>0</td><td>-360〜360;回転角度</td><td>正の値は時計回り</td></tr>
<tr><td>visible</td><td></td><td>true</td><td>true、false</td><td>trueで行末クリック待ち記号を表示、falseで非表示</td></tr>
<tr><td>b_color</td><td></td><td>透過</td><td>色指定。0x000000など</td><td>背後の矩形色。初期値は 透過(htmlで画像を表示すれば表示)</td></tr>
<tr><td>x</td><td></td><td>0</td><td>実数;横座標</td><td>画面左上を原点とする画面内におけるフレームの横位置を指定</td></tr>
<tr><td>y</td><td></td><td>0</td><td>実数;縦座標</td><td>画面左上を原点とする画面内におけるフレームの縦位置を指定</td></tr>
<tr><td>width</td><td></td><td>フレームの横サイズ</td><td>1〜;横幅</td><td>表示するフレームの横ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>height</td><td></td><td>フレームの縦サイズ</td><td>1〜;縦幅</td><td>保存するフレームの縦ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
</table>

</p>
<h2 id="frame" class="w-heading">[frame]フレームに設定</h2>
<h4>フレームそのものの属性を設定する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>id</td><td>y</td><td></td><td>フレーム名</td><td><a href="tag.html#add_fram" target="_blank" rel="noopener">[add_fram]</a>で定義したフレーム名</td></tr>
<tr><td>alpha</td><td></td><td>1.0</td><td>0.0〜1.0</td><td>透過度。0(完全透明)〜0.5(半透明)〜1(不透明)</td></tr>
<tr><td>scale_x</td><td></td><td>1.0</td><td>実数</td><td>横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転</td></tr>
<tr><td>scale_y</td><td></td><td>1.0</td><td>実数</td><td>縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転</td></tr>
<tr><td>float</td><td></td><td>何もしない</td><td>true、false</td><td>true:フレームを最前面に移動する</td></tr>
<tr><td>index</td><td></td><td>何もしない</td><td>0〜</td><td>フレームをindexで指定したインデックスに移動する。<br/>0がもっとも背後。フレームを重ねるたびに1加算したindexになる</td></tr>
<tr><td>dive</td><td></td><td>何もしない</td><td>フレーム名</td><td>フレームをdiveで指定したフレームのすぐ後ろに潜り込ませる</td></tr>
<tr><td>rotate</td><td></td><td>0</td><td>-360〜360;回転角度</td><td>正の値は時計回り</td></tr>
<tr><td>visible</td><td></td><td>true</td><td>true、false</td><td>trueで行末クリック待ち記号を表示、falseで非表示</td></tr>
<tr><td>disabled</td><td></td><td>false</td><td>true、false</td><td>trueでスライダーなど操作不可・[event]の【dom=系】イベント無効、falseで可能</td></tr>
<tr><td>b_color</td><td></td><td>透過</td><td>色指定。0x000000など</td><td>背後の矩形色。初期値は 透過(htmlで画像を表示すれば表示)</td></tr>
<tr><td>x</td><td></td><td>0</td><td>実数;横座標</td><td>画面左上を原点とする画面内におけるフレームの横位置を指定</td></tr>
<tr><td>y</td><td></td><td>0</td><td>実数;縦座標</td><td>画面左上を原点とする画面内におけるフレームの縦位置を指定</td></tr>
<tr><td>width</td><td></td><td>フレームの横サイズ</td><td>1〜;横幅</td><td>表示するフレームの横ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>height</td><td></td><td>フレームの縦サイズ</td><td>1〜;縦幅</td><td>保存するフレームの縦ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
</table>

</p>
<h2 id="let_frame" class="w-heading">[let_frame]フレーム変数を取得</h2>
<h4>フレーム内の変数から、値を取得する</h4>
<p class="mb2 px1">

    関数名を指定した場合は関数を実行し、その戻り値を取得する。<br/>
    【const.sn.frm.(id名).(var_name名)】に値がセットされる。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>id</td><td>y</td><td></td><td>フレーム名</td><td><a href="tag.html#add_fram" target="_blank" rel="noopener">[add_fram]</a>で定義したフレーム名</td></tr>
<tr class="y"><td>var_name</td><td>y</td><td></td><td>文字列</td><td>フレーム内の変数/関数名</td></tr>
</table>

</p>
<h2 id="set_frame" class="w-heading">[set_frame]フレーム変数に設定</h2>
<h4>フレーム内の変数に、値を設定する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>id</td><td>y</td><td></td><td>フレーム名</td><td><a href="tag.html#add_fram" target="_blank" rel="noopener">[add_fram]</a>で定義したフレーム名</td></tr>
<tr class="y"><td>var_name</td><td>y</td><td></td><td>文字列</td><td>フレーム内の変数名</td></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td></td><td>フレーム内の変数にセットする値</td></tr>
</table>

</p>
<h2 id="tsy_frame" class="w-heading">[tsy_frame]フレームをトゥイーン開始</h2>
<h4>フレームのトゥイーンアニメを行なう</h4>
<p class="mb2 px1">

    フレームのトゥイーンアニメを開始したあと、id属性指定により以下のタグを使用できる。<br/>
    <a href="tag.html#pause_tsy" target="_blank" rel="noopener">[pause_tsy]</a>(一時停止)<br/>
    <a href="tag.html#resume_tsy" target="_blank" rel="noopener">[resume_tsy]</a>(一時停止再開)<br/>
    <a href="tag.html#stop_tsy" target="_blank" rel="noopener">[stop_tsy]</a>(トゥイーン中断)<br/>
    <a href="tag.html#wait_tsy" target="_blank" rel="noopener">[wait_tsy]</a>(トゥイーン終了待ち)<br/>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>id</td><td>y</td><td></td><td>フレーム名</td><td><a href="tag.html#add_fram" target="_blank" rel="noopener">[add_fram]</a>で定義したフレーム名</td></tr>
<tr class="y"><td>time</td><td>y</td><td></td><td>0〜;ミリ秒</td><td>トゥイーンにかける時間</td></tr>
<tr><td>delay</td><td></td><td>0</td><td>0〜;ミリ秒</td><td>トゥイーンを始める前の、何もしない待ち時間</td></tr>
<tr><td>repeat</td><td></td><td>1</td><td>0〜</td><td>繰返し回数。0以下で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう</td></tr>
<tr><td>ease</td><td></td><td>Linear.None</td><td>イージング名</td><td>揺れのイージング(値の変化の仕方)を指定する。<br/><a href="https://createjs.com/demos/tweenjs/tween_sparktable" target="_blank" rel="noopener">イージングの変化はこちらの図</a>(または<a href="https://sole.github.io/tween.js/examples/03_graphs.html" target="_blank" rel="noopener">こちら</a>)が分かりやすい。<br/>指定できる値は<a href="tag.html#tsy" target="_blank" rel="noopener">[tsy]</a>を参照</td></tr>
<tr><td>yoyo</td><td></td><td>false</td><td>true、false</td><td>(暫定)ヨーヨーのように逆方向に戻って繰り返す</td></tr>
<tr><td>chain</td><td></td><td>なにもしない</td><td>レイヤ名</td><td>指定したレイヤのトゥイーンアニメが終了してから、このトゥイーンを続けて開始する</td></tr>
<tr class="y"><td>alpha</td><td rowspan="9">いずれかを指定</td><td rowspan="9">何もしない</td><td rowspan="9">相対値か絶対値</td><td rowspan="6">同名属性の変化目標値</td></tr>
<tr class="y"><td>height</td></tr>
<tr class="y"><td>rotation</td></tr>
<tr class="y"><td>scale_x</td></tr>
<tr class="y"><td>scale_y</td></tr>
<tr class="y"><td>width</td></tr>
<tr class="y"><td>x</td><td>leftの変化目標値</td></tr>
<tr class="y"><td>y</td><td>topの変化目標値</td></tr>
<tr class="y"><td>path</td><td>※<a href="tag.html#tsy" target="_blank" rel="noopener">[tsy]</a>を参照</td><td>
</table>

</p>


<h1><a id="イベント"></a>イベント</h1>
<h2 id="clear_event" class="w-heading">[clear_event] イベントを全消去</h2>
<h4>イベント予約を全て削除する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>global</td><td></td><td>false</td><td>true、false</td><td>trueを指定すると全ての大域イベントを削除する。<br/>falseの場合は大域以外の全てのイベントを削除する</td></tr>
</table>

</p>
<h2 id="enable_event" class="w-heading">[enable_event] イベント有無の切替</h2>
<h4>文字レイヤごとのイベント発生有効無効を設定する。</h4>
<p class="mb2 px1">

<p>無効にするとマウスイベントが無効になり、[s]待ちなどでイベントが発生しなくなるが、イベント予約は別の話であり、削除などされない。
    有効にすればマウスイベントが発生するようになり、再びイベント待ちされるようになる</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>イベント有効無効を設定するレイヤ</td></tr>
<tr><td>enabled</td><td></td><td>true</td><td>true、false</td><td>イベントを有効にするか</td></tr>
</table>

</p>
<h2 id="event" class="w-heading">[event]イベントを予約</h2>
<h4>次の[s]などのイベント待ちに向けてイベント処理を予約する。</h4>
<p class="mb2 px1">

<p>あるイベントが発生した際、global=falseのイベント予約は全て削除(予約破棄)される</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>key</td><td>y</td><td></td><td>click、rightclick、middleclick、upwheel、downwheel、<br/>イベント名※1</td><td>イベントを発生させるトリガーイベント<br/><br/>修飾キーの同時押し(あるいは修飾キーを押しといて通常キー)を任意に組み合わせられます。「半角プラスで」「ABC順に」「イベントのキー名の前に」繋げて下さい。<br/>(例1)key=alt+enter<br/>(例2)key=alt+ctrl+shift+enter</td></tr>
<tr><td>call</td><td></td><td>false</td><td>true、false</td><td>trueの場合は[call]、falseは[jump]。<br/>ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る</td></tr>
<tr><td>fn</td><td>...</td><td>...</td><td>...</td><td>イベント発生時にジャンプする先。指定方法は[jump]と同様。<br/>callの場合、ジャンプ先から[return]で戻ると、<br/>再度[s]などのイベント待ち状態に戻る</td></tr>
<tr><td>label</td><td>...</td><td>...</td><td>...</td><td>(↑と同じ)<br/>クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる</td></tr>
<tr><td>url</td><td>fnかlabelか、このurlを指定</td><td>fn・label によるスクリプトジャンプ</td><td>ブラウザで開けるURL</td><td>クリック時にURLを開く。指定時は fn・label を無視する</td></tr>
<tr><td>global</td><td></td><td>false</td><td>true、false</td><td>trueを指定すると大域的なイベント扱いとなり、<br/>イベント発生時にイベント予約が削除されない</td></tr>
<tr><td>arg</td><td></td><td></td><td>ジャンプ先に渡したい値</td><td>指定した場合、クリック時ジャンプ先で「&amp;sn.eventArg」にて値を受け取れる</td></tr>
<tr><td>del</td><td></td><td></td><td>true、false</td><td>trueを指定すると予約済みイベントを削除する。<br/>fn/label/callとdelは同時指定できません</td></tr>
<tr><td>frame</td><td></td><td>10</td><td>1〜</td><td>※未実装<br/><br/>key=enter_frameの場合のみ有効。<br/>フレームイベントは毎秒何度も([window]のframerate回)発生するが、 アプリ全体が重くなるので、適度に間引いてイベントを時々発生させるため、
    フレーム何回に一回イベントを発生させるかを指定する。<br/>例)30フレームで動作するアプリでframe=15を指定すると、30/15=0.5秒に一回発生(タイミングにより厳密ではない)</td></tr>
<tr><td>need_err</td><td></td><td>true</td><td>true、false</td><td>
    HTML内にセレクタ(key属性)に対応する要素が見つからない場合にエラーを出すか
</td></tr>
</table>

    ※1 イベント名は以下の表を参考に。<br/>
    <br/>
    技術的の話をすると、値は JavaScriptでの keydownイベントの <a href="https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key" target="_blank" rel="noopener">keyプロパティの値</a>(<a href="https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values" target="_blank" rel="noopener">Key Values - Web APIs | MDN</a>)を基本とする。<br/>
    (keyCode(<a href="https://qiita.com/ledsun/items/fb2570cc1542039f4516" target="_blank" rel="noopener">非推奨</a>)・codeプロパティとは違うので注意)<br/>
    <span style="color:ff0000;background-color:#FFCACA;">重要な点として、「key属性の値」は大文字小文字区別無し、どちらでもよい。<br/>
    ただし【dom=【フレーム名】:【ボタン系 HTML要素の id名】】系はHTML要素名なども含むので、大小区別あり。</span><br/>
    修飾キー(shiftなど)は、その前に追加していく。(追加順は決まっており、以下を参照。ABC順)<br/>

<table><tr><th>key属性の値</th><th>コメント</th></tr>
<tr><td>Click</td><td>マウスボタンクリック([button][link]以外のどこか)</td></tr>
<tr><td>RightClick</td><td>マウス右ボタンクリック([button][link]以外のどこか)</td></tr>
<tr><td>MiddleClick</td><td>マウス中(ホイール)ボタンクリック([button][link]以外のどこか)</td></tr>
<tr><td>UpWheel</td><td>マウスホイール回転(手前に)※回転開始時に一度のみ発生</td></tr>
<tr><td>DownWheel</td><td>マウスホイール回転(奥に)※回転開始時に一度のみ発生</td></tr>
<tr><td>Control</td><td>Mac/Winの Controlキー。単体押し検知用</td></tr>
<tr><td>Alt</td><td>Macの Optionキー。Winの ALT(Option)キー。単体押し検知用</td></tr>
<tr><td>Meta</td><td>Macは ⌘ Command キー、 Windowsは Windows キー ⊞。単体押し検知用</td></tr>
<tr><td>Shift</td><td>Mac/Winの Shiftキー。単体押し検知用</td></tr>
<tr><td>Backspace</td><td></td></tr>
<tr><td>Enter</td><td>Macの Enterキー、Winの returnキー</td></tr>
<tr><td>=</td><td>※注:イコールキーはMacキーボードにしか無い</td></tr>
<tr><td>A</td><td>Aキー</td></tr>
<tr><td>' '</td><td>スペースキー(半角空白文字を「'」や「"」で囲う。「space」ではない。文字キーの一種であるイメージ)</td></tr>
<tr><td>(その他文字)</td><td>文字そのままの値を指定。 (B、¥ など)</td></tr>
<tr><td>alt+A</td><td>Altキーと Aキーを同時押し</td></tr>
<tr><td>ctrl+A</td><td>Controlキーと Aキーを同時押し</td></tr>
<tr><td>shift+A</td><td>Shiftキーと Aキーを同時押し</td></tr>
<tr><td>alt+ctrl+A</td><td>Altキーと Controlキーと Aキーを同時押し</td></tr>
<tr><td>ctrl+shift+A</td><td>Controlキーと Shiftキーと Aキーを同時押し</td></tr>
<tr><td>alt+shift+A</td><td>Altキーと Shiftキーと Aキーを同時押し</td></tr>
<tr><td>alt+ctrl+shift+A</td><td>Altキーと Controlキーと Shiftキーと Aキーを同時押し</td></tr>
<tr><td>ArrowLeft</td><td>矢印キーの左</td></tr>
<tr><td>ArrowRight</td><td>矢印キーの右</td></tr>
<tr><td>ArrowUp</td><td>矢印キーの上</td></tr>
<tr><td>ArrowDown</td><td>矢印キーの下</td></tr>
<tr><td>Tab</td><td>タブキー</td></tr>
<tr><td>Delete</td><td></td></tr>
<tr><td>Home</td><td></td></tr>
<tr><td>End</td><td></td></tr>
<tr><td>PageUp</td><td></td></tr>
<tr><td>PageDown</td><td></td></tr>
<tr><td>Escape</td><td>※注:新型MacBook Proではキーがないかも(<a href="https://www.gizmodo.jp/2016/10/esc-key-macos-sierra.html" target="_blank" rel="noopener">他に割り当て可能</a>)</td></tr>
<tr><td>F1</td><td>ファンクションキー(Macなどではユーザーが機能を割り当てている恐れ)</td></tr>
<tr><td>F12</td><td>〃</td></tr>
<tr><td>F13</td><td>※注:F13以上は、キーボードによっては存在しない</td></tr>
<tr><td>dom=【フレーム名】:【ボタン系 HTML要素の id名】</td><td>
    <a href="tag.html#add_frame" target="_blank" rel="noopener">[add_frame]</a>で読み込んだ HTML要素に発生したイベントを検知し、イベントとする。<br/>
    <br/>
    「ボタン系 HTML要素」とは、【&lt;a id="close"&gt;x&lt;/a&gt;】など。<br/>
    【key='dom=config:#close'】と記述した場合、その要素をクリックした際にイベントが発生する。<br/>
    <br/>
    HTML要素に【&lt;a id="close" data-arg="res"&gt;x&lt;/a&gt;】などとカスタムデータ属性を付加すると、イベント発生時に tmp変数として値を受け取れる。<br/>
    例では、sn.event.domdata.arg に文字列【res】が入る。<br/>
</td></tr>
<tr><td>dom=【フレーム名】:【スライダー系 HTML要素の id名】</td><td>
    <a href="tag.html#add_frame" target="_blank" rel="noopener">[add_frame]</a>で読み込んだ HTML要素に発生したイベントを検知し、イベントとする。<br/>
    <br/>
    「スライダー系 HTML要素」とは、【&lt;input type="range" id="sldBackAlpha" min="0" max="100" step="5" value="70"/&gt;】など。<br/>
    【key='dom=config:#sldBackAlpha'】と記述した場合、そのスライダーを変更した際にイベントが発生する。<br/>
    <br/>
    HTML要素に【&lt;input type="range" id="sldBackAlpha" min="0" max="100" step="5" value="70" data-arg2="res2"/&gt;】などとカスタムデータ属性を付加すると、イベント発生時に tmp変数として値を受け取れる。<br/>
    例では、sn.event.domdata.arg2 に文字列【res2】が入る。<br/>
</td></tr>
<tr><td>dom=【フレーム名】:【トグルボタン系 HTML要素の id名】</td><td>
    <a href="tag.html#add_frame" target="_blank" rel="noopener">[add_frame]</a>で読み込んだ HTML要素に発生したイベントを検知し、イベントとする。<br/>
    <br/>
    「トグルボタン系 HTML要素」とは、【&lt;input type="checkbox" id="chkScrMode" checked="."/&gt;】など。<br/>
    【key='dom=config:#chkScrMode'】と記述した場合、その要素をクリックした際にイベントが発生する。<br/>
    <br/>
    HTML要素に【&lt;input type="checkbox" id="chkScrMode" checked="." data-arg3="res3"/&gt;】などとカスタムデータ属性を付加すると、イベント発生時に tmp変数として値を受け取れる。<br/>
    例では、sn.event.domdata.arg3 に文字列【res3】が入る。<br/>
</td></tr>
<tr><td>sn:chgDarkMode</td><td>
    ダークモード切り替えイベント。モードは const.sn.isDarkMode で取得できる
</td></tr>
<tr><td>sn:chgNavLang</td><td>
    言語設定切り替えイベント。言語設定は const.sn.navigator.language で取得できる。以下で発生<br/>
    ・ブラウザ版:ブラウザの言語設定を変更した時<br/>
    ・アプリ版:OSの言語設定を変更した時<br/>
</td></tr>
<tr><td>sn:imported</td><td><a href="tag.html#import" target="_blank" rel="noopener">[import]</a>によるインポート完了時</td></tr>
</table>

</p>
<h2 id="l" class="w-heading">[l] 行末クリック待ち</h2>
<h4>シナリオファイルの順次処理を停止し、クリックやキー押下(→詳細は[waitclick])を待つ。</h4>
<p class="mb2 px1">

    「breakline」という画像やアニメpngファイルが用意されていれば、行末クリック待ちマークとして表示する。<br/>
    クリックやキー押下が発生した場合、処理を再開する。<br/>
    [event]などでイベントが登録されていれば、イベント発生待ちを行う。<br/>
    吉里吉里仕様【スキップできない】記述から、スキップや自動読みさせない<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>visible</td><td></td><td>true</td><td>true、false</td><td>trueで行末クリック待ち記号を表示、falseで非表示</td></tr>
<tr><td>x</td><td></td><td>0</td><td>実数;横座標</td><td>文字表示位置左上を原点とする横座標</td></tr>
<tr><td>y</td><td></td><td>0</td><td>実数;縦座標</td><td>文字表示位置左上を原点とする縦座標</td></tr>
<tr><td>width</td><td></td><td>画像の横サイズ</td><td>1〜;横幅</td><td>表示する画像の横ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>height</td><td></td><td>画像の縦サイズ</td><td>1〜;縦幅</td><td>保存する画像の縦ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
</table>

</p>
<h2 id="p" class="w-heading">[p]改ページクリック待ち</h2>
<h4>シナリオファイルの順次処理を停止し、クリックやキー押下(→詳細は[waitclick])を待つ。</h4>
<p class="mb2 px1">

    「breakpage」という画像やアニメpngファイルが用意されていれば、改ページクリック待ちマークとして表示する。<br/>
    クリックやキー押下が発生した場合、処理を再開する。<br/>
    [event]などでイベントが登録されていれば、イベント発生待ちを行う。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>visible</td><td></td><td>true</td><td>true、false</td><td>trueで改ページ記号を表示、falseで非表示</td></tr>
<tr><td>er</td><td></td><td>何もしない</td><td>true、false</td><td>trueで改ページ待ち後に[er]処理を行なう</td></tr>
<tr><td>x</td><td></td><td>0</td><td>実数;横座標</td><td>文字表示位置左上を原点とする横座標</td></tr>
<tr><td>y</td><td></td><td>0</td><td>実数;縦座標</td><td>文字表示位置左上を原点とする縦座標</td></tr>
<tr><td>width</td><td></td><td>画像の横サイズ</td><td>1〜;横幅</td><td>表示する画像の横ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>height</td><td></td><td>画像の縦サイズ</td><td>1〜;縦幅</td><td>保存する画像の縦ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
</table>

</p>
<h2 id="s" class="w-heading">[s] 停止する</h2>
<h4>シナリオファイルの順次処理を停止する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
    <tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
</table>

    シナリオファイルの順次処理を停止する。<br/>
    [event]などでイベントが登録されていれば、イベント発生待ちを行う。<br/>

</p>
<h2 id="set_cancel_skip" class="w-heading">[set_cancel_skip] スキップ中断予約</h2>
<h4>スキップ中断を予約</h4>
<p class="mb2 px1">

    廃止、不要に<br/>

</p>
<h2 id="wait" class="w-heading">[wait]ウェイトを入れる</h2>
<h4>指定時間スクリプト処理を待ち、再開する。</h4>
<p class="mb2 px1">

    [event]などでイベントが登録されていても、イベント発生待ちを行わない。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>time</td><td>y</td><td></td><td>0〜;ミリ秒</td><td>処理を待つ時間</td></tr>
<tr><td>canskip</td><td></td><td>true</td><td>true、false</td><td>クリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか</td></tr>
<tr><td><s>global</s></td><td></td><td><s>false</s></td><td><s>true、false</s></td><td><s>グローバルイベント待ちを有効にするか</s></td></tr>
</table>

</p>
<h2 id="waitclick" class="w-heading">[waitclick]クリックを待つ</h2>
<h4>シナリオファイルの順次処理を停止し、クリックやキー押下※を待つ。</h4>
<p class="mb2 px1">

    属性無し。<br/>
    <br/>
    クリックやキー押下が発生した場合、処理を再開する。<br/>
    [event]などでイベントが登録されていれば、イベント発生待ちを行う。<br/>
    <br/>
    ※クリックやキー押下とは、以下のイベントを差す。<br/>
      click<br/>
      downwheel(下方向へのマウスホイール)<br/>
      enter<br/>
      space<br/>
      down(矢印キーの下)<br/>

</p>


<h1><a id="BGM・効果音"></a>BGM・効果音</h1>
<h2 id="fadebgm" class="w-heading">[fadebgm]BGMのフェード</h2>
<h4>BGMを指定した音量に、段階的に変化させる。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>volume</td><td>y</td><td></td><td>0.0〜1.0</td><td>音量</td></tr>
<tr class="y"><td>time</td><td>y</td><td></td><td>0〜;ミリ秒</td><td>フェード時間</td></tr>
<tr><td>delay</td><td></td><td>0</td><td>0〜;ミリ秒</td><td>変化する前に待機する遅延時間</td></tr>
</table>

</p>
<h2 id="fadeoutbgm" class="w-heading">[fadeoutbgm] BGMのフェードアウト</h2>
<h4>BGMを無音に、段階的に変化させる。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>time</td><td>y</td><td></td><td>0〜;ミリ秒</td><td>フェード時間</td></tr>
<tr><td>stop</td><td></td><td>true</td><td>true、false</td><td>trueで「フェード終了時の再生停止」、falseなら行なわない</td></tr>
<tr><td>delay</td><td></td><td>0</td><td>0〜;ミリ秒</td><td>変化する前に待機する遅延時間</td></tr>
</table>

</p>
<h2 id="fadeoutse" class="w-heading">[fadeoutse] 効果音のフェードアウト</h2>
<h4>効果音を無音に、段階的に変化させる。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>buf</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます</td></tr>
<tr class="y"><td>time</td><td>y</td><td></td><td>0〜;ミリ秒</td><td>フェード時間</td></tr>
<tr><td>stop</td><td></td><td>true</td><td>true、false</td><td>trueで「フェード終了時の再生停止」、falseなら行なわない</td></tr>
<tr><td>delay</td><td></td><td>0</td><td>0〜;ミリ秒</td><td>変化する前に待機する遅延時間</td></tr>
</table>

</p>
<h2 id="fadese" class="w-heading">[fadese]効果音のフェード</h2>
<h4>効果音を指定した音量に、段階的に変化させる。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>buf</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます</td></tr>
<tr class="y"><td>volume</td><td>y</td><td></td><td>0.0〜1.0</td><td>音量</td></tr>
<tr class="y"><td>time</td><td>y</td><td></td><td>0〜;ミリ秒</td><td>フェード時間</td></tr>
<tr><td>delay</td><td></td><td>0</td><td>0〜;ミリ秒</td><td>変化する前に待機する遅延時間</td></tr>
</table>

</p>
<h2 id="playbgm" class="w-heading">[playbgm]BGM の演奏</h2>
<h4>BGMを再生する。</h4>
<p class="mb2 px1">

[playse]とは違い、キー押下Skip中でも必ず再生を行なう。(canskip = false)
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>fn</td><td>y</td><td></td><td>BGM音声ファイル名</td><td>再生する音声ファイル名</td></tr>
<tr><td>loop</td><td></td><td>true</td><td>true、false</td><td>trueでBGMのようにループ再生する</td></tr>
<tr><td>volume</td><td></td><td>1.0</td><td>0.0〜1.0</td><td>再生音量。ただし音量を示すシステム変数(sys:const.an.sound.BGM.volume)は変更しない</td></tr>
<tr><td>speed</td><td></td><td>1.0</td><td>0.0〜1.0</td><td>再生速度(0:遅い、1.0:元のまま)</td></tr>
<tr><td>pan</td><td></td><td>0.0</td><td>-1.0〜1.0</td><td>音を出す左右位置(-1.0=左端、0.0=中央(省略値)、1.0=右端)</td></tr>
<tr><td>join</td><td></td><td>true</td><td>true、false</td><td>trueで読み込みを待って次のタグへ進む</td></tr>
<tr><td>canskip</td><td></td><td>true</td><td>true、false</td><td>trueでキー押下Skip中なら再生をしない</td></tr>
<tr><td>start_ms</td><td></td><td>0(冒頭)</td><td>0〜;ミリ秒</td><td>
    再生の開始位置を指定する。
</td></tr>
<tr><td>end_ms</td><td></td><td>末端</td><td>0〜;ミリ秒</td><td>
    再生の終了位置を指定する。<br/>
    正の値は「冒頭から何ms目を終端とするか」<br/>
    負の値は「末尾から何ms手前を終端とするか」の指定。
</td></tr>
<tr><td>ret_ms</td><td></td><td>0(冒頭)</td><td>0〜;ミリ秒</td><td>
    ループ戻り位置を指定する。<br/>
    ループ再生中にend_ms指定位置(省略時は末尾)に到達した場合、この指定位置に戻る。
    ループ再生しない(loop=false)際は無視される。<br/>
</td></tr>
</table>

</p>
<h2 id="playse" class="w-heading">[playse]効果音の再生</h2>
<h4>効果音を再生する。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>fn</td><td>y</td><td></td><td>効果音音声ファイル名</td><td>再生する音声ファイル名</td></tr>
<tr><td>buf</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます</td></tr>
<tr><td>loop</td><td></td><td>false</td><td>true、false</td><td>trueでBGMのようにループ再生する</td></tr>
<tr><td>volume</td><td></td><td>1.0</td><td>0.0〜1.0</td><td>再生音量。ただし音量を示すシステム変数(sys:const.an.sound.【サウンドバッファ名】.volume)は変更しない</td></tr>
<tr><td>speed</td><td></td><td>1.0</td><td>0.0〜1.0</td><td>再生速度(0:遅い、1.0:元のまま)</td></tr>
<tr><td>pan</td><td></td><td>0.0</td><td>-1.0〜1.0</td><td>音を出す左右位置(-1.0=左端、0.0=中央(省略値)、1.0=右端)</td></tr>
<tr><td>join</td><td></td><td>true</td><td>true、false</td><td>trueで読み込みを待って次のタグへ進む</td></tr>
<tr><td>canskip</td><td></td><td>true</td><td>true、false</td><td>trueでキー押下Skip中なら再生をしない</td></tr>
<tr><td>start_ms</td><td></td><td>0(冒頭)</td><td>0〜;ミリ秒</td><td>
    再生の開始位置を指定する。
</td></tr>
<tr><td>end_ms</td><td></td><td>末端</td><td>0〜;ミリ秒</td><td>
    再生の終了位置を指定する。<br/>
    正の値は「冒頭から何ms目を終端とするか」<br/>
    負の値は「末尾から何ms手前を終端とするか」の指定。
</td></tr>
<tr><td>ret_ms</td><td></td><td>0(冒頭)</td><td>0〜;ミリ秒</td><td>
    ループ戻り位置を指定する。<br/>
    ループ再生中にend_ms指定位置(省略時は末尾)に到達した場合、この指定位置に戻る。
    ループ再生しない(loop=false)際は無視される。<br/>
</td></tr>
</table>

</p>
<h2 id="stop_allse" class="w-heading">[stop_allse] 全効果音再生の停止</h2>
<h4>全てのサウンドを停止する。ぴたっと止める。</h4>
<p class="mb2 px1">

</p>
<h2 id="stopbgm" class="w-heading">[stopbgm]BGM 演奏の停止</h2>
<h4>BGM 演奏を停止する。ぴたっと止める。</h4>
<p class="mb2 px1">

</p>
<h2 id="stopfadese" class="w-heading">[stopfadese] 音声フェードの停止</h2>
<h4>音声フェードを停止する。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>buf</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。<br/>BGMと指定するとBGMの指定</td></tr>
</table>

</p>
<h2 id="stopse" class="w-heading">[stopse]効果音再生の停止</h2>
<h4>効果音再生を停止する。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>buf</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます</td></tr>
</table>

</p>
<h2 id="volume" class="w-heading">[volume]音量設定</h2>
<h4>BGMや効果音の音量を指定</h4>
<p class="mb2 px1">

    BGMや効果音を指定した音量にする。
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>buf</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。<br/>BGMと指定するとBGMの音量設定</td></tr>
<tr><td>volume</td><td></td><td>1.0</td><td>0.0〜1.0</td><td>音量</td></tr>
</table>

</p>
<h2 id="wb" class="w-heading">[wb]BGM フェードの終了待ち</h2>
<h4>BGM フェードの終了を待つ。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>canskip</td><td></td><td>false</td><td>true、false</td><td>trueでクリックキャンセル可能にする</td></tr>
<tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
</table>

</p>
<h2 id="wf" class="w-heading">[wf]効果音フェードの終了待ち</h2>
<h4>効果音 フェードの終了を待つ。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>buf</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます</td></tr>
<tr><td>canskip</td><td></td><td>false</td><td>true、false</td><td>trueでクリックキャンセル可能にする</td></tr>
<tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
</table>

</p>
<h2 id="wl" class="w-heading">[wl]BGM 再生の終了待ち</h2>
<h4>BGM 再生の終了を待つ。</h4>
<p class="mb2 px1">

    loop=true([playbgm]のデフォルト値)なら待たない。<br/>
    利用時は【音声再生[playbgm]がjoin=true(ちなみにデフォルト)であること】を必須条件とします。<br/>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
</table>

</p>
<h2 id="ws" class="w-heading">[ws]効果音再生の終了待ち</h2>
<h4>効果音再生の終了を待つ。</h4>
<p class="mb2 px1">

    loop=trueなら待たない。
    利用時は【音声再生[playse]がjoin=true(ちなみにデフォルト)であること】を必須条件とします。
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>buf</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます</td></tr>
<tr><td>canskip</td><td></td><td>false</td><td>true、false</td><td>trueでクリックキャンセル可能にする</td></tr>
<tr><td>global</td><td></td><td>true</td><td>true、false</td><td>グローバルイベント待ちを有効にするか</td></tr>
<tr><td>stop</td><td></td><td>true</td><td>true、false</td><td>trueで「クリックキャンセル時の再生停止」、falseなら行なわない</td></tr>
</table>

</p>
<h2 id="xchgbuf" class="w-heading">[xchgbuf]サウンドバッファの交換</h2>
<h4>二つのバッファを交換する。未再生でも再生中でも良いが、フェード中は避けること。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>buf</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>サウンドバッファ名</td></tr>
<tr><td>buf2</td><td></td><td>SE</td><td>サウンドバッファ名</td><td>もう一つのサウンドバッファ名</td></tr>
</table>

</p>


<h1><a id="条件分岐条件分岐"></a>条件分岐</h1>
<h2 id="else" class="w-heading">[else]その他ifブロック開始</h2>
<h4>プログラム言語における、条件分岐のelse文。</h4>
<p class="mb2 px1">

    属性無し。<br/>
    <br/>
    詳細は【<a href="dev.htm#cond" target="_blank" rel="noopener">開発者向け情報:式の評価と条件分岐</a>】をご覧下さい。

</p>
<h2 id="elsif" class="w-heading">[elsif]別条件のifブロック開始</h2>
<h4>プログラム言語における、条件分岐のelsif文。</h4>
<p class="mb2 px1">

    詳細は【<a href="dev.htm#cond" target="_blank" rel="noopener">開発者向け情報:式の評価と条件分岐</a>】をご覧下さい。
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>exp</td><td>y</td><td></td><td>条件式</td><td>trueの場合処理は直後にうつる。<br/>falseなら次の<a href="tag.html#elsif" target="_blank" rel="noopener">[elsif]</a>や<a href="tag.html#else" target="_blank" rel="noopener">[else]</a>の評価を行なう</td></tr>
</table>

</p>
<h2 id="endif" class="w-heading">[endif]ifブロックの終端</h2>
<h4>プログラム言語における、条件分岐のendif文。</h4>
<p class="mb2 px1">

    属性無し。<br/>
    詳細は【<a href="dev.htm#cond" target="_blank" rel="noopener">開発者向け情報:式の評価と条件分岐</a>】をご覧下さい。

</p>
<h2 id="if" class="w-heading">[if]ifブロックの開始</h2>
<h4>プログラム言語における、条件分岐のif文。</h4>
<p class="mb2 px1">

    詳細は【<a href="dev.htm#cond" target="_blank" rel="noopener">開発者向け情報:式の評価と条件分岐</a>】をご覧下さい。
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>exp</td><td>y</td><td></td><td>条件式</td><td>trueの場合処理は直後にうつる。<br/>falseなら次の<a href="tag.html#elsif" target="_blank" rel="noopener">[elsif]</a>や<a href="tag.html#else" target="_blank" rel="noopener">[else]</a>の評価を行なう</td></tr>
</table>

</p>


<h1><a id="ラベル・ジャンプ"></a>ラベル・ジャンプ</h1>
<h2 id="button" class="w-heading">[button]ボタンを表示</h2>
<h4>文字レイヤにボタンを配置する。</h4>
<p class="mb2 px1">

    ※選択肢として使用する場合、ジャンプ先のラベル直後には必ず<a href="tag.html#record_place" target="_blank" rel="noopener">[record_place]</a>を記述して、ジャンプ直後でセーブしても正しくセーブされるようにして下さい。
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>デフォルト文字レイヤ</td><td>文字レイヤ名</td><td>ボタンを配置する文字レイヤ</td></tr>
<tr><td>page</td><td></td><td>back</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr class="y"><td>pic</td><td>y</td><td></td><td>画像ファイル名</td><td>画像ボタンとして配置する画像を指定する。<br/>ただし画像は縦に三等分し、左から「通常時」「クリック押下時」「マウスカーソルを載せた時」の画像として表示する</td></tr>
<tr class="y"><td>text</td><td>...</td><td></td><td>ボタンにする文字列</td><td>文字ボタンとして配置する文字列を指定する。<br/>picかtextのどちらかの指定を必須とする</td></tr>
<tr><td>b_pic</td><td></td><td></td><td>画像ファイル名</td><td>文字ボタンの背景画像が指定できる。画像の大きさにかかわらず、文字ボタンのちょうど真ん中に来るよう配置される</td></tr>
<tr><td>width</td><td></td><td>※100</td><td>1〜;横幅</td><td>文字ボタンの横幅を指定する。画像ボタンの場合はこの指定を無視し、画像横幅の1/3にする</td></tr>
<tr><td>height</td><td></td><td>※30</td><td>1〜;縦幅</td><td>文字ボタンの縦幅を指定する。画像ボタンの場合はこの指定を無視し、画像横幅の1/3にする。<br/>また、文字は必ず横一列になるため、この設定値はフォントサイズと兼用になる</td></tr>
<tr><td>style</td><td></td><td>※</td><td><del>CSS style</del><br/><a href="https://pixijs.download/dev/docs/PIXI.TextStyle.html" target="_blank" rel="noopener">PIXI TextStyle</a>のJSON文字列(右項で列挙した一部)</td><td>
    文字ボタン上にマウスカーソルが乗っていない状態のCSS スタイル。<br/>
    JSONは style='{"fill": "deepskyblue"}' のように指定する。<br/>
    <br/>
    ※以下がデフォルト値であり、指定できる主なプロパティ。<br/>
    fill: 'black';<br/>
    align: 'center';<br/>
    fontFamily: 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', '游ゴシック Medium', meiryo, sans-serif;<br/>
    fontSize: 【height属性の値。未指定時は 30】;<br/>
    padding: 5;<br/>
    dropShadow: true;<br/>
    dropShadowAlpha: 0.7;<br/>
    <s>dropShadowColor: white;</s><br/>
    dropShadowColor: #ffffff';(<a href="https://github.com/pixijs/pixi.js/issues/6818" target="_blank" rel="noopener">※pixi.js v5.0.3 頃から色名前が使えない不具合)</a><br/>
    dropShadowBlur: 3;<br/>
    dropShadowDistance: 0;<br/>
</td></tr>
<tr><td>style_hover</td><td></td><td>styleの設定+「fill: white;」を採用</td><td><a href="https://pixijs.download/dev/docs/PIXI.TextStyle.html" target="_blank" rel="noopener">PIXI TextStyle</a>のJSON文字列</td><td>文字ボタン上にマウスカーソルが乗っている状態(クリックしていない)のCSS スタイル。<br/>設定できる値はstyleと同様</td></tr>
<tr><td>style_clicked</td><td></td><td>style_hoverの設定+「dropShadow: false;」を採用</td><td><a href="https://pixijs.download/dev/docs/PIXI.TextStyle.html" target="_blank" rel="noopener">PIXI TextStyle</a>のJSON文字列</td><td>文字ボタン上にマウスカーソルが乗っている状態(クリックしている)のCSS スタイル。<br/>設定できる値はstyleと同様</td></tr>
<tr><td>alpha</td><td></td><td>1.0</td><td>0.0〜1.0;透過度</td><td>透過度。0(完全透明)〜0.5(半透明)〜1(不透明)</td></tr>
<tr><td>left<br/>top</td><td></td><td>※</td><td>※</td><td>※詳細は<a href="tag.html#lay" target="_blank" rel="noopener">[lay]</a>を参照</td></tr>
<tr><td>rotation</td><td></td><td>0</td><td>-180〜180;回転角度</td><td>時計回りは0~180、反時計回りは0~-180を指定。 左上を中心に回る</td></tr>
<tr><td>scale_x</td><td></td><td>1.0</td><td>実数</td><td>横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転</td></tr>
<tr><td>scale_y</td><td></td><td>1.0</td><td>実数</td><td>縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転</td></tr>
<tr><td>pivot_x</td><td></td><td>0.0</td><td>実数</td><td>左上を基準として、回転や移動時の基準を指定</td></tr>
<tr><td>pivot_y</td><td></td><td>0.0</td><td>実数</td><td>左上を基準として、回転や移動時の基準を指定</td></tr>
<tr><td>enabled</td><td></td><td>true</td><td>true、false</td><td>falseだと押せないボタンとなり、クリックイベントが発生しない。<br/>これにより文字レイヤの任意の位置に画像表示できる機能を提供する。<br/>画像は三等分しない。イベントや効果音指定は無効だが、ヒント機能は有効</td></tr>
<tr><td>call</td><td></td><td>false</td><td>true、false</td><td>trueの場合は[call]、falseは[jump]。<br/>ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る</td></tr>
<tr><td>fn</td><td>どちらか、もしくは両方を指定</td><td>処理中のスクリプトファイル</td><td>スクリプトファイル名</td><td>クリック時にジャンプする先</td></tr>
<tr><td>label</td><td>スクリプトファイルの先頭</td><td>ラベル名(半角アスタリスク*も含む)</td><td>コール先のスクリプトファイルにあるラベル</td><td>クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる</td></tr>
<tr><td>url</td><td>fnかlabelか、このurlを指定</td><td>fn・label によるスクリプトジャンプ</td><td>ブラウザで開けるURL</td><td>クリック時にURLを開く。指定時は fn・label を無視する</td></tr>
<tr><td>global</td><td></td><td>false</td><td>true、false</td><td>詳細は[event]と同様。<br/>※ボタンを[trans]する場合はtrueにしておく</td></tr>
<tr><td>arg</td><td></td><td></td><td>ジャンプ先に渡したい値</td><td>指定した場合、クリック時ジャンプ先で「&amp;sn.eventArg」にて値を受け取れる</td></tr>
<tr><td>onenter</td><td></td><td>何もしない</td><td>ラベル名</td><td>マウス重なり(フォーカス取得)時、指定したラベルをコールする。 必ず[return]で戻ること</td></tr>
<tr><td>onleave</td><td></td><td>何もしない</td><td>ラベル名</td><td>マウス重なり外れ(フォーカス外れ)時、指定したラベルをコールする。 必ず[return]で戻ること</td></tr>
<tr><td>clickse</td><td></td><td>省略時は無音</td><td>音声ファイル名</td><td>指定すると、クリック時に効果音を再生する</td></tr>
<tr><td>enterse</td><td></td><td>省略時は無音</td><td>音声ファイル名</td><td>指定すると、ボタン上にマウスカーソルが載った時に効果音を再生する</td></tr>
<tr><td>leavese</td><td></td><td>省略時は無音</td><td>音声ファイル名</td><td>指定すると、ボタン上からマウスカーソルが外れた時に効果音を再生する</td></tr>
<tr><td>clicksebuf</td><td></td><td>SYS</td><td>サウンドバッファ名</td><td>クリック時効果音を再生するサウンドバッファを指定する</td></tr>
<tr><td>entersebuf</td><td></td><td>SYS</td><td>サウンドバッファ名</td><td>クリック時効果音を再生するサウンドバッファを指定する</td></tr>
<tr><td>leavesebuf</td><td></td><td>SYS</td><td>サウンドバッファ名</td><td>クリック時効果音を再生するサウンドバッファを指定する</td></tr>
<tr><td>blendmode</td><td></td><td>何もしない</td><td>ブレンドモード名("screen"など)</td><td>このボタンと下のレイヤとの重なりにおいて、<br/>ドット単位で色のブレンド演算を行なう。<br/>詳細は<a href="tag.html#blendMode" target="_blank" rel="noopener">blendModeの解説</a>を参照</td></tr>
<tr><td>hint</td><td></td><td>表示しない</td><td>ヒント文字列</td><td>
    指定した場合のみ、マウスカーソルを載せるとツールチップス表示する。<br/>
    <s>hint(.pngなど)をプロジェクトに含めると、それをツールチップス図形として使う</s>
</td></tr>
<tr><td>hint_style</td><td></td><td>
    background-color: #3c3225;<br/>
    color: white;<br/>
    padding: 4px 8px;<br/>
    border-radius: 4px;<br/>
    font-size: 1.2em;<br/>
    ほか(狭いので省略)<br/>
</td><td>CSS style</td><td>ツールチップ矩形の CSS スタイル</td></tr>
<tr><td>hint_opt</td><td></td><td>
<pre>
&nbsp;{
&nbsp;&nbsp;"placement": "bottom",
&nbsp;&nbsp;"modifiers": [
&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;"name": "flip",
&nbsp;&nbsp;&nbsp;&nbsp;"options": {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"fallbackPlacements": ["top", "bottom"]
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;]
&nbsp;}
</pre>
</td><td>json</td><td>
    基本的には以下の形式です。<br/>
    ・{"placement": "(値)"}<br/>
    ・{"placement": "(値)","modifiers": []}<br/>
    「画面外にはみ出たときは placement の値を切り替えたい」<br/>
    「ちょっとだけずらしたい」場合は、modifiers配列に設定を追加していきます。<br/>
    設定については以下のサイトを参照してください。<br/>
    ・<a href="https://popper.js.org/docs/v2/modifiers/flip/">Flip | Popper</a><br/>
    ・<a href="https://popper.js.org/docs/v2/modifiers/offset/">Offset | Popper</a><br/>
    <br/>
    【tips】JSON文法は「文字列は " で囲む、' はダメ」などむやみに厳密なため、サイト「<a href="https://lab.syncer.jp/Tool/JSON-Viewer/">JSON Pretty Linter - JSONの整形と構文チェック</a>」などを使用することを推奨します。<br/>
</td></tr>
<tr><td><s>hint_tate</s></td><td></td><td><s>文字レイヤの縦書き指定(writing-mode: vertical-rl なら true)</s></td><td><s>true、false</s></td><td><s>
    ツールチップスをリンクに対してどの位置に表示するか。<br/>
    false:リンクの上に表示(横書き文字レイヤの動作)<br/>
    true:リンクの右に横倒しで表示(縦書き文字レイヤの動作)<br/>
</s></td></tr>
<tr><td><s>hint_width</s></td><td></td><td><s>80</s></td><td><s>1〜ドット数</s></td><td><s>hintの幅を指定できる</s></td></tr>
<tr><td><s>hint_color</s></td><td></td><td><s>'white'</s></td><td><s>css色指定。'white', '#FF0000'など</s></td><td><s>ツールチップス文字色を指定</s></td></tr>
<tr><td><s>hint_font</s></td><td></td><td><s>'22px Arial'</s></td><td><s>文字サイズとフォント</s></td><td><s>hint文字サイズとフォントを指定</s></td></tr>


<tr class="y"><td>(以下は未作成)</td><td></td><td></td><td></td><td>(以下は未作成)</td></tr>

<tr><td>event_at_down</td><td></td><td>false</td><td>true、false</td><td>true:押すだけでイベント発動(画面常駐のシステムボタンなどに)<br/>false:押して離すとイベント発動</td></tr>
<tr><td>draggable</td><td></td><td>false</td><td>true、false</td><td>true:テキスト背後の矩形をドラッグできる。<br/>event_at_down=trueだとクリックイベントが発生しなくなる</td></tr>
<tr><td>drag_x</td><td></td><td>0</td><td>画面左上を原点とする座標</td><td>ドラッグ範囲の左上始点</td></tr>
<tr><td>drag_y</td><td></td><td>0</td><td>(↑と同じ)</td><td>(↑と同じ)</td></tr>
<tr><td>drag_w</td><td></td><td>画面横幅</td><td>ドラッグ範囲縦横ピクセル数</td><td>ドラッグ範囲縦横サイズ</td></tr>
<tr><td>drag_h</td><td></td><td>画面縦幅</td><td>(↑と同じ)</td><td>(↑と同じ)</td></tr>
<tr><td>dragmove_fn</td><td>...</td><td>...</td><td>...</td><td>ドラッグ中にサブルーチンコールする先。<br/>指定方法は[jump]と同様</td></tr>
<tr><td>dragmove_label</td><td>...</td><td>...</td><td>...</td><td>(↑と同じ)</td></tr>
<tr><td>dragmove_arg</td><td></td><td></td><td>文字列</td><td>指定した場合、ドラッグ中コール先で「&amp;sn.eventArg」にて値を受け取れる</td></tr>
</table>

</p>
<h2 id="call" class="w-heading">[call]サブルーチンコール</h2>
<h4>スクリプト処理の現在位置をコールスタックに積み、ジャンプする。</h4>
<p class="mb2 px1">

    ジャンプ先での[return]により本タグの次の位置に戻る事が出来る。<br/>
    ※マニアックな話ですが、あらゆるタグの中で唯一「通常、既読としない」タグです。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>fn</td><td>どちらか、もしくは両方を指定</td><td>処理中のスクリプトファイル</td><td>スクリプトファイル名</td><td>コール先のスクリプトファイル<br/>[call fn=ext_*]のようにワイルドカードをサポート。マッチするスクリプトを順不同にコールする。 (ワイルドカードは後方のみ)</td></tr>
<tr><td>label</td><td>スクリプトファイルの先頭</td><td>ラベル名(半角アスタリスク*も含む)</td><td>コール先のスクリプトファイルにあるラベル</td><td></td></tr>
<tr><td>count</td><td></td><td>false</td><td>true、false</td><td>タグ位置を既読とするか</td></tr>
<tr><td>clear_local_event</td><td></td><td>何もしない</td><td>true、false</td><td>trueの場合は[clear_event]を行なってからコールする</td></tr>
</table>

</p>
<h2 id="jump" class="w-heading">[jump]シナリオジャンプ</h2>
<h4>指定位置のスクリプトにジャンプする</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>fn</td><td>どちらか、もしくは両方を指定</td><td>処理中のスクリプトファイル</td><td>スクリプトファイル名</td><td>コール先のスクリプトファイル</td></tr>
<tr><td>label</td><td>スクリプトファイルの先頭</td><td>ラベル名(半角アスタリスク*も含む)</td><td>コール先のスクリプトファイルにあるラベル</td><td></td></tr>
<tr><td>count</td><td></td><td>true</td><td>true、false</td><td>タグ位置を既読とするか</td></tr>
</table>
<h4>ラベルは例えば以下のように使います。</h4>
<pre>
*aaa
無限ループ
[jump label=*aaa]
; =======================

さらにラベル名を考えるのが面倒なとき、「無名ラベル」ともいうべき機能が使えます。
「**after」は「そのタグ以降で最初に見つかった**ラベルに」
「**before」は「そのタグ以前で最初に見つかった**ラベルに」
ジャンプ・コールする、という指定です。次のように書きます。
; =======================
[jump label=****after]
***
**
も
[jump label=**after]
;**
っ
**
[l]
ぷ
[jump label=**before]
**
@[s]
**
****
す
[jump label=***before]
; =======================
この例では「すもぷぷぷ……」と文字が表示されます。
「**」とか「***」とかアスタリスクは二個以上の任意の数が使え、同じ数同士が対応するラベルとなります。
が、上記例で見るとおりあんまり複雑に使うと可読性が下がってしまう気がしますので、局所的な用途に限ったほうが良さげです。
</pre>

</p>
<h2 id="page" class="w-heading">[page]ページ移動</h2>
<h4>[p]停止位置を一つ移動する</h4>
<p class="mb2 px1">
    [p]などの停止位置を「ページ」とみなし、既読ページを戻ったり進んだりできる。<br/>
    (レイヤの .page とページ移動の [page] の言葉混乱注意)<br/>
    ・save:sn.doRecLog の影響を受け、true の状態でのみ、[p][s]など。([l][waitclick][wait][wv][wait_tsy][wf][ws]は対象外)で停止した際にそのページ状態の記録を行う。<br/>
    ・save変数も復元する。<br/>
      ・前述二項の理由により、冒頭ページに &save:sn.doRecLog = true と [record_place]が必須。<br/>
       (save変数復元で &save:sn.doRecLog = false になるケースがある)<br/>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>clear</td><td rowspan="3">いずれかを指定</td><td>なにもしない</td><td>true、false</td><td>trueでページ状態記録をクリアする</td></tr>
<tr><td>to</td><td>なにもしない</td><td>prev、next</td><td>
    prev:ひとつ前のページに戻る<br/>
    next:ひとつ次のページに進める
</td></tr>
<tr><td>style</td><td>なにもしない</td><td>CSS style</td><td>ページ移動中の既読文字に適用する CSS スタイル。初期値は【color: yellow;】</td></tr>
</table>

</p>
<h2 id="pop_stack" class="w-heading">[pop_stack]コールスタック破棄</h2>
<h4>コールスタックを一つ破棄する</h4>
<p class="mb2 px1">
    極力使用しないコーディングを推奨します。

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>clear</td><td></td><td>false</td><td>true、false</td><td>true:全て破棄する。空でもエラーを出さない<br/>false:スタックを一つ破棄する。空の場合はエラーメッセージ&アプリ停止</td></tr>
</table>

</p>
<h2 id="return" class="w-heading">[return]サブルーチンから戻る</h2>
<h4>コールスタックに積まれているジャンプ先に戻るようなジャンプをする。</h4>
<p class="mb2 px1">

    最後に積んだコールスタックを一つ破棄する。<br/>
    マクロ内で実行した場合はマクロを脱出する。<br/>
    fn・label属性で戻り先を上書き指定できる。(マクロ内からジャンプしたいときなど)<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>fn</td><td>どちらか、もしくは両方を指定</td><td>処理中のスクリプトファイル</td><td>スクリプトファイル名</td><td>戻り先のスクリプトファイル</td></tr>
<tr><td>label</td><td>スクリプトファイルの先頭</td><td>ラベル名(半角アスタリスク*も含む)</td><td>戻り先のスクリプトファイルにあるラベル</td><td></td></tr>
</table>

</p>


<h1><a id="マクロ"></a>マクロ</h1>
<h2 id="bracket2macro" class="w-heading">[bracket2macro] 括弧マクロの定義</h2>
<h4>属性textを持つマクロやタグを、任意の二つの文字を括弧とし、括弧で囲った記述で代用できるよう</h4>
<p class="mb2 px1">

    例 …… [bracket2macro name=title text=⦅⦆]<br/>
    (訂正:「任意の二つの文字」は特定の半角文字じゃなくてもよいです)<br/>
    ※適用範囲について<br/>
      本タグより前にロードされたスクリプトファイルには適用されません。<br/>
      またスクリプトファイルに本タグが記述された場合、本タグより前に出現した半角文字にも適用されません。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>特定の括弧にする始点終点の二文字文字</td><td>マクロに出来るのは英文字、空白、;、[、]、<em>、=、&amp;、|、《、》以外のみ。<br/>正規表現で言えば /[\w\s;[]</em>=&amp;|《》]/ 以外。<br/>一文字マクロや定義済みの括弧文字は使用できない</td></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>マクロ名</td><td>半角文字に割り当てるマクロ名を指定。<br/>組み込みタグか、[macro]による定義済みマクロ名で無ければならない。<br/>組み込みタグやマクロは属性textだけを指定しても問題なく動作し、
    それを処理すること。渡される属性textは空文字の場合もある</td></tr>
</table>

</p>
<h2 id="char2macro" class="w-heading">[char2macro] 一文字マクロの定義</h2>
<h4>属性無しのマクロやタグを、半角文字の記述で代用できるよう定義する</h4>
<p class="mb2 px1">

    本タグより前にロードされたスクリプトファイルには適用されません。<br/>
    またスクリプトファイルに本タグが記述された場合、本タグより前に出現した半角文字にも適用されません。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>char</td><td>y</td><td></td><td>一文字</td><td>マクロにする半角文字。<br/>マクロに出来るのは英文字、空白、;、[、]、<em>、=、&amp;、|、《、》以外のみ。<br/>正規表現で言えば /[\w\s;[]</em>=&amp;|《》]/ 以外。<br/>括弧文字や定義済みの一文字マクロは使用できない</td></tr>
<tr class="y"><td>name</td><td>y</td><td></td><td>定義済みのマクロ名</td><td>半角文字に割り当てるマクロ名を指定。<br/>組み込みタグか、[macro]による定義済みマクロ名で無ければならない</td></tr>
</table>

</p>
<h2 id="endmacro" class="w-heading">[endmacro]マクロ定義の終了</h2>
<h4>[macro]と[endmacro]に囲まれた部分をマクロとして定義する。</h4>
<p class="mb2 px1">

</p>
<h2 id="macro" class="w-heading">[macro]マクロ定義の開始</h2>
<h4>[macro]と[endmacro]に囲まれた部分をマクロとして定義する。</h4>
<p class="mb2 px1">

    定義したマクロは既存のタグと同様に使用できる。<br/>
    渡した属性は、マクロ側で「mp:」「%」スコープにより参照できる。<br/>
    (ただし式では %a という記述はできず、mp:a 記述のみサポートする)<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>name</td><td>y</td><td>未定義のマクロ名</td><td>文字列</td><td>既存のタグやマクロと重複しないマクロ名</td></tr>
<tr><td>nowarn_unused</td><td></td><td>false(警告する)</td><td>true、false</td><td>
    拡張機能の未使用マクロ警告を抑制、表示しないようにする。<br/>
    「使われなくても構わないマクロ」であると示す。<br/>
    SKYNovelの動作には影響なく、拡張機能のみが使用する。
</td></tr>
<tr><td>sum</td><td></td><td></td><td>文字列</td><td>
    拡張機能に表示(<a href="#macro_1">※1</a>)するこのマクロの概要。改行記述(<a href="#macro_2">※2</a>)が出来る。<br/>
    SKYNovelの動作には影響なく、拡張機能のみが使用する。
</td></tr>
<tr><td>%〜(任意のマクロ引数名)</td><td></td><td></td><td>(コメントで解説)</td><td>
    拡張機能に表示(<a href="#macro_1">※1</a>)するこのマクロの引数説明。<br/>
    その見た目通り、マクロ定義時の変数名に沿っている。(mp:〜 と同様)<br/>
    記述に文法がある(<a href="#macro_3">※3</a>)。<br/>
    SKYNovelの動作には影響なく、拡張機能のみが使用する。
</td></tr>
<tr><td>detail</td><td></td><td></td><td>文字列</td><td>
    拡張機能に表示(<a href="#macro_1">※1</a>)するこのマクロの詳細説明。改行記述(※2)が出来る。<br/>
    SKYNovelの動作には影響なく、拡張機能のみが使用する。
</td></tr>
</table>

<h4 id="macro_1">※1 マクロの概要や引数の説明や詳細説明を以下に表示する</h4>
 ・リファレンス検索パレット(【コマンドパレット】-【リファレンス検索パレットを開く】)<br/>
 ・アウトライン(<a href="https://dev.classmethod.jp/articles/vscode-new-side-panel/" target="_blank" rel="noopener">アウトラインビュー</a>に表示)<br/>
 ・マウスホバー(タグ・マクロ名あたりにマウスカーソルを重ねる)<br/>
 ・コード補完機能(スクリプト中で [ や = や半角空白入力時に表示される入力候補)<br/>
 ・引数の説明(スクリプト中で [ や = や半角空白入力時に表示されるホバー)<br/>
<br/>

<h4 id="macro_2">※2 改行記述について</h4>
 【\n】文字を入れると、<br/>
 ・一行しか表示できない状況(コード補完機能によるタグ選択中)では【\n】手前までの一行目だけ表示<br/>
 ・複数行表示可能なホバーチップスなどでは、改行して全て表示する<br/>

<h4 id="macro_3">※3 引数説明記述について</h4>
    書き方があるので、要素を分解して解説する。<br/>
    <p>例)%layer?='レイヤ名|mes|処理対象の文字レイヤ'</p>
    <ol>
        <li>【%】
            <p>この属性が引数説明記述であることを示す。</p>
<ul>
<li>[macro]タグでのみ、「%」で始まる属性は、そのマクロ使用時引数の同名属性解説を示す</li>
<li>その見た目通り、マクロ定義時の変数名に沿っている。(mp:〜 と同様)</li>
</ul>
        </li>
        <li>【layer】
            <p>属性名</p>
<ul>
<li>【余談】SKYNovel 1.36.0 以降は漢字や平仮名なども属性名に使用できる</li>
</ul>
        </li>
        <li>【?】
            <p>省略記号</p>
<ul>
<li>? を書くと【省略可能な属性】であると示す。</li>
<li>? を書かないと必須属性。
    <p>【余談】TypeScriptの省略可能なプロパティを意味する「?」と同様の意味合い</p>
</li>
</ul>
        </li>
        <li>【=】</li>
        <li>【レイヤ名|mes|trueなら〜】
            <p>属性値はその他の項目。値は | で区切られた複数の項目になっている</p>
<ul>
<li>【レイヤ名】
    <ul>
    <li>一項目:値域・型</li>
    <li>例は「レイヤ名」が指定されているので、[add_lay] で追加したレイヤ名を指定できる</li>
    <li>他に【ブレンドモード名】【実数】など。タグリファレンスを眺めると参考になる。</li>
    </ul>
</li>
<li>【mes】
    <ul>
    <li>二項目:省略時の値</li>
    <li>例ではレイヤ名「mes」を指定したのと同じになる。この項目そのものも省略してもよいが、【||】表記にすると三項目の説明が書ける</li>
    </ul>
</li>
<li>【処理対象の文字レイヤ】
    <ul>
    <li>三項目:概要、マクロを使う人にわかりやすい説明文</li>
    </ul>
</li>
</ul>
        </li>
    </ol>

</p>


<h1><a id="しおり"></a>しおり</h1>
<h2 id="copybookmark" class="w-heading">[copybookmark]しおりの複写</h2>
<h4>しおりデータを複写する</h4>
<p class="mb2 px1">
    セーブデータパスに to, from 属性と同名のフォルダがあればコピーする

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>from</td><td>y</td><td></td><td>0〜</td><td>複写元のしおり番号</td></tr>
<tr class="y"><td>to</td><td>y</td><td></td><td>0〜</td><td>複写先のしおり番号</td></tr>
</table>

</p>
<h2 id="erasebookmark" class="w-heading">[erasebookmark] しおりの消去</h2>
<h4>しおりデータを削除する</h4>
<p class="mb2 px1">
    セーブデータパスに place 属性と同名のフォルダがあれば削除する

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>place</td><td>y</td><td></td><td>0〜</td><td>処理対象のしおり番号</td></tr>
</table>

</p>
<h2 id="load" class="w-heading">[load]しおりの読込</h2>
<h4>しおりデータを読み込み、スクリプト処理を再開する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>place</td><td>y</td><td></td><td>0〜</td><td>処理対象のしおり番号</td></tr>
<tr><td>fn</td><td>...</td><td>...</td><td>...</td><td>ロード後最初にしたい共通処理をコールする(処理は[return]で終わらせる)。指定方法は[jump]と同様。<br/>ただし指定する際、fnとlabelは両方指定しなければならない</td></tr>
</table>

</p>
<h2 id="record_place" class="w-heading">[record_place] セーブポイント指定</h2>
<h4>本タグの位置を、スクリプト読み込み時に再開する位置として設定する。</h4>
<p class="mb2 px1">

    本タグの位置を、スクリプト読み込み時に再開する位置として設定する。<br/>
    本タグで「しおりを挟み」、<a href="tag.html#save" target="_blank" rel="noopener">[save]</a>タグで実際にデータをセーブするイメージ。<br/>
    <br/>
    ※マクロやサブルーチン内に記述された場合、最初に積まれたコールスタック位置をセーブポイントとする。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>全てのレイヤ</td><td>レイヤ名(カンマ区切りで複数可)</td><td>しおりに状態を保存するレイヤ。Save/Load画面レイヤや設定画面レイヤなど、保存すべきでないレイヤを除いて指定すべき</td></tr>
<tr><td>reset_sound</td><td></td><td>true</td><td>true、false</td><td>全てのサウンドを停止・再度再生開始するか</td></tr>
</table>

</p>
<h2 id="reload_script" class="w-heading">[reload_script] スクリプト再読込</h2>
<h4>現在処理中のスクリプトをリロードする。</h4>
<p class="mb2 px1">

    属性無し。<br/>
    <br/>
    現在処理中のスクリプトをリロードする。<br/>
    実行位置は<a href="tag.html#record_place" target="_blank" rel="noopener">[record_place]</a>によるセーブポイントまで戻って再開する。<br/>
    ※スクリプトを大幅に変えた後だと、正常に再開できない場合があります。<br/>

</p>
<h2 id="save" class="w-heading">[save]しおりの保存</h2>
<h4>しおりデータを保存する。</h4>
<p class="mb2 px1">

    しおりデータを保存する。<br/>
    読み込み時に再開するスクリプトの位置は最後に<a href="tag.html#record_place" target="_blank" rel="noopener">[record_place]</a>をコールした位置。<br/>
    指定した place が sys:const.sn.save.place と同じ場合、const.sn.save.place を +1 する<br/>。
    <br/>
    <a href="tag.html#record_place" target="_blank" rel="noopener">[record_place]</a>がゲーム状態(レイヤ状態など)をバッファに退避し、<br/>
    <a href="tag.html#save" target="_blank" rel="noopener">[save]</a>は指定しおりに書き出す機能。<br/>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>place</td><td>y</td><td></td><td>0〜</td><td>処理対象のしおり番号</td></tr>
<tr><td>path</td><td></td><td>従来通り SharedObjectに保存</td><td>フォルダパス</td><td>指定した場合、しおりをファイルとしてフォルダパス下に保存する</td></tr>
</table>

</p>


<h1><a id="画面揺らし"></a>画面揺らし</h1>
<h2 id="quake" class="w-heading">[quake]画面を揺らす</h2>
<h4>画面全体を揺らす</h4>
<p class="mb2 px1">

<table>
<tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>time</td><td>y</td><td></td><td>0〜;ミリ秒</td><td>揺らす時間</td></tr>
<tr><td>hmax</td><td></td><td>10</td><td>0〜</td><td>横方向の最大揺らし幅。幅はランダム値を取る</td></tr>
<tr><td>vmax</td><td></td><td>10</td><td>0〜</td><td>縦方向の最大揺らし幅。幅はランダム値を取る</td></tr>
<tr><td>delay</td><td></td><td>0</td><td>0〜;ミリ秒</td><td>トゥイーンを始める前の、何もしない待ち時間</td></tr>
<tr><td>repeat</td><td></td><td>1</td><td>0〜</td><td>繰返し回数。0以下で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう</td></tr>
<tr><td>ease</td><td></td><td>Linear.None</td><td>イージング名</td><td>揺れのイージング(値の変化の仕方)を指定する。<br/><a href="https://createjs.com/demos/tweenjs/tween_sparktable" target="_blank" rel="noopener">イージングの変化はこちらの図</a>(または<a href="https://sole.github.io/tween.js/examples/03_graphs.html" target="_blank" rel="noopener">こちら</a>)が分かりやすい。<br/>指定できる値は<a href="tag.html#tsy" target="_blank" rel="noopener">[tsy]</a>を参照</td></tr>
<tr><td>yoyo</td><td></td><td>false</td><td>true、false</td><td>(暫定)ヨーヨーのように逆方向に戻って繰り返す</td></tr>
</table>

</p>
<h2 id="stop_quake" class="w-heading">[stop_quake]画面揺らし中断</h2>
<h4>画面揺らしを中断する</h4>
<p class="mb2 px1">

    <table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr><tr><td>canskip</td><td></td><td>true</td><td>true、false</td><td>クリックなど(→詳細は<a href="tag.html#waitclick" target="_blank" rel="noopener">[waitclick]</a>)でウエイトをキャンセルできるか</td></tr></table>

</p>
<h2 id="wq" class="w-heading">[wq]画面揺らし終了待ち</h2>
<h4>画面揺らしの終了を待ち、再開する。</h4>
<p class="mb2 px1">

    [event]などでイベントが登録されていても、イベント発生待ちを行わない。<br/>
    <table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr><tr><td>canskip</td><td></td><td>true</td><td>true、false</td><td>クリックなど(→詳細は<a href="tag.html#waitclick" target="_blank" rel="noopener">[waitclick]</a>)でウエイトをキャンセルできるか</td></tr>
    </table>

</p>


<h1><a id="システム"></a>システム</h1>
<h2 id="close" class="w-heading">[close]アプリの終了</h2>
<h4>アプリケーションを終了する</h4>
<p class="mb2 px1">

</p>
<h2 id="export" class="w-heading">[export]プレイデータをエクスポート</h2>
<h4>プレイデータをファイルとしてエクスポートする</h4>
<p class="mb2 px1">
    ダウンロードフォルダにプレイデータファイルが保存される。<br/>
    ブラウザならファイルをダウンロードする。<br/>
    プレイデータ拡張子、ウェブ版は.swpd、アプリ版は.spdで互換性はない。<br/>
    暗号化するプロジェクトの場合、出力するプレイデータファイルも暗号化される。<br/>
    関連するデータファイル([snapshot fn='userdata:/777/pic.jpg']などと保存したサムネイル画像など)も含むが、暗号化しない。
    <br/>
    エクスポート完了時には【sn:exported】というイベントを発火する。<br/>
    【[event key='sn:exported' 〜]】という記述でジャンプできる。<br/>

</p>
<h2 id="import" class="w-heading">[import]プレイデータをインポート</h2>
<h4>プレイデータファイルをインポートする</h4>
<p class="mb2 px1">
    読み込みダイアログが表示され、選択したプレイデータファイルをインポートする。<br/>
    プレイデータ拡張子、ウェブ版は.swpd、アプリ版は.spdで互換性はない。<br/>
    <br/>
    タグはダイアログを表示次第すぐ次の処理に移り、ユーザーの選択を待たない。<br/>
    インポート完了時には【sn:imported】というイベントを発火する。<br/>
    【[event key='sn:imported' 〜]】という記述でジャンプできる。<br/>
    関連するデータファイル([snapshot fn='userdata:/777/pic.jpg']などと保存したサムネイル画像など)も含む。

</p>
<h2 id="loadplugin" class="w-heading">[loadplugin] プラグインの読み込み</h2>
<h4>プラグインとして読み込む</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>fn</td><td>y</td><td></td><td>CSSファイルURL</td><td>読み込むプラグインのファイル名<br/>(拡張子はcssのみ、Webフォント用)</td></tr>
<tr><td>join</td><td></td><td>true</td><td>true、false</td><td>trueで読み込みを待って次のタグへ進む</td></tr>
</table>

</p>
<h2 id="navigate_to" class="w-heading">[navigate_to]URLを開く</h2>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>url</td><td>y</td><td></td><td>ブラウザで開けるURL</td><td>開くURL</td></tr>
</table>

</p>
<h2 id="snapshot" class="w-heading">[snapshot]スナップショット</h2>
<h4>アプリ表示部分全体を画像として保存する</h4>
<p class="mb2 px1">

    画面スナップショットをダウンロードフォルダに保存する。<br/>
    ファイル名にはプロジェクト名と日時どが追加される。<br/>
    <br/>
    ※文字の表示とスナップショットは、厳密には同じではないので注意。<br/>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>全てのレイヤ</td><td>レイヤ名(カンマ区切りで複数可)</td><td></td></tr>
<tr><td>page</td><td></td><td>fore</td><td>fore、back</td><td>ページの裏表</td></tr>
<tr><td>fn</td><td></td><td>snapshot</td><td>保存するファイル名</td><td>省略時はデスクトップに保存<br/>保存する画像フォーマット(png、jpg)は拡張子で指定</td></tr>
<tr><td>width</td><td></td><td>アプリ表示部分の横サイズ</td><td>1〜;横幅</td><td>保存する画像の横ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>height</td><td></td><td>アプリ表示部分の縦サイズ</td><td>1〜;縦幅</td><td>保存する画像の縦ドットサイズ。<br/>元のサイズと異なる場合は拡大・縮小される</td></tr>
<tr><td>smoothing</td><td></td><td>false</td><td>true、false</td><td>拡大・縮小保存される場合、スムージングするか</td></tr>
<tr><td>b_color</td><td></td><td>config.anprjで指定した背景色</td><td>色指定。0xFF000000(黒)など<br/>16進数では透過2桁+赤2桁+緑2桁+青2桁で指定</td><td>テキスト背後の矩形色。pngで 0x0 にすると透過する。<br/>透過しない黒は 0xFF000000</td></tr>
</table>

<p>※fnを「userdata:/」で始まるファイル名にするとセーブデータと同じフォルダに保存します。</p>
<br/>
・パッケージ済・非パッケージ(アプリ版を起動)<br/>
  (Win)C:\Users\【ユーザー名】\AppData\Roaming\【アプリ名】\storage\<br/>
  (Mac)/Users/【ユーザー名】/Library/Application Support/【アプリ名】/storage/<br/>
・非パッケージ(デバッガー起動)<br/>
  {プロジェクトルート}/.vscode/storage/<br/>

</p>
<h2 id="title" class="w-heading">[title]タイトル指定</h2>
<h4>アプリウインドウのタイトル文字列を設定する。</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>タイトル文字列</td></tr>
</table>

</p>
<h2 id="toggle_full_screen" class="w-heading">[toggle_full_screen] 全画面状態切替</h2>
<h4>呼び出す度にアプリの全画面/ウインドウモードを切り替えます。</h4>
<p class="mb2 px1">

<p>現在の状態は文字列変数「tmp:const.sn.displayState」で分かる。trueならフルスクリーン</p>
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>key</td><td></td><td>イベント登録せずモード切替</td><td>イベントのキー名</td><td>イベントを発生させるトリガーイベントを予約する。<br/>key属性の値は<a href="tag.html#event" target="_blank" rel="noopener">[event]</a>を参照</td></tr>
</table>

</p>
<h2 id="update_check" class="w-heading">[update_check] 更新チェック機能</h2>
<h4>ネットにアプリの更新を確認し、ダウンロードもサポートする</h4>
<p class="mb2 px1">

    アプリの最新バージョンをネットで確認する。(アプリ版でのみ動作)<br/>
    処理は非同期に行われ、更新があった時のみ更新確認ウインドウが表示される。<br/>
    ダウンロードフォルダにアプリパッケージの dmg(インストーラー exe)をダウンロードする。<br/>
    <br/>
    開発中はデバッグスイッチ devtool・debugLog を有効にすると処理状況やエラーメッセージなども見られて便利です<br/>
    <amp-img src="pic/updchk_setting2.png" width="664" height="584" layout="responsive"></amp-img>

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>url</td><td>y</td><td></td><td>URL文字列</td><td>latest(-mac).ymlや、dmg(exe)を置いたWebサーバーのフォルダURLを指定する。終端は「/」をつけること</td></tr>
</table>

    Webサーバーの準備方法を説明します。<br/>
    現在二つの形式をサポートしていますが、前者の新しい方に移行して下さい。<br/>

    <h3>【新】_index.json 方式</h3>
    CPU アーキテクチャ違いにも対応し、latest.yml などを手変更する必要がなくなりました。<br/>
    <br/>

    <amp-img src="pic/updchk_build.png" width="500" height="1094" layout="responsive"></amp-img>
     OSや CPU アーキテクチャごとの配布形式生成を押して、それぞれを生成します。<br/>
    (各社のビジネス上の都合により、同じOSでも違う形式があります。どちらも生成してアップデート機能も準備してあげればよいと思います)<br/>
    <br/>

    <amp-img src="pic/updchk_finder1.png" width="1640" height="920" layout="responsive"></amp-img>
     exeやdmgが build/package/ フォルダに生成されますが、いっしょに build/package/update フォルダが新たに生成され、「新しいアップデート機能」に必要なファイルがまとめられています。<br/>
    <br/>

    <amp-img src="pic/updchk_finder2.png" width="1692" height="344" layout="responsive"></amp-img>
     _index.json は OS 違いや CPU アーキテクチャ違いでも一つのファイルです。<br/>
     他はファイル名を暗号化したアプリファイル(OS + Arch + 乱数文字列)です。<br/>
    (内容に変更なくても、生成するたびに乱数文字列とファイル名は変わります)<br/>
    <br/>

    <amp-img src="pic/updchk_web_srv0.png" width="1144" height="746" layout="responsive"></amp-img>
     build/package/update フォルダ内のファイルすべてを Webサーバーにアップロードします。<br/>
     <a href="https://github.com/famibee/SKYNovel_sample" target="_blank">シンプルなサンプル</a>では <a href="https://github.com/famibee/SKYNovel_sample/tree/master/update_tst" target="_blank">Github にアップロード</a>しています。<br/>
     例えば <a href="https://raw.githubusercontent.com/famibee/SKYNovel_sample/master/update_tst/_index.json" target="_blank">_index.json はブラウザからも見える状態</a>です。念のため確認しておきましょう。<br/>
<blockquote><p>Githubの制限でファイルサイズの最大は 100MB 以内のため、<br/>
Mac は 空の dmg にしています。<br/>
Winは収まっているので実物です。<br/>
Linuxは 100MB 越えなので上げられていません。</p></blockquote>


    <amp-img src="pic/updchk_main_sn.png" width="1066" height="582" layout="responsive"></amp-img>
     シンプルサンプルのテンプレからなにか新規プロジェクトを生成してみましょう。<br/>
     スクリプト冒頭で [update_check] を呼んでいます。URLは _index.json などをアップした URL です。<br/>
     ご自身で使用する際はご自身で用意した Webサーバーの URL に変更するわけです。<br/>
    <br/>

    <amp-img src="pic/updchk_mac_dl1.png" width="520" height="506" layout="responsive"></amp-img>
     そのままアプリ版を実行しても何も起こりませんが、<br/>
    <br/>

    <amp-img src="pic/updchk_setting1.png" width="748" height="494" layout="responsive"></amp-img>
     アプリのバージョンを「1.0.0」以外に変更してから終了 → アプリ版を実行すると、アプリの更新をうながすダイアログが表示されます。<br/>
    <br/>

    <amp-img src="pic/updchk_win_dl1.png" width="545" height="278" layout="responsive"></amp-img>
     Windows でも OS に即したダイアログ表示です。<br/>
    <br/>

    <amp-img src="pic/updchk_mac_dl3.png" width="520" height="506" layout="responsive"></amp-img>
     ダウンロードフォルダに配布形式ファイルがダウンロードされます。<br/>
     ia32 なら ia32、x64 なら x64。実行した旧アプリと同じ CPU アーキテクチャの新アプリファイルが選ばれます。<br/>
    <br/>

    <amp-img src="pic/updchk_win_dl2.png" width="545" height="278" layout="responsive"></amp-img>
     Windows ではこんな感じです。<br/>
    <br/>

    <amp-img src="pic/updchk_win_dl3.png" width="530" height="315" layout="responsive"></amp-img>
     ダウンロードフォルダに新しいインストーラーなど配布形式ファイルがダウンロードされます。<br/>
    <br/>

    <amp-img src="pic/updchk_mac_dl2.png" width="520" height="568" layout="responsive"></amp-img>
     ただし旧アプリが x64 なのにサーバー上にない場合、とりあえず同じ OS のすべての CPU アーキテクチャのファイルをダウンロードします。<br/>
     どちらかで配布して、あとで CPU アーキテクチャ別のアップデートという形が可能なわけです。<br/>
    (上の画像は加工してあるのでちょっと変な表示です。「CPU = x64」が見つからないといいながら、2 個のファイルの内の一つが x64 ファイルです)<br/>
    <br/>
    <br/>

     まとめると、<br/>
1.OSや CPU アーキテクチャごとの配布形式を生成する。<br/>
2.build/package/update フォルダ内のファイルすべてを Webサーバーにアップロード。<br/>
3.アプリ版で [update_check] を呼ぶ。<br/>
     だけです。<br/>
     CPU アーキテクチャ違いにも対応し、latest.yml などを手変更する必要がなくなりました。<br/>
    <br/>


    <h3>【旧】.yml 方式</h3>
    基本的に二つのファイルを変更し、アップロードするだけです。<br/>
    ・OS X<br/>
     1.【exe作成】で build/ 下に「〜.dmg」と「latest-mac.yml」などが生成される。<br/>
     2.「latest-mac.yml」を開き、書いてあるファイル名に合わせるように「〜.dmg」ファイル名を変える。(サーバーにアップしてから変えても良さげ)<br/>
    <amp-img src="pic/update_check0mac.png" width="948" height="563" layout="responsive"></amp-img>
     3.上記二つを FTP などで Webサーバーにアップロードする。(httpsを大推奨)<br/>
      「~.yml」がWebブラウザなどで開けるのを確認。<br/>
      例) http://ugainovel.hiho.jp/famibee/sample/hatsune/latest-mac.yml<br/>
     4. main.sn にある [update_check] の url属性に、二つのファイルをアップした「ディレクトリ名」を記述。<br/>
    [update_check url='http://ugainovel.hiho.jp/famibee/sample/hatsune/'] 5.【アプリ版を起動】して試してみる。バージョン番号が違う場合のみ、更新チェック機能によるダイアログが表示される。<br/>
    <amp-img src="pic/update_check2mac.png" width="840" height="314" layout="responsive"></amp-img>
    <br/>
    <amp-img src="pic/update_check3mac.png" width="840" height="314" layout="responsive"></amp-img>

    ・Windows<br/>
     1.【exe作成】で build/ 下に「〜.exe」と「latest.yml」などが生成される。<br/>
     2.「latest.yml」を開き、書いてあるファイル名に合わせるように「〜.exe」ファイル名を変える。(サーバーにアップしてから変えても良さげ)<br/>
    <amp-img src="pic/update_check1win.png" width="998" height="438" layout="responsive"></amp-img>
     3.上記二つを FTP などで Webサーバーにアップロードする。(httpsを大推奨)<br/>
      「~.yml」がWebブラウザなどで開けるのを確認。URLをメモ。<br/>
      例) http://ugainovel.hiho.jp/famibee/sample/hatsune/latest.yml<br/>
     4. main.sn にある [update_check] の url属性に、二つのファイルをアップした「ディレクトリ名」を記述。<br/>
    [update_check url='http://ugainovel.hiho.jp/famibee/sample/hatsune/'] 5.【アプリ版を起動】して試してみる。バージョン番号が違う場合のみ、更新チェック機能によるダイアログが表示される。<br/>

</p>
<h2 id="window" class="w-heading">[window]アプリウインドウ設定</h2>
<h4>ゲームアプリのウインドウサイズや位置などを変更する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>width</td><td></td><td>現在値</td><td>1〜;横幅</td><td>アプリウインドウの横幅を指定</td></tr>
<tr><td>height</td><td></td><td>現在値</td><td>1〜;縦幅</td><td>アプリウインドウの高さを指定</td></tr>
<tr><td>framerate</td><td></td><td>現在値</td><td>1〜</td><td>アプリ全体のフレームレートを変更</td></tr>
<tr><td>centering</td><td></td><td>何もしない</td><td>true、false</td><td>trueを指定すると、アプリウインドウをデスクトップの中央に移動する</td></tr>
<tr><td>x</td><td></td><td>何もしない</td><td>実数;横座標</td><td>デスクトップにおけるアプリウインドウの横位置を指定</td></tr>
<tr><td>y</td><td></td><td>何もしない</td><td>実数;縦座標</td><td>デスクトップにおけるアプリウインドウの縦位置を指定</td></tr>
</table>

</p>


<h1><a id="デバッグその他"></a>デバッグ・その他</h1>
<h2 id="dump_lay" class="w-heading">[dump_lay]レイヤのダンプ</h2>
<h4>レイヤの内容をデバッグ表示する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>layer</td><td></td><td>全てのレイヤ</td><td>レイヤ名(カンマ区切りで複数可)</td><td>デバッグ表示するレイヤ名を指定。半角カンマ区切りで複数レイヤを指定可能</td></tr>
</table>

</p>
<!--

<h2 id="dump_script" class="w-heading">[dump_script]外部へスクリプトを表示</h2>
<h4>レイヤの内容をデバッグ表示する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr><td>set_fnc</td><td>y</td><td></td><td>GlobalThis要素名</td><td>...(内部APIにつき説明省略)</td></tr>
<tr><td>need_err</td><td></td><td>true</td><td>true、false</td><td>
    HTML内にセレクタ(set_fnc属性)に対応する要素が見つからない場合にエラーを出すか
</td></tr>
</table>

-->
<h2 id="dump_stack" class="w-heading">[dump_stack]スタックのダンプ</h2>
<h4>[call]等によるコールスタックの内容をデバッグ表示する</h4>
<p class="mb2 px1">

</p>
<h2 id="dump_val" class="w-heading">[dump_val]変数のダンプ</h2>
<h4>変数の内容をデバッグ表示する</h4>
<p class="mb2 px1">

</p>
<h2 id="log" class="w-heading">[log] ログ出力</h2>
<h4>ダウンロードフォルダにテキスト出力する(追記ではなく上書き。追記する。出力日時・分・スクリプト名や行番号やプロジェクト名も出力</h4>
<p class="mb2 px1">

    Web版でもログファイルをダウンロードします。ただし連続だと間隔が開いてないと失敗します。
<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>ログ出力する値</td></tr>
</table>

</p>
<h2 id="trace" class="w-heading">[trace]デバッグ表示へ出力</h2>
<h4>属性をデバッグ表示する</h4>
<p class="mb2 px1">

<table><tr><th>属性</th><th>必須</th><th>省略時</th><th>値域・型</th><th>コメント</th></tr>
<tr class="y"><td>text</td><td>y</td><td></td><td>文字列</td><td>デバッグ表示する値</td></tr>
</table>

</p>


</section></article>
</main>

<footer class="ampstart-footer flex flex-column items-center pxy3">
    <nav class="ampstart-footer-nav">
        <ul class="list-reset flex flex-wrap mb3">
<li class="px1"><a class="text-decoration-none caps h5" href="https://github.com/ampproject/amp-by-example/issues/new"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="22.2" viewbox="0 0 53 49"><path d="M45 6.9c-1.6 1-3.3 1.6-5.2 2-1.5-1.6-3.6-2.6-5.9-2.6-4.5 0-8.2 3.7-8.2 8.3 0 .6.1 1.3.2 1.9-6.8-.4-12.8-3.7-16.8-8.7C8.4 9 8 10.5 8 12c0 2.8 1.4 5.4 3.6 6.9-1.3-.1-2.6-.5-3.7-1.1v.1c0 4 2.8 7.4 6.6 8.1-.7.2-1.5.3-2.2.3-.5 0-1 0-1.5-.1 1 3.3 4 5.7 7.6 5.7-2.8 2.2-6.3 3.6-10.2 3.6-.6 0-1.3-.1-1.9-.1 3.6 2.3 7.9 3.7 12.5 3.7 15.1 0 23.3-12.6 23.3-23.6 0-.3 0-.7-.1-1 1.6-1.2 3-2.7 4.1-4.3-1.4.6-3 1.1-4.7 1.3 1.7-1 3-2.7 3.6-4.6" class="ampstart-icon ampstart-icon-twitter"/></svg>feedback</a></li>
<li class="px1"><a class="text-decoration-none caps h5" href="https://github.com/ampproject/amp-by-example"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 64.000000 64.000000"><path d="M22.4 1.4C-.8 9-7.4 38.4 10.5 54.9 14.7 58.8 20.4 62 23 62c.5 0 1-1.6 1-3.5 0-3.3-.2-3.5-3.5-3.5-3.5 0-4.2-.5-9-6.6-4.4-5.6-2.3-6.2 3.2-.9 4.2 4 7.5 4.5 9.8 1.2 1.4-2.1 1.4-2.2-.7-3-6-2.3-8.8-4.2-10.2-7.2-2.1-4.3-2.1-12.4 0-15.3.8-1.2 1.2-2.7.9-3.2-1-1.6.5-7 1.8-7 .7 0 2.4.6 3.8 1.4 1.7.9 6 1.4 11.9 1.4s10.2-.5 11.9-1.4c1.4-.8 3.1-1.4 3.8-1.4 1.3 0 2.8 5.4 1.8 7-.3.5.1 2 .9 3.2 1.8 2.5 2.1 10.3.7 14.1-1.4 3.6-5 6.6-9.3 7.8-3.3.9-3.7 1.2-2.8 2.9.5 1 1 4.6 1 7.9 0 3.5.4 6.1 1 6.1 5.2 0 15.8-8.8 19.8-16.5 2.3-4.3 2.7-6.3 2.7-13.5 0-7-.4-9.4-2.4-13.5C57.9 12.2 51.8 6 45.6 3 39.6.2 28.5-.6 22.4 1.4z" class="ampstart-icon"/></svg>github</a></li>
<li class="px1"><a href="https://creativecommons.org/licenses/by/4.0/" rel="nofollow" aria-label="Page Document License"><amp-img src="https://camo.githubusercontent.com/45b46deab81a0adb3164212be341f1dd65111cf3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d43432532304259253230342e302d6c69676874677265792e737667" alt="License: CC BY 4.0" width="116" height="20" data-canonical-src="https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg" style="max-width:100%;"></amp-img></a></li>
        </ul>
    </nav>
    <small>AMP by Example is a part of Accelerated Mobile Pages Project</small>
</footer>
</body></html>