無題
無題
あけましておめでとうごさいます。
以前質問したんですが名前は忘れてしまったので新たにしました。
[1]ソースファイルのscoreとういうすべての変数をsave.scoreになおしたいのですが
この操作を簡単にできるエディタを教えてください。これができると例えば漢字の間違いなどが
起こったとき非常に便利なので知りたくなりました。
[2]DXライブラリである部分をぼかしたいです。どのようにすればいいのですか?もし、よろしければ関数が
あれば示してくださるとうれしいです。
[3]透過処理についてです。私はttp://homepage2.nifty.com/pyonpyonpyopyon/でロゴを作成していますが
透過処理すると文字の周りが白抜きにされて非常にいやです。今まで(今でも)拡大して文字の淵を塗って直しています。白抜きにならない簡単な方法はありますか? 知ってたら教えてください。
以上の3点です。どれでもよいのでお願いします。
以前質問したんですが名前は忘れてしまったので新たにしました。
[1]ソースファイルのscoreとういうすべての変数をsave.scoreになおしたいのですが
この操作を簡単にできるエディタを教えてください。これができると例えば漢字の間違いなどが
起こったとき非常に便利なので知りたくなりました。
[2]DXライブラリである部分をぼかしたいです。どのようにすればいいのですか?もし、よろしければ関数が
あれば示してくださるとうれしいです。
[3]透過処理についてです。私はttp://homepage2.nifty.com/pyonpyonpyopyon/でロゴを作成していますが
透過処理すると文字の周りが白抜きにされて非常にいやです。今まで(今でも)拡大して文字の淵を塗って直しています。白抜きにならない簡単な方法はありますか? 知ってたら教えてください。
以上の3点です。どれでもよいのでお願いします。
Re:無題
[2]をとりあえず作ってみました。
http://www1.axfc.net/uploader/Sc/so/69565
Key : kazuoni
back.jpgを用意し(640*480推奨).exeと同じ場所に入れてください。
が、関数公開の前に、質問をさせてください。。
現在、線形フィルタのかけ方は、
1、画像をLoadSoftImageで読み込む
2、線形フィルタを指定範囲に適応
3、SoftImageからグラフィックハンドルを取得
のようにしています。
キー入力があったらグラフィックハンドルを消して、
線形フィルタ適応範囲を移動させて、再度1からはじめていますが、
まずこれではFPSを出すことはできません。
これを修正するにはどうしたらよいでしょうか?
まず線形フィルタを適応するにはイメージハンドルが必須だとは思いますが、
グラフィックハンドルからイメージハンドルを生成できればもう少し高速化できるのかな
と思うのですが・・・やり方がわかりません。
#追記
3の後は、イメージハンドルを消去し、グラフィックハンドルを保持・描写に使っています。
何か変化が出たら再度やり直しってことでした。
これよりは、SetDrawScreenで描写先に指定したものから指定範囲のピクセルを
取得・変更したほうが早いかもしれない・・・。
が、広範囲にはかなり厳しい気がします・・・。
ご教授よろしくお願いします。。
質問者以外がここで質問することが不適切でしたら、新スレを立てようと思います。
http://www1.axfc.net/uploader/Sc/so/69565
Key : kazuoni
back.jpgを用意し(640*480推奨).exeと同じ場所に入れてください。
が、関数公開の前に、質問をさせてください。。
現在、線形フィルタのかけ方は、
1、画像をLoadSoftImageで読み込む
2、線形フィルタを指定範囲に適応
3、SoftImageからグラフィックハンドルを取得
のようにしています。
キー入力があったらグラフィックハンドルを消して、
線形フィルタ適応範囲を移動させて、再度1からはじめていますが、
まずこれではFPSを出すことはできません。
これを修正するにはどうしたらよいでしょうか?
まず線形フィルタを適応するにはイメージハンドルが必須だとは思いますが、
グラフィックハンドルからイメージハンドルを生成できればもう少し高速化できるのかな
と思うのですが・・・やり方がわかりません。
#追記
3の後は、イメージハンドルを消去し、グラフィックハンドルを保持・描写に使っています。
何か変化が出たら再度やり直しってことでした。
これよりは、SetDrawScreenで描写先に指定したものから指定範囲のピクセルを
取得・変更したほうが早いかもしれない・・・。
が、広範囲にはかなり厳しい気がします・・・。
ご教授よろしくお願いします。。
質問者以外がここで質問することが不適切でしたら、新スレを立てようと思います。

