終了

コンポのデュレーションをテキストに反映させる方法

Jun 25, 2025 Jun 25, 2025

コンポジションのデュレーションをテキストのソーステキストでのエクスプレッションにて表示させる方法はありますでしょうか。

理想としては0+0のような表記で数字の値が変わっていくものだと理想通りです。

コンポジション設定によりデュレーションを変えるとテキストもそれに反映されて変わるといった具合にやりたいです。

キーワード
エクスプレッション
83
翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jun 25, 2025 Jun 25, 2025

0+0は、何を表しているのでしょうか?
例として、秒数+フレームにすると下記コードで表示できます。

const d = thisComp.duration;
const s = Math.floor(d);
const f = timeToFrames(d - s)
s + "+" + f

 

但し、このエクスプレッションでは、デュレーションのフレーム数が00以外の場合、1フレーム異なる値を表示することがあります。

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jun 25, 2025 Jun 25, 2025

<追記>

フレーム数の計算方法を変えた別案でもインターレースの場合、1フレーム増えてしまいます。
十分検証してインターレースが全て1フレーム増えている様なら、3行目に -1  をインターレースの時だけ追加することで対処できるかもしれません。

 

プログレッシブ

const d = timeToFrames(thisComp.duration);
const s = Math.floor(thisComp.duration);
const f = d - timeToFrames(s);
s + "+" + f

 

インターレース:

const d = timeToFrames(thisComp.duration);
const s = Math.floor(thisComp.duration);
const f = d - timeToFrames(s) -1;
s + "+" + f

 

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jun 26, 2025 Jun 26, 2025

<追記>
下記リンクの「Time Conversion のメソッド(エクスプレッションのリファレンス)」を参考にして、インターレースに対応した方法で変換すればコンポジションのデュレーションを表示できます。
但し、0+0の表記は、タイムコードではフィルムを使用した撮影になるので表示は異なります。
After Effects でのエクスプレッション言語 

 

インターレース:

const d = thisComp.duration;
timeToNTSCTimecode(d)

 

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
参加者 ,
Jun 26, 2025 Jun 26, 2025
最新

アニメなどの秒+コマ表記なら一旦フレーム数にしてfpsで割って商と余りを加工するといった方法がありますが
timeToFeetAndFramesを使ったほうが簡単かもです。

 

全体尺の場合

var fps = 1/thisComp.frameDuration;
timeToFeetAndFrames(t=thisComp.duration, fps=fps, feetPerFrames=Math.ceil(fps), isDuration=true).replace(/^0{1,2}/,'')

 

現在の時間の場合 

var fps = 1/thisComp.frameDuration;
timeToFeetAndFrames(t=time, fps=fps, feetPerFrames=Math.ceil(fps)).replace(/^0{1,2}/,'')

 

フィートフレーム表記は0000+00のようになるので先頭の0を2文字まで消すようにしています。

ただしプロジェクト設定の時間の表示形式がフレームで、フレーム数が1から開始になっている必要があり、コンポジション設定でも確認できますが、一般的にはこの設定になっていると思いますので大丈夫かと思います。

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines