リンクをクリップボードにコピー
コピー完了
画像のように現在スライダー制御の数字をテキストレイヤーに表示させようとしています。
表示させるだけなら問題ないのですが、それぞれの桁を独立して表示させる場合、どのようなエクスプレッションをそれぞれのレイヤーに表記すればいいのか悩んでいます。
よくありそうな形として
(例)1の位の場合
var n=スライダー制御の数値
var m
m=n%10
m.toFixed(0)
のような関数をそれぞれのテキストレイヤーに入れている状況です
ここでの問題点としては
1.1の位以外の位が0のときは10の位に何も表示させたくない
2.1の位がまれに「10」と2桁で表記されてしまう
3.スライダー制御側最大数値は60だが2つの桁を合わせた場合69などそれ以上の数字として画面上に出てしまう(おそらく少数表記から整数表記に直す際の関数で値が上昇してる)
の3点です
Youtube上に近い状況を説明していた動画があったはずなのですがどうしても見つかりませんでした。
長文説明申し訳ありません。よろしくお願いします。
リンクをクリップボードにコピー
コピー完了
追記です。
この後色々試して事故解決しました。
ただこのスライダー制御にはMath.sinを用いて数値を入力し、テキストレイヤーにはMath.floorを使った関係上どうしてもうまく最大値を画面上にだすことが出来ません。
数値のみならスライダー制御の数値を少し上げればいいのですが、ほかのレイヤーにもつながっている関係上それをしてしまうと他の動きが少しぶれてしまいます。
現在は他のレイヤーの方に少し手直しをして同じ動きをさせていますがこれをテキストレイヤーのエクスプレッションのみで完結する方法はあるのでしょうか。
よろしくお願いします。
リンクをクリップボードにコピー
コピー完了
下記のエクスプレッションはどうでしょう。
var n = effect("スライダー制御")("スライダー") ;
var m = String(n);
if(n <10){
m.slice(0 ,1);
}else{
m.slice(0 ,1) + m.slice(1,2) ;
}
<追記>
エクスプレッションを修正しました。
リンクをクリップボードにコピー
コピー完了
let n = effect("スライダー制御")("スライダー") ;
let m = String(n);
if(n <10){
m.slice(0 ,1);
}else{
m.slice(1,2) ;
}
let n = thisComp.layer("1の位").effect("スライダー制御")("スライダー") ;
let m = String(n);
if(n >= 10){
m.slice( 0,1);
}