---
title: LyricCharacterUnderline
slug: lyrics/patterns/character-underline
description: 文字が現れるのに合わせて、下線を引きます。
noindex: true
---

**Preview**

<LyricsPreview demo="LyricCharacterUnderline" />

**Code**

```tsx
import { AbsoluteFill, useVideoConfig } from 'remotion'
import { secondsToFrameRange } from 'framoo/core'
import { LyricsLayout, LyricCharacterUnderline } from 'framoo/lyrics'

export const LyricCharacterUnderlinePreview = () => {
  const { fps } = useVideoConfig()
  const lyricTiming = secondsToFrameRange(0.5, 5, fps)
  const framesForSeconds = (seconds: number) =>
    secondsToFrameRange(0, seconds, fps).durationInFrames

  return (
    <AbsoluteFill style={{ backgroundColor: '#17191f' }}>
      {/* 背景画像など */}
      <LyricsLayout>
        <LyricCharacterUnderline
          {...lyricTiming}
          position={{ x: 0.5, y: 0.76 }}
          anchor="center"
          size="base"
          motion={{
            durationInFrames: framesForSeconds(8 / 30),
            staggerInFrames: framesForSeconds(2 / 30),
            easing: 'ease-out',
          }}
        >
          ひとつずつ拾い集めた
        </LyricCharacterUnderline>
      </LyricsLayout>
    </AbsoluteFill>
  )
}
```

## API Reference

| Prop               | Type                            | Default                            | Description                                                |
| ------------------ | ------------------------------- | ---------------------------------- | ---------------------------------------------------------- |
| `children`         | `string`                        | —                                  | 表示する歌詞。                                             |
| `from`             | `number`                        | `0`                                | 表示を始めるフレーム。                                     |
| `durationInFrames` | `number`                        | 未指定（コンポジション終端まで）   | タイムライン上で表示する長さ。フレーム単位。               |
| `name`             | `string`                        | `LyricCharacterUnderline position` | Remotion Studioのタイムラインに表示するラベル。            |
| `position`         | `LyricPosition`                 | —                                  | 配置位置。`{ x, y }`の各値は0から1の割合。                 |
| `anchor`           | `LyricAnchor`                   | `center`                           | positionに合わせる歌詞側の基準点。                         |
| `safeArea`         | `LyricSafeAreaMode`             | `respect`                          | `respect`はセーフエリア基準、`ignore`は画面全体基準。      |
| `size`             | `LyricTypographySize`           | `base`                             | 文字サイズ。`xs`、`sm`、`md`、`base`、`xl`、`2xl`、`4xl`。 |
| `orientation`      | `LyricTextOrientation`          | `horizontal`                       | 文字方向。`horizontal`または`vertical`。                   |
| `rotationDegrees`  | `number`                        | `0`                                | 歌詞全体の回転角度。角度を度単位で指定。                   |
| `autoWrap`         | `boolean`                       | `false`                            | 自動折り返しを有効にする。明示的な改行は常に維持。         |
| `motion`           | `LyricCharacterUnderlineMotion` | `{}`                               | このパターン固有のアニメーション設定。下表を参照。         |

### `motion` の設定

| Prop               | Type                                           | Default    | Description                        |
| ------------------ | ---------------------------------------------- | ---------- | ---------------------------------- |
| `durationInFrames` | `number`                                       | `8`        | 各文字の出現と下線描画の長さ。     |
| `staggerInFrames`  | `number`                                       | `2`        | 文字ごとの開始間隔。               |
| `delayInFrames`    | `number`                                       | `0`        | 最初の文字が始まるまでの待ち時間。 |
| `easing`           | `linear \| ease-in \| ease-out \| ease-in-out` | `ease-out` | 文字と下線の出現速度。             |