Re:無題
サンプル画像
http://www42.tok2.com/home/tuk2nd/bbs/img/28.png
※サンプル画像は龍神禄のフェイス画像を使わせて頂きました。
>ぼかし
それっぽく見えるだけで良いのでしたら
アルファブレンドで左右にぶれさせて描画すれば
雰囲気は出ると思います。
添付画像はキャラ全体でぶれさせていますが、
マスク処理とあわせれば部分的に行うこともできます。
※サンプル画像は左右と上方向にぶれさせています。
http://www42.tok2.com/home/tuk2nd/bbs/img/28.png
※サンプル画像は龍神禄のフェイス画像を使わせて頂きました。
>ぼかし
それっぽく見えるだけで良いのでしたら
アルファブレンドで左右にぶれさせて描画すれば
雰囲気は出ると思います。
添付画像はキャラ全体でぶれさせていますが、
マスク処理とあわせれば部分的に行うこともできます。
※サンプル画像は左右と上方向にぶれさせています。
int hHaikei,hCharface; hHaikei = LoadGraph( "背景.jpg" ) ; hCharface = LoadGraph( "face.png" ) ; /* //////////////////////////////////////////////////////////////// メインループ */ //////////////////////////////////////////////////////////////// while( ProcessMessage() == 0 ) { SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 255 ) ; //背景 DrawGraph( 0, 0, hHaikei, FALSE ) ; //左キャラ通常 DrawGraph( -50, 80, hCharface, TRUE ) ; //右キャラ通常 DrawGraph( 250, 80, hCharface, TRUE ) ; SetDrawBlendMode( DX_BLENDMODE_ALPHA , 100 ) ; //右キャラ ブレンド DrawGraph( 250, 80-3, hCharface, TRUE ) ; DrawGraph( 250-3, 80, hCharface, TRUE ) ; DrawGraph( 250+3, 80, hCharface, TRUE ) ; // スクリーンに反映 ScreenFlip() ; } /* // while 閉じ // */
Re:無題
□ 428さん
> [2]DXライブラリである部分をぼかしたいです
> ある区間にある画像をぼかしたいです
区間、ということはレンダリング済みの画像の一部分をぼかしたい、ということでしょうか。
1 空のテクスチャに対しレンダリングを行う。
2 ぼかしたい部分の区間座標(影響範囲)を計算し、その部分だけをくりぬいたテクスチャを作る
3 1を普通に表示した後、半透明で薄くした2のテクスチャを少しずつ表示位置をずらしながら何度も描く
という方法はどうでしょうか?
# おっと、かぶってしまった
□ kazuoniさん
空間フィルタ的なそういう処理を高速でやりたいなら DirectXとかで GPUを使ってやるのが
いいかと思うのですが、1点だけ。
「3 SoftImageからグラフィックハンドルを取得」はどの関数を使っていますか?

> [2]DXライブラリである部分をぼかしたいです
> ある区間にある画像をぼかしたいです
区間、ということはレンダリング済みの画像の一部分をぼかしたい、ということでしょうか。
1 空のテクスチャに対しレンダリングを行う。
2 ぼかしたい部分の区間座標(影響範囲)を計算し、その部分だけをくりぬいたテクスチャを作る
3 1を普通に表示した後、半透明で薄くした2のテクスチャを少しずつ表示位置をずらしながら何度も描く
という方法はどうでしょうか?
# おっと、かぶってしまった
□ kazuoniさん
空間フィルタ的なそういう処理を高速でやりたいなら DirectXとかで GPUを使ってやるのが
いいかと思うのですが、1点だけ。
「3 SoftImageからグラフィックハンドルを取得」はどの関数を使っていますか?

