ねこまたぎ お道具箱 目次

■掲示板に戻る■ 全部 1- 101- 最新50

何でも質問箱

1 :kiyo :05/11/14 20:58:35 ID:CfPDLIKk
よいしょソレキタ、質問箱だ。何でも聞いてチョ

答えられることは答えるヨ

私が知らないことは、きっとここを見ている誰かが教えてくれるサ
…よろしくね>誰か

知っていても教えるわけには行かないこと…も時々あるので それは聞かないでほしい


75 :tag :08/01/20 12:55:37 ID:VoL1MzBA
>kiyo様
ありがとうございます!助かりました。
修正版のほうもダウンロードさせていただき、問題なく動作しました。
これを機にスクリプトの勉強もしてみたいと思いました。
また質問に上がるかもしれませんが、そのときもよろしくお願いします!

76 :kiyo :08/01/20 16:09:50 ID:Arrz8BDk
>>75
どういたしまして。
教えてもらわなかったらミスしたまま放置していたと思いますので、
こちらこそご報告感謝でございます。

重複分は消しておきました。

またどうぞ

77 :hide-i :08/11/09 13:23:44 ID:6FAJ+U9c
はじめまして。

ttp://www.pati-tool.com/
遊技機向けに色々と開発を行っており、
AEと他のソフトの連携や、Director向けのツールを作っているものです。

>>48-56のシーケンス連番作成に関して問題があり、
解決にこちらのサイトの情報が役に立ちましたので、
報告させて頂きたいと思います。
例のDurationのバグと同系統の問題で、タイムリマップにsetValueするときに、
(フレーム数/Layer.source.frameRate)の小数は切捨てされるのですが、
(整数 - 1/256) 内の範囲だと、繰り上がります。
そのためシーケンス番号を生成の際に、単純にMath.floor()すると、
表示上より1少ない番号ができてしまいます。

> どうもAE7…「きちんと数値を認識」しているのではなくて、
> 「ある程度まで近似値になった指定を無理やりフレームの変化点にする」
> 処置をしているみたいです。

なぜ1/256なのかの根拠は不明なのですが、うちのAEのバージョンが7.0なので、
これに引っかかって、繰り上がってるのかもしれません。
ただ、1/256の範囲とは関係なくずれるケースもありました。
発生率は1/10000以下で、得た数値も(1/n)や1/(2^2)に該当しないので、
原因を突き止めることはできませんでした。

他、フレームレートを変えても発生率に差異は確認できませんでした。
以下、テスト用に使ったコードです。

78 :hide - i :08/11/09 13:25:57 ID:6FAJ+U9c
p = 256;
coe = 1/p;
targetItem = app.project.item(1);
layObj = targetItem.layer(1);
setLayObj = targetItem.layer(2);
layObj.timeRemapEnabled = true;
setLayObj.timeRemapEnabled = true;
timeObj = layObj.property("timeRemap");
setTimeObj = setLayObj.property("timeRemap");
compStartframe = Math.round(targetItem.workAreaStart/targetItem.frameDuration);
compEndframe = Math.round((targetItem.workAreaStart + targetItem.workAreaDuration)/targetItem.frameDuration);
for(var f=compStartframe; f<compEndframe; f++){
//毎回タイムを生成しないとずれる
var t = f/targetItem.frameRate;
remapTime = timeObj.valueAtTime(t,false);
r = remapTime * layObj.source.frameRate;
fr = Math.floor(r);
//marginは必ずプラスにする
margin = fr+1 - r;
if(margin<=coe&&margin>0){
seqNum = Math.round(r);
}else{
seqNum = Math.floor(r);
}
setTime = setTimeObj.setValueAtTime(t,seqNum/layObj.source.frameRate);
}
alert("Fin");

