Skip to main content
October 12, 2020
Answered

テキストボックスのエクスプレッションについて

  • October 12, 2020
  • 1 reply
  • 4787 views

お世話になります。

 

テキストを打ち込み、その下にテキストボックスとなる長方形レイヤーを置いています。

その長方形レイヤーは、テキストの文字数に合わせてテキストボックスのサイズも追随するようにしています。

 

具体的に言うと、

長方形パスの

サイズに

s=thisComp.layer(“Text Layer”);
w=s.sourceRectAtTime().width;
h=s.sourceRectAtTime().height;

[w,h]

 

位置に

s=thisComp.layer(“Text Layer”);
w=s.sourceRectAtTime().width/2;
h=s.sourceRectAtTime().height/2;
l=s.sourceRectAtTime().left;
t=s.sourceRectAtTime().top;

[w+l,h+t]

 

というエクスプレッションを入れ込んでいます。

 

これで、テキストに合わせて長方形レイヤーの横の長さも変わるようになっているのですが、

 

同じテキストのポイント(大きさ)で、文字数(長さ)を変えると

長方形レイヤーの高さまで変化してしまいます。

 

この長方形の高さは変える必要がなく一定にしたいのですが、解決法が分かりますでしょうか。

 

エクスプレッションが間違っているのか、

もしかしたら文字数が多いと、テキストレイヤーの赤いバウンディングボックスが、そもそも大きくなっている(?)ので、

それに合わせて長方形も大きくなっているのかと思いました。

その場合、これのサイズを変えればいいのか..?とか思ったのですが..

 

説明ベタで申し訳ございません、わかりましたらよろしくお願いいたします。

 

    This topic has been closed for replies.
    Correct answer Mukaida

    ご返事頂き、誠にありがとうございます。

    当方、エクスプレッションに弱く申し訳ございません。

     

    位置はそのまま、サイズを

    s=thisComp.layer("02")
    w=s.sourceRectAtTime().width;
    h=s.sourceRectAtTime().height;

    [w,100]

     

    としてみましたが、まだ文字によって高さが変わってしまい、固定されません。

    ですが、以前よりは変化が小さくなったように思います。

    因みに、テキストのサイズを変えてみると、添付のように変わります。

     


    高さのサイズは固定されているので問題ありませんが、テキストとシェイプのアンカーポイントがずれいているために、位置が上下しているようです。

     

    テキストのアンカーポイントを中心に配置するエクスプレッションは、下記サイトのエクスプレッションをそのまま追加します。

    3RD EYE STUDiOS

     

    シェイプレイヤーのトランスフォームのアンカーポイントに下記のエクスプレッションを追加。

    s=thisComp.layer(1);      // テキストレイヤー名
    textTop = s.sourceRectAtTime().top;
    textHeight = s.sourceRectAtTime().height;
    textLeft =s.sourceRectAtTime().left;
    textWidth =s.sourceRectAtTime().width;
    [textLeft + textWidth/2, 0]

     

    シェイプレイヤーのトランスフォームの位置をテキストレイヤーの位置とリンクさせる。

     

    シェイプレイヤーのトランスフォーム:長方形の位置にあるエクスプレッションは削除。

    1 reply

    Community Expert
    October 12, 2020

    フォントを変更しても同じでしょうか?

     

    漢字「引」の高さがひらがなより高い様な気がするので、漢字のサイズだけ小さくして変化を確認して下さい。

     

    また、全体的に文字に比べてシェイプが大きくなっているので、文字に線幅が設定されていないでしょうか。

    October 13, 2020

    ご確認頂きまして誠にありがとうございます。

     

    確かに、漢字「引」の高さがひらがなより高いようでした。

    どうやら文字によって高さが変わるので、それに合わせてしまい、

    漢字などがない(ひらがな だけの)場合はシェイプの高さも低くなる。ようです。

     

    フォントを変えて見たのですが、特に変わらず、どのフォントも高さが文字によって違っているので、

    シェイプも変動してしまうようです。

     

    文字に線幅は設定していないと思います。

     

    シェイプには、パスのオフセットを追加して、少し大きくしてあります。

     

    フォントの性質上、シェイプの高さを一定にするのは難しいのでしょうか...?

    漢字や高さのあるテキストだけ縮めるのも変ですし、

    テロップ毎にオフセットでシェイプの大きさを変えるのも少々面倒なので

    なにか解決策があるといいのですが...

     

    Community Expert
    October 13, 2020

    シェイプの高さは、エクスプレッションの [w,h] のhを数値に変えれば固定できます。
    高さの最大サイズを入力すれば良いと思います。