---
title: LyricCharacterReveal
slug: lyrics/patterns/character-reveal
description: 文字を一つずつ順番に表示します。
noindex: true
---

**Preview**

<LyricsPreview demo="LyricCharacterReveal" />

**Code**

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

export const LyricCharacterRevealPreview = () => {
  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>
        <LyricCharacterReveal
          {...lyricTiming}
          position={{ x: 0.5, y: 0.76 }}
          anchor="center"
          size="base"
          motion={{
            fadeDurationInFrames: framesForSeconds(8 / 30),
            staggerInFrames: framesForSeconds(2 / 30),
            easing: 'ease-out',
          }}
        >
          まだ足りない今日のままで
        </LyricCharacterReveal>
      </LyricsLayout>
    </AbsoluteFill>
  )
}
```

## API Reference

| Prop               | Type                         | Default                          | Description                                                |
| ------------------ | ---------------------------- | -------------------------------- | ---------------------------------------------------------- |
| `children`         | `string`                     | —                                | 表示する歌詞。                                             |
| `from`             | `number`                     | `0`                              | 表示を始めるフレーム。                                     |
| `durationInFrames` | `number`                     | 未指定（コンポジション終端まで） | タイムライン上で表示する長さ。フレーム単位。               |
| `name`             | `string`                     | `LyricCharacterReveal 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`           | `LyricCharacterRevealMotion` | `{}`                             | このパターン固有のアニメーション設定。下表を参照。         |

### `motion` の設定

| Prop                   | Type                                           | Default    | Description                        |
| ---------------------- | ---------------------------------------------- | ---------- | ---------------------------------- |
| `fadeDurationInFrames` | `number`                                       | `8`        | 各文字がフェードインする長さ。     |
| `staggerInFrames`      | `number`                                       | `2`        | 文字ごとの開始間隔。               |
| `delayInFrames`        | `number`                                       | `0`        | 最初の文字が始まるまでの待ち時間。 |
| `easing`               | `linear \| ease-in \| ease-out \| ease-in-out` | `ease-out` | 各文字の出現速度。                 |