79 :kiyo :08/11/12 08:59:51 ID:???
hide-i 様へ
どうも書き込みありがとうございます。
最近はスクリプトまわりのプログラムにすっかりご無沙汰のねこまたやです。
シーケンス番号の特定は、当方の仕事だとほとんど発生しないので
この件は以前の話題のあと手つかずでございました。
が、なんだか難儀そうな障害がありますねぇ 1/256…気にしておくことにいたします。

AEのフレーム代表点は表示時間の冒頭なので、
当方ではフレーム番号からAEのタイムリマップの値をつくるさいに
timeRemapValue=(frameNumber*frameDuration)+(frameDuration*0.5);
こんなふうに半フレーム後方へずらせてフレーム番号の不安定さを
回避することがあります。ご参考までに
----
AEまわりのスクリプトやエクスプレッションを書いていて気になる点のひとつは、
ECMAスクリプトの環境にAE本来のオブジェクトがDOMで実装されている為、
データの振舞いがアプリケーション内部とスクリプトまわりで違うことです。
要するに JavaScriptとDOM側の値がズレるのが怖いので可能ならば最近は
本体オブジェクトのプロパティの参照を優先して外部の操作用変数を
あまり作らないで処理するように心がけております。

避> var myPosition=app.project.item(1).layer(1).position;//値を控える
myDestination=[myPosition[0],myPosition[1]/2];

望> var myTarget=app.project.item(1).layer(1);//参照を作る
myDestination=[myTarget.position[0],myTarget.position[1]/2];

以前のコードにはそうなっていない部分も多々ありますが〜 でへへ
よろしければまたどうぞ。

80 :hide-i :08/11/12 16:10:22 ID:c4FyCKzk
返信ありがとうございます。

ttp://bry-ful.ddo.jp/BRY/software/FsPlugins/Plugins_Development_diary/index.html
bryful様のページの固定小数の項が原因なのかなと思い始めています。

256に関係する数値での現象ですし、関係のない部分でずれるのは、
オーバーフロー回避の説明のように小数部の精度を犠牲にされているのかなと…
まぁ現状の発生率で1コマずれるだけなら、大きな問題ではないので、
この辺で追及は終わりにします。

なんちゃってスクリプターなので、浮動小数やbitを意識した数値が出てくると、
もう何がなんやらです。
また何かあった時はよろしくお願いします。

81 :curryegg :09/08/01 18:37:54 ID:XqAgAnSQ
以前、photoshopでのレイヤーの複数選択について書き込みさせていただいた者です。
その節は、ありがとうございました。


今回、AE6.5 のスクリプトについて質問させてください。

コンポ内のレイヤーを別のソースのフッテージアイテムと入れ替える時に、
CS4 では "replaceSource()" でソースの入れ替えが出来ますが、
6.5 ではどういった記述をすればいいのか、わかりませんでした。

調べてみてもうまく見つけられなかったので、もしご存知でしたら
教えていただけますでしょうか?
(マウス操作で言うところの、Option[Alt] + ドラッグ です)


お忙しいとは思いますが、もしお分かりでしたら宜しくお願い致します。

82 :kiyo :09/08/05 12:09:30 ID:???
いらっしゃい
AVLayer.replaceSource()は CS3からのメソッドですね。
いま手元に6.5がないので確言はできませんが、それ以前のバージョンだと
スクリプトから一回でそっくり置き換えることはできないと思います。

考えられるのは、
 新しいソースのレイヤを元のレイヤに近接させて作成・配置
 必要なプロパティをコピー
 元のレイヤを非表示または削除
というわりと迂遠な手順です。

とりいそぎ

83 :curryegg :09/08/05 20:23:08 ID:I/HOs2ck
ご返答ありがとうございます。

何か他のやり方でいい方法があればと思っていたのですが、
直接入れ替えることは出来ないのですね。残念。

元のレイヤーの全ての要素をコピーさせることも考えてはいたのですが
何かのプロパティにキーフレームがあったりする場合を考えたりすると、
ちょっと面倒なことになりそうですね・・・・

いろいろと思案してみることにします。

お忙しい中、ありがとうございました。



