---
title: HandheldDrift
description: 手持ちカメラのような小さな揺れを、ゆっくり加えます。
noindex: true
---

**Preview**

<CameraPreview demo="HandheldDrift" />

**Code**

```tsx
import { useMemo } from 'react'
import { useVideoConfig } from 'remotion'
import { SceneLayer, SceneStage, secondsToFrameRange } from 'framoo/core'
import { handheldDrift } from 'framoo/camera/effects'

export const HandheldDriftPreview = () => {
  const { fps } = useVideoConfig()
  const camera = useMemo(
    () => ({
      effects: [
        handheldDrift({
          ...secondsToFrameRange(0, 4.87, fps),
          intensity: 7,
          rotation: 0.55,
          frequencyHz: 1.15,
        }),
      ],
    }),
    [fps],
  )

  return (
    <SceneStage camera={camera}>
      <SceneLayer followsCamera>
        {null /* 背景画像など、カメラと一緒に動かすレイヤーを置く */}
      </SceneLayer>
    </SceneStage>
  )
}
```

## API Reference

| Prop               | Type     | Default | Description                                  |
| ------------------ | -------- | ------- | -------------------------------------------- |
| `from`             | `number` | —       | 揺れを始めるフレーム。                       |
| `durationInFrames` | `number` | —       | 揺れの長さ。前後の端で弱まる。               |
| `intensity`        | `number` | `1.4`   | 水平方向の移動量。ピクセル単位。             |
| `rotation`         | `number` | `0.12`  | 回転の揺れ幅。角度を度単位で指定。           |
| `frequencyHz`      | `number` | `1.1`   | 1秒あたりの揺れの周期数。`0`で動きを止める。 |
