質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

1回答

9617閲覧

processingでの画像のフェードイン・フェードアウトについて

yakisobapan

総合スコア6

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2016/12/22 12:11

現在、processingでソフトを制作している、デザイン学生です。画像をフェードインしてから3秒表示させ、その後フェードアウトして次の画面を表示させる方法がわからず困っています。

自身でコードをかいてみましたが、画像が出てこず、元の状態に戻そうとしても
void setup(){のところにDuplicate methodと出てしまい、戻らなくなってしまいました。参考として、
http://mslabo.sakura.ne.jp/WordPress/make/processing%E3%80%80%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/%E7%94%BB%E5%83%8F%E3%82%92%E9%80%8F%E6%98%8E%E3%81%AB%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF/
を使用しました。どなたか助けていただけませんでしょうか。よろしくお願いします。

以下、コードです。
float alpha;
boolean cngAlpha;
boolean fadeMode;

void setup(){
size(1980, 1080);
background(0);

PImage tonto = loadImage("1-01.png");
PImage device = loadImage("1-02.png"); //kesuyatu
image(device,0,500,500,500);

//tukauyattu

cngAlpha = false;
fadeMode = false;
//
if( cngAlpha == true ){
if( fadeMode == true ){
fadeIn();
} else {
fadeOut();
}
}

tint(255f,alpha);
image(tonto,450,450,500,500);
}
void fadeIn(){

alpha = alpha + 4f;

if( alpha > 255f ){
alpha = 255f;
cngAlpha = false;
}
}
void fadeOut(){

alpha = alpha - 4f;

if( alpha < 0f ){
alpha = 0f;
cngAlpha = false;
}
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

setup()はいわば初期設定を行うメソッドですので、動的に動かそうとするロジックはdraw()に書くのが一般的ではないかと思います。

processing

1float alpha=0.0F; 2boolean fadeMode; 3PImage[] imgs; 4int cnt = 0; // 3秒待機用 5int mcnt =0; // 画像カウンタ 6 7// 初期設定 8void setup(){ 9 size(1000, 500); 10 frameRate(20); // とりあえず20フレーム/秒で指定 11 imgs = new PImage[]{loadImage("1-01.png"),loadImage("1-02.png")}; 12 fadeMode = true; 13} 14 15// 描画の記載 16void draw() { 17 background(0); 18 if(mcnt <= imgs.length-1){ 19 execFade(imgs[mcnt]); 20 } else { 21 //すべての動画を表示した後はプログラム終了 22 for (PImage img : imgs) { 23 img = null; 24 } 25 exit(); 26 } 27} 28 29//引数にしている画像をFadeIn→3秒停止→FadeOutする処理 30//FadeOutしたらmcntを1つ上げて、次の動画の処理を行えるようにする 31void execFade(PImage img){ 32 tint(255f,alpha); 33 image(img,mcnt*500,0,500,500); 34 // 秒数はFrameRateを考慮する必要があります。 35 if (cnt >= frameRate*3) { 36 fadeMode = !fadeMode; 37 cnt = 0; 38 } 39 if (fadeMode) { 40 // IN 41 if (alpha < 255.0F) { 42 alpha = alpha + 4f; 43 cnt = 0; 44 } else { 45 alpha = 255f; 46 cnt++; 47 } 48 } else { 49 // OUT 50 if (alpha > 0.0F) { 51 alpha = alpha - 4f; 52 cnt = 0; 53 } else { 54 println("next!!"); 55 fadeMode = !fadeMode; 56 cnt =0; 57 mcnt++; // 次の画像に進むためのカウンタを+1 58 } 59 } 60} 61

適当に書きましたのでちょっと蛇足ぎみの箇所もあるとは思いますが、とりあえず、「指定した動画を順にFadeIn/Outさせて表示する」というのは、実現できていると思います。(versionは2.0です。)
思ったのと違った場合は、すいません。

投稿2017/02/07 05:46

anada

総合スコア43

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問