84 :cob :10/03/05 22:36:09 ID:d9XQlVKk
お疲れ様です。
初心者的な質問で申し訳ないのですが
上記の

> 新しいソースのレイヤを元のレイヤに近接させて作成・配置
  必要なプロパティをコピー
  元のレイヤを非表示または削除

をやってみようと試みているのですが
レイヤーをコンポ内でindex移動するところですでに
戸惑っています。
リファレンス等でmoveTo(integer index)であればいけるのかなと
ためしているのですが、
移動先indexを入れたらいいのだろうと入力しても

>>親が INDEXED_GROUP ではないので
(parentProperty.propertyType != PropertyType.INDEXED_GROUP なので)、
このプロパティに対して「moveTo」は使えません。

とエディタ上失敗のメッセージが出ます。
この場合親とは何なのでしょうか。
moveTo以外には適当な式がないのでこの壁をクリアする以外ないと思うのですが
行き詰ってしまいました。

ご教授ねがえれば幸いです。

85 :kiyo :10/03/06 22:12:01 ID:DbbUBUVE
いらっしゃい
たしかに怪しいエラーがでますね。
moveTo は使用していなかったので気づきませんでした。

レイヤの移動には
moveAfter(ターゲットレイヤ)
moveBefore(ターゲットレイヤ)
moveToBeginning()

86 :kiyo :10/03/06 22:15:03 ID:DbbUBUVE
moveToEnd()
などが使えます。
ターゲットのレイヤの上や下へ移動することができるのでもっぱらこちらを使ってます。

AEのリファレンスは結構誤記が多いので困りますよね

87 :cob :10/06/15 13:18:55 ID:YEc++SEM
お疲れ様です。
ご教授願おうと思いまして
書き込みさせていただきます。

After EffectsのCS4を導入したのですが
スクリプト周りが不具合の連続でどうにも困っております・・。

1)まず「ExtendScript Toolkit_CS4」(以下エディタ)の場合、
 UI表示などで日本語を使いたい場合、日本語が文字化けしてしまうのは
 しょうがないのでしょうか。
 英語表記にするならそれでもよいのですが
 前バージョン(7.0)ではできたのに、何故。という思いです。

2)スクリプトの実行からはちゃんとscriptファイルを実行するのに
 なぜかエディタを経由するとエラーで止まります。
 エラーが表示されている部分も構文的にはなんでもないところで
 7.0時は正常に動作していたところが
 引っかかるのが解せません。

 ただ、いまのところ引っかかる構文自体は同じもののようです。
 app.project
 このオブジェクトで引っかかります。
 しかしエディタを介さずスクリプト実行するときには
 正常なので不思議なのです。

ネット上でも同業者の方々の文献よみましたが
同じ事例はなさそうでした。
なにかこちらのシステム環境に問題があるのか
なにかヒントなりしを与えていただければと
おもいます。





88 :kiyo :10/06/15 14:40:01 ID:+PcSUGLk
いらっしゃい
仕事の都合でAE-CS3環境で留まっているので使い込んではいませんが
その症状はエンコーディング関連のようにも見受けられます。
以前(CS2=AE7あたりまで)はエンコーディングがUTF-8決め打ちでしたが、
CS3あたりからはスクリプト環境全体でマルチランゲージの対応をはじめている印象を持ってます。
(実際には突っ込んで調べてはいません…すみません)
CS5ではまたさらに各部の変更が伝えられているようですがこちらはまだ未見です。

あまりお役に立てずにすみません


89 :ユウ :10/12/13 22:06:27 ID:57voaOtk
初めまして。
ユウと申します。

今回エクスプレッションもままらない状態でスクリプトをやる事になってしまったのですが、
完全に混乱してしまった為、ご指導頂きたく質問させて頂きました。

