終了

リピーターでコピー数を増やした時に自動で間隔が調整されるようにしたい

New Here ,
Apr 23, 2024 Apr 23, 2024

リンクをクリップボードにコピー

コピー完了

件名の通りなのですが、リピーターでコピー数を増やした時に自動で間隔が調整されるような仕組みをエクスプレッションで作ることは可能でしょうか。

コピー数の数値を増減させるだけで、トランスフォーム:リピーターの「位置」が画像のように自動で調整されるようにしたいです。(コピー元の初期位置は画面端にくっつかないものとします。)
01.png02.png03.png

キーワード
エクスプレッション

表示

500

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

下記コードをリピーターの位置に追加してみてはどうでしょう。
 
let n = content("長方形 1").content("リピーター 1").copies;  //リピーターのコピー数。階層が異なる場合は再設定
if (n > 2){
	value / (n - 1);
}else{
	value
}

 

コピー数にキーフレームを設定する場合は、下記コードを追加して値を整数に変換して下さい。

Math.round(value)

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

<追記>

コピー数で小数点の値も反映したい場合は、下記コードを使用して下さい。

let n = content("長方形 1").content("リピーター 1").copies;
let nCeil = Math.ceil(n);
if (n > 2){
	value / (nCeil - 1);
}else{
	value
}

 

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

ご回答ありがとうございます。

頂きましたエクスプレッションを試してみたところ、画像1枚目のようなエラーが出てしまったのですが階層の作り方が間違っているのでしょうか?
また、手動で「コピー数」に繋げた場合も画像2,3枚目のように意図しない挙動になってしまったため可能でしたら改善法をご教示願いたいです。

スクリーンショット 2024-04-24 182642.jpgスクリーンショット 2024-04-24 182700.jpgスクリーンショット 2024-04-24 182719.jpg

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

先のコードは、長方形を選択した状態でリピーターを追加して、長方形の下の階層にリピーターがある場合です。
コードを変更された内容で大丈夫です。


2・3枚目のスクリーンショットは、両端に配置するシェイプの間隔を設定して下さい。
「位置」の数値が両端にあるシェイプのアンカーポイント間の値になるので、大きな数値を入力して下さい。

 

<追記>

「位置」の赤色文字の下にある = アイコンをクリックしてエクスプレッションを無効にすると現在の設定値が表示されます。

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

ご回答ありがとうございます。

仕様の解釈を誤っておりました。初めにコピー数2の状態で両端のシェイプの位置を確定させてから均等に増やしていく...というイメージですね。理解いたしました。

追加の質問となり大変恐縮なのですが、これに横長の長方形パスを追加して、このパスの横幅を調整すると連動してシェイプのコピー数が調整される、という仕組みに発展させることは可能なのでしょうか。

以下条件になります。


1.シェイプ間の間隔は基本変わらず、コピー数も小数点以下切り捨てで問題ないです。

2.この仕様にした上で先日ご回答いただいた調整法も使用出来るようにしたいです。

04.png05.png

自分でも何度か試してみたのですが、数が小さくなった時に右端のシェイプの位置がずれてしまいどうしても再現出来なかったためご回答いただければ幸いです。

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

>パスの横幅を調整すると連動してシェイプのコピー数が調整される
>1.シェイプ間の間隔は基本変わらず
スクリーンショットのように、常に上のシェイプのサイズと下のシェイプのサイズを同じにするのであれば、成り立たないので数値にできないと思います。

 

シェイプ間隔を変えずコピー数に合わせて横長の長方形のサイズを調整することならできます。

 

または、コピーが増える過程で上のシェイプが下のシェイプより長くなっても良いのでしょうか。

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

別のパスの横幅と連動してコピー数が変わるような仕組みは難しいのですね。


コピー数に応じて長方形のサイズが変わるのは意図した動きからは少し外れてしまうため、その辺りは手動で調整しようと思います。ご回答いただきありがとうございました。

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

参考に動画を作成してみました。

コピー数を割り出すのは、上のシェイプのサイズをリピーターの位置で除算すれば求められますが、添付動画のように上と下のサイズが合うのは、一瞬だけになります。

 

