2025年6月8日日曜日

ClipChampの使い方メモ、最短で学ぶ

 とある案件で操作説明の動画を作るように依頼されて仕方なくやってみた。そのときにコツと思える箇所があったので、他の人に役立つようにメモする。

  1.  目的に合わせて多少操作が迷ってスマートじゃなくても動画 MP4のファイルを作るのが優先
  2. MP4のファイルはClipChampで分割、複製できるので割らなくても良い
  3. タイトル、トラジション、説明画像はPPTで作成して .PNG でエクスポート
  4. ClipChampで、MP4の動画と.PNGをインポート
  5. 動画の余分な部分はスプリットして削除
  6. スプリットした間にタイトル、セクションや解説の.PNGを挿入
  7. 動画の一部を拡大したいときは複製してクロップで切り抜いてからサイズ調整
  8. 協調したいところにテキストや矢印を配置
  9. 動画やスライドの継ぎ目にトラジションの効果を入れる
  10. 音声合成で読み上げの文書を入れる
  11. その後で自動でキャプション作成し、生成されたトランスクリプションを手修正
  12. 必要に応じて音楽を足す
  13. MP4エクスポートして保存

1.まずは操作をTeams会議で録画して動画をつくる

多少、操作が覚束ないところがあっても後でスプリットして削除できる。間に「この部分は割愛」と表示して切り取る。またはスプリットで分けた期間を3倍速にして巻きで再生することができる。

2. 動画はあらかじめ分割しなくてもOK

ClipChampの中で動画を分割、複数コピーすることができる。同じ動画を複製して拡大部分を表示することも可能です。

3. タイトル、セクション、説明用のスライドはPPTで作成

細かい図や説明はPPTで作る方が楽だと思う。

4. ClipChamp で、MP4の動画と.PNGをインポート

これは+ボタンをクリックしてメディアを足すだけで簡単操作です。

5. 動画の余分な部分はスプリットして削除

動画を再生しながら切り取りたいところで停止してハサミのアイコンで分割します。

6. スプリットした間にタイトル、セクションや解説の.PNGを挿入

スプリットした動画の間隔を広げて、その空いた隙間の枠に.PNGを落とせばセクション区切りができます。セクション区切りを表示する期間はマウス、キー入力で調整できる。スプリットしてその間を削除しても、インポートしたメディアからその期間が消えてしまうわけではないので、バシバシスプリットして良いです。

7. 動画の一部を拡大したいときは複製してクロップ&サイズ調整

同じ動画を別なトラックにコピーして、クロップで切り取り拡大すると注目してほしい箇所をオーバーレイで表示できます。

8. 協調したいところにテキストや矢印を配置

これも操作は直観的にできるので説明省略

9. 動画やスライドの継ぎ目にトラジションの効果を入れる

タイトルと動画、セクションと動画の変わるところにトラジションの効果を入れると、場面が変わるタイミングがわかって視聴者の注意力を助ける効果が期待できる。

10. 音声合成で読み上げの文書を入れる

説明のキャプションをテキストで入れる方法もあるが、「録画と作成」から「音声変換」でテキストを打ち込み説明を入れるのが先。その理由は後からその音声でキャプションを作れるから。自分の声を当てたい人は別ね。

11. 自動でキャプション作成し、生成されたトランスクリプションを手修正

これも操作で迷わないと思う。右上のキャプションから自動キャプションを生成する。生成されたトランスクリプションの表示位置が分かりずらいが、右側の下に表示される。領域が縦長でかつカーソルの位置が見づらいので編集しにくい。

12. 必要に応じて音楽を足す

眠気防止の効果は有りそうだ。

13. MP4エクスポートして保存

社内だとクラウドで共有だが、外部に提供するときはMP4にエクスポートします。

2025年5月29日木曜日

ライブラリ参照名を定義しないでデータセットを格納する例

 ライブラリ参照名をテンポラリで作りたくないときがあります。そんなときにはディレクトリを指定してライブラリ参照名を定義しない使い方があります。古いTipsだけど忘れていた。



2025年5月13日火曜日

basename, dirname, nobs

良く使うけど、良く忘れるファイル名の操作のマクロをまとめておきます。DATAステップは使わずにマクロの文だけで作っているのでDATAステップの中でも値をはめこみ易いのです。高度なエディタだとマクロの終端を認識してくれないことがあるので、これらのマクロは最後の方に書きます。
このマクロの弱点は、括弧とか特殊文字がファイル名やディレクトリに混じると文字列の終端が判定できなくてERRORになることです。括弧を含む又は括弧の開始があって終了がないようなときはERRORになるので要注意です。

/* Strip directory and suffix from filenames. */
%macro basename(path);
  %local dequotePath orgLength dequoteLength lastSlash x;

  %let dequotePath=%sysfunc(dequote(&path));
  %let orgLength=%length(&path);
  %let dequoteLength=%length(&dequotePath);
  
  %let lastSlash=%sysfunc(findc("&dequotePath", "/", -%length(&dequotePath)));
  %let x=%substr(&dequotePath, %eval(&lastSlash));
  %quote(&x)
%mend;

/* Strip non-directory suffix from file name */
%macro dirname(path);
  %local dequotePath orgLength dequoteLength lastSlash x;

  %let dequotePath=%sysfunc(dequote(&path));
  %let orgLength=%length(&path);
  %let dequoteLength=%length(&dequotePath);
  
  %let lastSlash=%sysfunc(findc("&dequotePath", "/", -%length(&dequotePath)));
  %let x=%substr(&dequotePath, 1, %eval(&lastSlash-2));
  %quote(&x)
%mend;

/* Return number of obs. */
%macro nobs(mydata);
  %local NOBS;
  %let NOBS=0;
  %if %sysfunc(exist(&mydata)) %then %do;
    %let mydataID=%sysfunc(OPEN(&mydata., IN));
    %let NOBS=%sysfunc(ATTRN(&mydataID, NOBS));
    %let RC=%sysfunc(CLOSE(&mydataID));
  %end;
  &NOBS
%mend;