章 10 · 部 II · 技法
設定:漫画
comicsの設定:漫画のページの枠と間白、コマのスタイル、写植、吹き出しのスタイル、登場人物
かんたんな説明
このページでは、漫画のページの設定を説明します。ページの枠と、コマとコマのあいだの空きを決めます。せりふの文字のフォントと大きさを選びます。吹き出し、ナレーション、描き文字の描き方を決めます。登場人物を並べておくと、人物ごとに決まったスタイルで話させることもできます。ページそのものの書き方は、漫画のガイドで説明しています。
#漫画
comicsプロパティは、漫画のページ(:::page)、帯漫画(:::strip)、見開きを設定します。コマを割り出す枠と間白、コマのスタイル、写植、吹き出しのスタイル、登場人物です。読むのは漫画のある文書だけです。漫画のない文書はこれまでとまったく同じに組まれ、漫画があってcomicsの節がない文書は、その言語の既定値を使います。マークアップとページの写植のしかたは漫画で説明しています。
const config: PostextConfig = {
comics: {
readingDirection: 'auto',
gutter: { horizontal: { value: 5, unit: 'mm' }, vertical: { value: 2.5, unit: 'mm' } },
panel: { borderWidth: { value: 0.8, unit: 'pt' }, borderStyle: 'rough' },
panelStyles: [{ id: 'night', background: { hex: '#14142b', model: 'hex' }, borderColor: { hex: '#ffffff', model: 'hex' } }],
lettering: { fontSize: { value: 8.5, unit: 'pt' }, textTransform: 'uppercase' },
balloonStyles: [{ id: 'eerie', shape: 'wavy', italic: true }],
cast: [{ id: 'maya', name: 'マヤ' }, { id: 'tomas', name: 'トマスじいさん' }],
},
};| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
readingDirection | 'auto' | 'ltr' | 'rtl' | 'auto' | 段の中のコマの順序です。'auto'は、右から左に書く文書、縦組みの文書、日本語と繁体字中国語の文書では右から左へ、それ以外では(簡体字中国語と韓国語を含め)artDirectionの方向へ読みます。ページのdirection属性が優先されます。page.binding: 'auto'のとき、コミックを右から左に読む本は右綴じになります。 |
artDirection | 'ltr' | 'rtl' | 'ltr' | 絵が前提とする読む方向です。マンガなら'rtl'です。 |
mirrorArt | boolean | false | artDirectionと逆の方向に読むページの絵を左右反転します。mirror=falseを付けたコマは、絵を描いたままにします。 |
frame.margins | PageMargins | ページの余白 | 漫画のページ独自の余白です(top、bottom、left、right、mirror)。コマはその内側の箱から割り出します。未設定なら、ページの版面から割り出します。 |
gutter.horizontal | Dimension | 4mm | 段と段の間隔です。ページのgutter属性が優先されます。 |
gutter.vertical | Dimension | 2mm | 段の中で横に並ぶコマの間隔です。 |
panel | PanelStyleConfig | 後述 | 既定のコマのスタイルです。 |
panelStyles | NamedPanelStyleConfig[] | [] | 名前付きのコマのスタイルで、:::page{style=…}か::panel{style=…}で選びます。それぞれid、任意のname(エディターの画面でだけ使います)、コマのスタイルの項目を持ち、設定していない項目はpanelに従います。 |
lettering | LetteringConfig | 後述 | 本のすべての吹き出しの書体、サイズ、表記の決まりです。 |
balloonStyles | BalloonStyleConfig[] | 組み込みの9つのスタイル | 種類ごとの吹き出しのスタイルです。組み込みのスタイルは常にあり、そのIDを持つ項目はそのスタイルを変更し、新しいIDの項目はspeechに重ねたスタイルを加えます。 |
cast | ComicCastMember[] | [] | 登場人物です(登場人物を参照)。 |
runningHeads | boolean | false | 漫画のページに柱とノンブルを入れます。オフのとき、漫画のページはコマだけになり、ページ番号は数えられます。 |
viewerLeaf | ComicViewerLeafConfig | 未設定 | ページが紙面の形をしていないホストのためのものです。漫画のページを印刷用の紙面(width、height、margins)に組み、それをfitWidth pxの幅(高さは最大fitHeight px)に縮小してページの上端に置きます。SandboxのHTMLビューアーが設定し、文書とともに保存されることはありません。 |
#コマのスタイル
comics.panelと、comics.panelStylesの各項目は次の項目を持ちます。
| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
borderWidth | Dimension | 1pt | 枠線の太さです。0で枠線を描きません。枠線はコマの輪郭の上に描きます。 |
borderColor | ColorValue | 黒 | 枠線の色です(パレットにリンクできます)。 |
borderRadius | Dimension | 0 | 長方形のコマの角の半径で、短い辺の半分までに抑えます。斜めの線で切ったコマの角はとがったままです。 |
borderStyle | 'solid' | 'rough' | 'none' | 'solid' | きれいな線、少し揺れる手描きの線(揺れはコマから決まる値をシードにするので、何度組んでも同じ線になります)、または枠線なし。 |
background | ColorValue | 白 | 絵の下の塗りです。空のコマの色と、全体表示した絵の周りに残る帯の色になります。 |
fit | 'cover' | 'contain' | 'cover' | coverはコマを埋めるように絵をトリミングしますが、セーフエリアには食い込みません。containは絵全体を表示します。 |
bleed | boolean | false | このスタイルのコマを断ち切りにします。枠に接するすべての辺を、枠の外の仕上がり線と裁ち落としまで伸ばします。 |
#写植
comics.letteringは、本のすべての吹き出しを決めます。サイズは1つだけです。吹き出しのスタイルはそれを倍率で変えられますが(fontScale)、吹き出しに収めるために文字を縮めることはありません。
| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
fontFamily | string | 言語による | 写植の書体です。未設定のときはComic Neue、日本語ではZen Antique、簡体字中国語ではNoto Sans SC、繁体字中国語ではLXGW WenKai TC、アラビア語、ペルシア語、ウルドゥー語ではPlaypen Sans Arabicです(defaultComicFont(locale))。 |
fontSize | Dimension | 7.5pt | 吹き出しの文字のサイズです。印刷されたページでは、漫画の写植は7〜9 ptにするのが普通です。 |
lineHeight | number | 1.15 | 行と行の間隔で、サイズの倍数です。既定のままにすると、縦書きの吹き出しと中国語・日本語の吹き出しは1.5、アラビア語の吹き出しは1.45になります。 |
color | ColorValue | 黒 | 文字の色です。 |
bold, italic | boolean | false | すべての写植をボールドかイタリックにします。中国語、日本語、アラビア語の写植は斜体にしません。 |
letterSpacing | Dimension | 0 | 文字と文字の間に加える間隔です。emは文字サイズに対する値です。アラビア語には適用しません。 |
writingMode | 'auto' | 'horizontal' | 'vertical' | 'auto' | 'auto'は、日本語と繁体字中国語、そして縦組みの文書を縦書きで写植し、それ以外は横書きで写植します。台本の行にverticalかhorizontalを付けると、その行だけ組み方向を変えられます(漫画 › 写植を参照)。 |
textTransform | 'none' | 'uppercase' | 'none' | すべて大文字にします。アメリカやヨーロッパの写植の伝統的な見た目です。大文字と小文字の区別のない文字体系はそのままです。 |
dropFinalStop | 'auto' | boolean | 'auto' | 吹き出しを終える句点を省きます(マンガの。)。'auto':日本語と中国語でだけ省きます。 |
doubleDash | boolean | false | 全角ダッシュを--で写植します。アメリカの写植の習慣です。 |
inset | Dimension | 1.5mm | 吹き出しとコマの枠線の間に空ける間隔です。枠線に付けたナレーションには適用しません。 |
joinSameSpeaker | 'butt' | 'connector' | 'none' | 'butt' | 同じ話し手の吹き出しが2つ続くとき、本体を1つの輪郭にまとめるか、細い首でつなぐか、離しておくかです。台本の行ごとにjoinかjoin=falseで指定することもできます。 |
maxColumnChars | number | 8 | 縦書きの写植で、吹き出しの1行に入れる最大の字数です。描き文字は5字で改行します。 |
#吹き出しのスタイル
comics.balloonStylesの各項目は、同じIDの組み込みのスタイル(speech、thought、whisper、shout、radio、caption、inner、note、sfx)に、新しいIDならspeechに重ねられます。下の既定値はspeechのものです。組み込みの各スタイルが変える点は漫画 › 吹き出しのスタイルに挙げています。emで表す長さは、吹き出しの文字サイズに対する値です。
| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
id | string | 必須 | 台本の行がスタイルを指定するときの語です。ben{whisper}: …またはstyle=whisper。 |
name | string | id | 人が読むための名前で、エディターの画面でだけ使います。 |
shape | 'oval' | 'rounded' | 'rectangle' | 'cloud' | 'burst' | 'wavy' | 'electric' | 'none' | 'oval' | 文字の周りの輪郭です。'none'は文字を絵の上に直接置きます。 |
fill | ColorValue | 白 | 吹き出しの塗りです。 |
stroke | ColorValue | 黒 | 輪郭の色です。 |
strokeWidth | Dimension | 0.6pt | 輪郭の太さです。 |
dash | boolean | false | 破線の輪郭です(ささやき)。 |
double | boolean | false | 二重線の輪郭です。 |
wobble | number | 0 | 輪郭の手描きの揺れで、0〜1です。吹き出しから決まる値をシードにするので、ビルドごとに変わることはありません。 |
roundness | number | 2.2 | 楕円の超楕円の指数です。2で楕円になり、値を大きくするほど四角に近づきます。 |
burstPoints | number | 14 | ギザギザのとげの数です。0なら周の長さから数を決めます。 |
burstDepth | number | 0.22 | ギザギザのとげの深さで、本体の半径に対する割合です。 |
padding | Dimension | 0.55em | 文字と輪郭の間の余白です。 |
aspect | number | 1.6 | 改行で文字の塊に目指させる幅と高さの比です(横書きの写植)。 |
tail | 'curved' | 'wedge' | 'bubbles' | 'zigzag' | 'none' | 'curved' | しっぽです。 |
tailWidth | Dimension | 0.9em | 輪郭から出るところのしっぽの幅です。 |
tailReach | number | 0.55 | しっぽが話し手に向かってどこまで伸びるかで、輪郭から口までの隔たりに対する割合です。 |
target | 'mouth' | 'head' | 'mouth' | しっぽが指すもので、アンカーの口か頭(思考の吹き出し)です。 |
position | 'auto' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'top' | 'bottom' | 'auto' | 行が位置を固定していないときの吹き出しの位置です。写植が配置するか、コマの角か辺に置きます。 |
butt | boolean | false | 角や辺に置いた吹き出しを、コマの枠線にぴったり付けます(ナレーション)。 |
fontFamily | string | 写植の書体 | このスタイルの書体です。sfxの既定値は言語に合った描き文字の書体で、Bangers、日本語ではDela Gothic One、簡体字中国語ではZCOOL KuaiLe、繁体字中国語ではLXGW WenKai TC、アラビア語ではLalezarです(defaultComicSfxFont(locale))。 |
fontScale | number | 1 | 文字のサイズで、写植のサイズの倍数です。 |
bold, italic | boolean | 写植の値 | ボールドまたはイタリックの文字です。 |
color | ColorValue | 写植の値 | 文字の色です。 |
textTransform | 'none' | 'uppercase' | 写植の値 | このスタイルをすべて大文字にします。 |
letterSpacing | Dimension | 写植の値 | 文字と文字の間に加える間隔です。 |
align | 'center' | 'start' | 'center' | 吹き出しの中の行のそろえ方です。 |
halo | Dimension | なし | 文字の周りに描く縁(袋文字)の太さで、絵の上でも文字が読めるようにします(描き文字)。 |
haloColor | ColorValue | 白 | 縁の色です。 |
rotate | number | 0 | 時計回りの回転角(度)です。行のrotate属性が優先されます。 |
#登場人物
comics.castの各項目は、1人の登場人物を表します。
| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
id | string | 必須 | 台本と絵のアンカーで使う話し手のキーです。 |
name | string | id | HTMLの出力とリフロー型のEPUBが人物のセリフの前に印字し、エディターが表示する名前です。 |
balloonStyle | string | speech | スタイルを指定していない、その人物の行のスタイルです。 |
color | ColorValue | スタイルの値 | その人物の吹き出しの文字の色です。 |
fill | ColorValue | スタイルの値 | その人物の吹き出しの塗りです。 |
fontFamily | string | スタイルの値 | その人物の吹き出しの書体です。 |
行自身のcolorとfontは登場人物の設定に優先し、登場人物の設定は吹き出しのスタイルに優先します。漫画の色はどれもパレットの項目にでき、ほかのリンクした色と同じくパレットに従います。
const resolved = resolveComicsConfig(config.comics, 'ja');
// => すべての項目が埋まり、書体はZen AntiqueとDela Gothic One
const minimal = stripComicsDefaults(config.comics, 'ja');
// => すべてが既定値ならundefined
const shout = pickBalloonStyle(resolved, 'shout'); // 本の変更を加えた組み込みのshout
const night = pickPanelStyle(resolved, 'night'); // 名前付きのコマのスタイル、なければ既定のコマ