Re:無題
ちょっと考えましたが、
やはり、フィルタはDXライブラリのごり押しでは厳しかったかもしれないですorz
それっぽく見せるのはSooAさん、Justyさんがおっしゃっている
方法を強くお勧めします。
っというか、ゲームのぼかしならばそれぐらいで十分かと^^;
(フィルタはノイズ処理とか、エッジ抽出が主な目的ですしね。。)
混乱させてすみません。
自分でこれと決めたらそれをやろうとして、柔軟に考えれてませんでした。。
とりあえず、自分の作ったやつUPしておきます。
AveragingFilter.h , AveragingFilter.cpp
をプロジェクトに通し、AveragingFilter.hをインクルードしてください。
詳しくはread meを見てください。
使い物にならないですが・・・orz
なにかアドバイスがありましたら、よろしくお願いします・・・。
やはり、フィルタはDXライブラリのごり押しでは厳しかったかもしれないですorz
それっぽく見せるのはSooAさん、Justyさんがおっしゃっている
方法を強くお勧めします。
っというか、ゲームのぼかしならばそれぐらいで十分かと^^;
(フィルタはノイズ処理とか、エッジ抽出が主な目的ですしね。。)
混乱させてすみません。
自分でこれと決めたらそれをやろうとして、柔軟に考えれてませんでした。。
とりあえず、自分の作ったやつUPしておきます。
AveragingFilter.h , AveragingFilter.cpp
をプロジェクトに通し、AveragingFilter.hをインクルードしてください。
詳しくはread meを見てください。
使い物にならないですが・・・orz
なにかアドバイスがありましたら、よろしくお願いします・・・。
Re:無題
> なにかアドバイスがありましたら
1 画像ファイルを読み出し(普通の)イメージハンドルを作るのと同時に、
メモリに RGBイメージを保持しておきます。
2 MakeGraphでフィルタの適用範囲サイズ分の空のイメージハンドルを作ります。
3 2と同じサイズ分のメモリバッファを別に用意し、そこにフィルタをかけた BMPイメージを作って、
ReCreateGraphFromBmp関数で2のイメージハンドルの中身を入れ替えます。
4 1を表示したあと、3を表示します。
これなら処理はフィルタの適用範囲だけで収まりますので、処理としては大分軽くなるかと
思いますがどうでしょう?
Re:無題
返信が遅れました。。持ち上げすいません。
おっしゃるとおり、猛烈に軽い処理になりましたw
相変わらず頭が固いです・・・。
Justyさんの方法を応用すれば、
フィルタをかける可能性のある画像は、
独自のクラス(RGBイメージ保持)
で画像を取得し、そのスーパークラスで描写を管理すれば、
ほかにもフィルタの形(円も含めて)をユーザー指定できるようにしたり、
フィルタの種類を増やして機能を追加したりなど、
結構いろいろなことができそうな気がします。
が、いかんせん、時間も需要もなさそうなので、余力があれば作成することにします^^;
> 428さん
私的なことでレスが長くなってしまってすみませんでした。
おっしゃるとおり、猛烈に軽い処理になりましたw
相変わらず頭が固いです・・・。
Justyさんの方法を応用すれば、
フィルタをかける可能性のある画像は、
独自のクラス(RGBイメージ保持)
で画像を取得し、そのスーパークラスで描写を管理すれば、
IsDrawFilter(TRUE); SetFilter(Fx,Fy,Fwidth,Fheight,Flevel); DrawFGraph(...);なんて結構楽にかつ軽い処理で実現できそうです。
ほかにもフィルタの形(円も含めて)をユーザー指定できるようにしたり、
フィルタの種類を増やして機能を追加したりなど、
結構いろいろなことができそうな気がします。
が、いかんせん、時間も需要もなさそうなので、余力があれば作成することにします^^;
> 428さん
私的なことでレスが長くなってしまってすみませんでした。