LyricCharacterReveal
文字を一つずつ順番に表示します。
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 |
各文字の出現速度。 |