<追記>

コピー数を変化させて上のシェイプのサイズを変える動画を追加しました。

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

参考動画までありがとうございます。

シェイプサイズとリピーター位置の除算で出来るのですね、かなりイメージには近いと感じました。

 

自分が制作したものだと動画のような挙動になっているのですが、式がかなりぐちゃぐちゃしているのと数が少なくなるにつれ位置がずれてしまっている状態です。
(先ほど「シェイプ間の間隔は基本変わらず」と申し上げたのですが、動画のような動きになれば問題ないです。紛らわしくしてしまい申し訳ございません。)

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

シェイプの間隔が変化しても良いなら、下記コードを追加して下さい。
 
リピーターのコピー数:
let ref = content("長方形 2").content("長方形パス 1").size[0];
let s = content("長方形 1").content("長方形パス 1").size[0];
let p = content("長方形 1").content("リピーター 1").transform.position[0];
n = ref / p;
[ Math.floor(n)]
 
リピーターの位置:
let ref = content("長方形 2").content("長方形パス 1").size[0] - content("長方形 1").content("長方形パス 1").size[0];
let n = content("長方形 1").content("リピーター 1").copies;
let x;
if (n > 1){
x = ref / (n - 1);
}else{
x = value[0]
}
[x,value[1]]
 
下図の階層で設定しています。
ae101.png
 
<追記>
たまたま、こちらでは正常に動作していますが、間違いがあるため正常に動作しないかもしれません。

 

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

ありがとうございます。

ご提供いただきましたコードを新規制作したシェイプに追加したところ、あまり思ったような挙動にならなかったのですが何か配置などが間違っておりますでしょうか。

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

両方のシェイプのアンカーポイントを左端に設定してから位置を合わせる必要があります。
但し、先のコードはお互いに参照し合っているため、思うような動きになりません。
すぐには、思いつかないので出来るのかは不明ですが、

コピー数をキーフレームにすれば、すぐに対応できると思います。


添付動画は、このエクスプレッションを使用しているのですが、何故か思った動きになっています。

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

立て込んでおりまして返信が遅くなり失礼いたしました。

 

もう一度、今度は長方形のトランスフォームでアンカーポイントと位置を調整してやり直してみたのですが、やはり先日お送りした動画と同じ挙動(横長の長方形が左右両方向に広がり、リピーターのコピー数は変動しない)になってしまいました。

現時点だと、リピーターの対象になっている長方形の横幅をいじった場合に限りコピー数が変動します。スクリーンショット 2024-05-02 181550.jpg

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

すいません。

このエクスプレッションに関しては、先の返信で述べたように間違いがあるため、動作が不安定です。
作り直す気力が今はないので、私からの回答は控えさせて頂きたいと思います。


参考ですが、
左にアンカーポイントを配置するエクスプレッションを追加しておきますので応用して下さい。
長方形:横

let x = -content("長方形 2").content("長方形パス 1").size[0]/2;
[x,value[1]]

 

長方形:縦

x = -content("長方形 1").content("長方形パス 1").size[0]/2;
[x,value[1]]

 

また、コピー数の最後の行を下記に書き換えた方が良い場合があります。
[ Math.ceil(n)]

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

<追記>

思いつきで、
コピー数をある程度設定するように変更してみました。

コピー数のエクスプレッションを書き換えて下さい。

 

let ref = content("長方形 2").content("長方形パス 1").size[0];
n = linear(ref,0,1600,1,6);  //サイズとコピー数
[ Math.floor(n)]

 

 

投票

翻訳

翻訳

レポート

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

リンクをクリップボードにコピー

コピー完了

最新

<追記2>
中央から広がるようにする場合は、横長長方形のアンカーポイントを 0,0 にして、縦長長方形のアンカーポイントを下記コードへ追加します。

 

let ref = content("長方形 2").content("長方形パス 1").size[0]/2;
let w = content("長方形 1").content("長方形パス 1").size[0]/2;
x = ref - w ;
[x,value[1]]

 

 

投票

翻訳

翻訳

レポート

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