やろうとしている事は、AEのプロジェクトウインドウ上で名前を変更した素材に対し、
ソースフッテージのファイル名も同じ名前に変更し、
且つファイルパスのリンクが切れないように処理するというのが目的です。
一応、以下の様にフッテージのみを対象にして
アイテム名とソース名の違う箇所のみ変更し入れ換える…
という感じで書いてみたのですが上手くいきません。
…というより現状ではエラーで止まってしまいます。

for(var i=1; i<=app.project.items.length; i++){
var oldName = app.project.item(i).file.name; // ソースフッテージ名
var newName =app.project.item(i).name; // AE上で変更したアイテム名

if(app.project.item(i) instanceof FootageItem){
if(newName != oldName){
oldFileObj = new File(oldName);
newFileObj = oldFileObj.rename(newName);
app.project.item(i).replace(newFileObj);
}
}
}

根本的な間違いをしている気もするのですが
何かしらヒントでも頂けたら幸いです。
こちらの環境はWinXP AfterEffectsCS4 ExtendScript Toolkitです。

お手数かと思われますが宜しくお願い致します。

90 :kiyo :10/12/23 00:31:57 ID:q9eYeT6g
いらっしゃい。>ユウさん
しばらく忙しくてサイトのチェックをしていなかったので1週間以上遅Resで失礼します。

ええと、このコードにはけっこう問題があります。
多分途中のエラーでループが終了しないと思います。

91 :kiyo :10/12/23 00:32:43 ID:q9eYeT6g

for(var i=1; i<=app.project.items.length; i++){
// ここでアイテムが総当たりになっているので
var oldName = app.project.item(i).file.name; // ソースフッテージ名
// fileプロパティを持たないアイテムではここで止まります
// 先にFootageItemの判定を行わないといけません
// アイテムのfileはプロクシが有効な場合はプロクシを指しているはずなので
// そこでも誤動作の可能性があります
var newName =app.project.item(i).name; // AE上で変更したアイテム名


if(app.project.item(i) instanceof FootageItem){
if(newName != oldName){
oldFileObj = new File(oldName);
// Fileオブジェクトをファイル名だけで初期化するにはカレントフォルダをファイルのあるフォルダに移動する必要があります。
// このコードではファイルが正常にハンドリング出来ない可能性が高いです。
// オリジナルのファイルを参照しておいた方が良いです。
// myFile=new File(myItem.mainSource.file.fsName) 等の方が良いでしょう。
// リネームしたあとでも myFileは該当ファイルの参照が可能です
// つまり myItem.replace(myFile) として使えるので newFileObjを作る必要はありません
newFileObj = oldFileObj.rename(newName);

//リネームした時点でソースファイルをロストしますので、注意が必要です
app.project.item(i).replace(newFileObj);
// replaceメソッドでファイルを置き換える場合は、注意が必要です。
// ファイルが連番の場合やPSD等のファイルオブジェクトのみでは素材が特定出来ないケースがあります
}
}
}
という感じです。参考になれば

92 :ユウ :10/12/24 13:21:10 ID:qJZ54Ow+
kiyo様

お世話になります。
何だかお恥ずかしいスクリプトを見せてしまいまして恐縮です…
書き込み後も色々試しまして、ソースのリネームまで漕ぎ着けたのですが
ファイルパスの差し換えのreplace()でつっかえてしまい、
一旦、パスを文字列に分解など試していた所でした。

今回、添削して頂いた部分を参考に再度挑戦してみます。

完成しましたら追ってご報告致します。
ありがとうございました。


93 :ユウ :11/01/28 21:24:27 ID:9/367vkQ
kiyo様

ご報告が遅くなりましたが、ご指摘部分を参考に
拙いながらもスクリプトが完成しました。
ありがとうございました。

94 :SRX :11/09/15 17:48:02 ID:ARBw0/SQ
kiyo様。はじめまして。

もっていないプラグインが適用されたエフェクトの調べ方がわかりません・・・。
プラグイン自体はもってなくても、
エフェクトの下に「見つかりません」と表示されますが、
これがスクリプトでは名前も取得できて、
canAddPropertyでもエラーにならないのです。

もし何か御存知でしたら御教授ください。
よろしくおねがいします。

95 :kiyo :11/09/24 10:23:11 ID:WUFBaqoE
いらっしゃいSRXさん
しばらく忙しくてBBSをチェックしていなかったので遅くなりました。

どういう処理が必要かで対処は変わるかと思います。
存在しないエフェクトはエラーにはならないで処理がスルーされる
だけなので、個別に対処が必要かと思います。

特定のエフェクトを削除するのが目的ならmatchNameで検索するのが
良いと思います。

汎用的に持っていないエフェクトを抽出するのが目的ならば、
読み込み直後に名前に「見つかりません」が含まれている事を
利用すれば検出可能かなと思います。

if(hoge.isEffects)&&(hoge.name.indexof("見つかりません")>=0)

↑こんなカンジで処理するくらいでしょうか

…もう解決しちゃったかもしれませんが


96 :SRX :11/09/26 14:36:47 ID:uWd4NSM2
お忙しい中、回答ありがとうございます。

御指導に基づきためしてみましたところ、
hoge.nameでは 【 :(コロン) 】 より手前の部分を
バッサリと捨て去っているようで、indexOfでも当然拾えませんでした。
つまり「見つかりません:NAIYO EF」では「NAIYO EF」だけが表示されます。
(ここで見つかりませんが表示されていれば、ここまで苦しんでなかったわけですが...)

hoge.instanceName みたいなプロパティがあるのでしょうか。。。

・・・まだ解決しちゃってないのです...。 

97 :SRX :11/10/14 13:54:46 ID:5kg1zdh2
解決したわけではないのですが、CS5.5に追加された
app.effects オブジェクトの存在が、まさに私の求めていたソレでした。
・・・つまり、CS4では実現が難しい事だったのですね ;_;

泥臭いというか、回りくどいというか、プラグインフォルダにある
プラグインのバイナリをサーチしてインデックスを作る方向で考えてみます。

ひとまずありがとうございました。

98 :WACHI :14/07/06 12:46:56 ID:JXM84N6Y
初歩的な質問で申し訳ないのですが、
タイムシートの適用方法がわかりません。

チュートリアルビデオを見ながらやってみたのですが、「編集をポチ」の編集とはどこでしょうか?
PsAXEで「XPS編集」を押して設定画面を出すところまではできるのですが…
あとそれを繰り返しているとXPSビューアで開くことが出来ませんと出るようになり、設定画面も出なくなります。

りまぴんとFirefoxはインストール済みです。
よろしくお願いします。

99 :kiyo :14/07/07 11:10:10 ID:rh19OGow
WACHIさん ようこそ
ご質問の件です

AIR版の「りまぴん」のインストールは、なされたでしょうか?

拡張子xpsのデータは、現在の標準的なWindows環境ではマイクロソフトのデータファイルに関連付けられています。
「XPSビューア」はその表示用アプリケーションです。

「りまぴん」の拡張子はこれとカブっています。

AIR版の「りまぴん」をインストールするとこの設定を上書きして、拡張子XPSのデータを「りまぴん」側に関連付けできます。
拡張子の関連づけの警告が出る場合は、「りまぴん」側を有効にする必要があります。

現状ではPsAxeをフルスペックでインストールするのはちょっと複雑なので、どうもすみませんです
来週辺りに配信でインストールをやろうかと思ってます

100 :WACHI :14/07/08 01:59:35 ID:3bKQo6Q+
最初AIR版ではないりまぴんをインストールしてしまい、その後AIR版をインストールし直しました。

そのうち配信でインストールをなさるとのことですので、それを待ちます。
ツイッターなどで告知されますか?

ありがとうございました!

101 :1 :22/03/02 21:32:47 ID:/ayCtnt2
555

62KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail(省略可)

0ch BBS 2004-10-30 (+Nekomataya/2005-02-17)