[雑談]自作ツール公開

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kazuoni

[雑談]自作ツール公開

#1

投稿記事 by kazuoni » 16年前

お邪魔します。

自作ツールの試作品ができましたので、ご報告します。

今回は前回のツールの延長なんですが^^;
前回のDOT_getterは静止画のみで、アニメーションが使えませんでした。
そこで、アニメーション再生ツールをまず作りました。
今回公開する「DOT_getter~animation~」に不都合がなければ、
二作を合体させて、+αをつけようと思っています。

まずは皆様に使用していただいて、不都合、バグがないか見てもらいたいです。
一枚アニメーション画像を用意していただかないといけないのですが・・・orz
キャラチップ、エフェクト画像・・・など有効です。

できるだけ日常使うようなアプリケーションに似せるために、

・入力フォーム
・クリックボタン
・センタリング

等々自作関数がんばりました。やっぱりAPIが使えると楽ですね。。
入力フォーム苦労しました。。

DLはURL→SOFT→DOT_getter~animation~
からできます。

よろしくお願いします。
長文失礼しました。

Justy

Re:[雑談]自作ツール公開

#2

投稿記事 by Justy » 16年前


>皆様に使用していただいて、不都合、バグがないか見てもらいたいです

 面白そうなので、早速試してみました。
 で、問題が幾つか見つかったので列挙します。

□ 画像ファイル登録画面

・ 画像ファイルを認識しない
 ShiftJISにない Unicode文字が入ったパス(©とかヷ)にある
画像をドラッグ&ドロップしても画像を認識しません。


□ セル分割数設定画面

・ 数を増やしていくと、画像に対して引かれるラインの数が足りない事がある(e000)。


□ アニメセル登録画面

・ 2つ同時に登録される
 アニメ登録画面でセルとセルの境界をクリックすると2つのセルが同時に登録されます
 4つのセルの境をクリックすると4つ同時に登録することもできます。
 尚、この方法で55個目になったとき次のページへ切り替わらないことがあります。

・ 73個目以降で文字が重なる(e001)
 セルの分割数が X, Yそれぞれ 10以上で、73個目以上の登録を行うと、
55個目からの文字と重なることがあります。

・ アニメプレビュー画面から戻ってきたときに2ページ目が表示されない
 セル登録画面で2ページまで登録してから、プレビュー画面に進み
再び戻ってくると2ページ目が表示されていません。
 この状態で追加を行っても何を追加したか不明な状態となります。

□ アニメプレビュー画面

・ 再生速度を上げ下げすると落ちる
 最大数までアニメを登録します。
プレビュー画面で連続再生状態で再生しながらスピードスライダーを上げていき
最大のところでゆっくり上げ下げをしたり、クリックを繰り返すと
時々0x0404427のところでアクセスエラーが発生し、アプリが落ちます。

 多分スライダを動かしているときとカウンターのリセットのタイミングが
重なったタイミングで、アニメのセル分割数を決めたときにアロケートした領域を越えて
アクセスしていると思われます。

kazuoni

Re:[雑談]自作ツール公開

#3

投稿記事 by kazuoni » 16年前

Justyさん、ご協力ありがとうございます!!
うわぁ・・・。
これは問題作品ですね^^;
これほど不都合・バグがあったとは。。

>画像ファイルを認識しない
char file_path_buffer[1000];
GetDragFilePath(file_path_buffer);
LoadGraph(file_path_buffer);
これで-1が帰ってきたらエラーと認識させるようにいしているのですが、
ShiftJISにないUnicode文字が入った場合は本家に聞かないといけませんね。。


>数を増やしていくと、画像に対して引かれるラインの数が足りない事がある

自分でも認識していたのですが、計算方法が間違っていたのに今気が付きました。
除算の際に、小数をまったく考慮していなかったことが原因でした。


>2つ同時に登録される

ボタン判定ですべて指定座標-1ができていませんでした。


>アニメプレビュー画面から戻ってきたときに2ページ目が表示されないアニメプレビュー画面から戻ってきたときに2ページ目が表示されない

描写のタイミングによってカーソルが表示されていませんでした。。
今回は描写が多く、一つのモードを一つの関数で管理しようとすると
かなり入り組んでしまうと思ったため、
判定と描写は別の関数で処理しています。
そこで起きた描写のタイミングの違いがもたらしました。
あとなぜか2ページ目に無駄な番号が描写されていますね。。


>再生速度を上げ下げすると落ちる
なかなか確認できません。。
10回やって一回ヒットするぐらいなのですが。。
こんなの絶対に見つけられませんでした。


>画像ファイルを認識しない
の良い解決法がありましたご教授お願いします。


今日か明日にバージョンアップしておきます。
その時はまたよろしくお願いします。

Justy

Re:[雑談]自作ツール公開

#4

投稿記事 by Justy » 16年前

 いや、でもよくここまで作りましたね。
 入力のインターフェース周りに、結構時間かかったんじゃないですか?


>ShiftJISにないUnicode文字が入った場合は

 多分自前で WM_DROPFILESメッセージを捉えて処理するしかないんじゃないかと
思います。

 でもこれは無理に対応する必要はないかと思いますよ。
 この制限で引っかかるようなところに画像は置くな、ということで。


 あと、上のは主に不具合でしたが、不都合(?)というか要望の方を。
 本当は実際に使う or 使いたい人からの要望の方がいいとは思うのですが、
多分誰からも出るんじゃないかなぁ的なものをピックアップしてみました。

□ アニメプレビュー画面

・ スライダーをドラッグ中にマウスカーソルが外れるとドラッグが解除されてしまう
 一般的な挙動として、ドラッグ中は明示的にマウスのボタンを離さない限り
(動かなくても)ドラッグ状態を維持し続けて欲しいです。

・ 画像のリロードの機能の追加
 画像サイズが変更されていないことを条件に、今の画像を一端破棄し再読込する機能です。
 ここでプレビューしたときに、何か画像に不具合があれば別のツールで編集すると思いますが
そのとき再度プレビューするには、最初の画面まで戻って画像を読み込み直し、
分割数をセットして、アニメパターンを登録してという手順を再度行わなければなりません。

 この手間を省く為のリロードです。
(或いは設定を保存できてもいいですね。設定を読み込めばすぐプレビュー画面になる、とか)

kazuoni

Re:[雑談]自作ツール公開

#5

投稿記事 by kazuoni » 16年前

あ、入力はフォームではなく、インターフェースというのですか^^;
DXライブラリにも入力をさせる関数KeyInputNumber()があるのですが、
これだと処理ESCキーのみ有効で、あとは何の入力も受け付けないんですよね。。
普段自分たちが使うのより自由度がかなり低かったので、
いっそのことすべて自作してしまえばっと思いまして^^;
ただ、
・数字入力のみ
・バックスペース・デリートキー使用
・カーソル動作
・欄クリック時の背景

など、やる事が山積みでした。
とにかく今後にも使えるように関数化したかったので、
かなり大変でした。(今回は3桁数字の動作までしか実現していませんが。。)


>スライダーをドラッグ中にマウスカーソルが外れるとドラッグが解除されてしまう
これは完全に頭にありませんでした。。
確かに動かしづらいですね。。

>画像のリロードの機能の追加
これは検討していたんですが、やはりあったほうがいいですね。
これなんですが、ドラッグして、サイズに間違いなければ、
プレビュー画面まで飛ぶで良いですかね?


あと先ほどの不具合の報告の中で、
>数を増やしていくと、画像に対して引かれるラインの数が足りない事がある(e000)。
とありました。
これなのですが、実際、セル化されるのは以下のようになっています


640×480のサイズの画像を17×1に分割した場合
1セルの大きさは37×480

となります。ゆえに、(630,480)~(640,480)はカットされます。
ここを考慮していなかったので線描写がおかしかったのです。
解決策としてなのですが、このまま、線描写の際もカットするでよいでしょうか?
余りを最初のセルから順に+1していくということもできますが、
これだと1セルの大きさが変わってしまい、セルがずれていってしまいます。
これはアニメーションにおいてご法度だと思うのですが。。

kazuoni

Re:[雑談]自作ツール公開

#6

投稿記事 by kazuoni » 16年前

今よく調べたら、
DXライブラリ関数を使えばもうちょっと簡単に
入力欄はできましたねorz
次回からはそちらを使おうと思いますorz
ただ、MakeKeyInput等を使うとなると、
左からの描写は強そうですけど、
今回自分がやってるような右から描写にはちょっと弱そうですね。。
まぁ、今回自分が作った関数よりはるかに簡潔に書けそうですけど^^;

Justy

Re:[雑談]自作ツール公開

#7

投稿記事 by Justy » 16年前


>いっそのことすべて自作してしまえばっと思いまして

 なるほど。



>これは検討していたんですが、やはりあったほうがいいですね。
>これなんですが、ドラッグして、サイズに間違いなければ、
>プレビュー画面まで飛ぶで良いですかね

 ないよりは有った方がいいかな、と。
 
 画像編集ツール側で有る程度プレビューができる機能があるなら、
要らないのですが、無い場合やはり「プレビュー -> 修正 -> プレビュー」のフローを
繰り返すのはなかなか大変かと思います(特に分割数やアニメ数が多いと)。


 うーん、でもドラッグとリロード、どちらがいいんでしょうね。
 想定していたのは、プレビュー画面上のリロードボタンを押したら
同じファイル名のものを、テクスチャサイズチェックだけして読み込み直す、
ものでした。

 比較のために別のファイル名のも同じ設定ですぐプレビューしたいということなら
ドラッグの方がいいのかもしれません。



>セル化されるのは以下のようになっています

 UV分割は整数で行っているわけですね。
 
 なら、余った部分は表示しない、或いはグレー表示にして、
更にそういう表示されない部分が存在することをどこかに文字に出して
(それがどれぐらいあるのか、も)明確にする、というのがいいのでは
ないでしょうか。



>DXライブラリ関数を使えばもうちょっと簡単に入力欄はできましたねorz

 あー、そういう関数もあるんですね。
 でもこの一連の関数はヘッダみただけではちょっと判りづらいです……。

 簡単に、ということなら私なら、別ウインドウに普通の Windowsのコントロールを
表示して、DXライブラリの表示と連動させる方法をとると思います。

 1つのウインドウに通常の Windowsコントロールと DirectXの表示(ピクチャーボックス)を
まとめてしまってもいいかもしれませんが、それがDXライブラリで出来るかどうか……。

Dixq (管理人)

Re:[雑談]自作ツール公開

#8

投稿記事 by Dixq (管理人) » 16年前

遅くなりました。

おぉ!おもしろいですね^^
これだけのインターフェイスを考え、実装するの大変だったでしょうね。

ツール作りって面白いですよね。
私も普段ゲームばかりじゃなく、色々とツール作ったりしますが、
ゲームには無い面白さがありますよね。

いつかサンプルプログラミングの館に追加してみようかなっ。

>Justyさん

掲示板ランク昇進おめでとうございます(笑

Justy

Re:[雑談]自作ツール公開

#9

投稿記事 by Justy » 16年前


>掲示板ランク昇進おめでとうございます(笑

 あ、ありがとうございます(w
 管理人さんもあと3,4ヶ月くらいで次のランクに行きそうですね。
 さすがに私にはそこまでは無理そうです……。

kazuoni

Re:[雑談]自作ツール公開

#10

投稿記事 by kazuoni » 16年前

自分もかなり遅れました。。長い間放置で済みませんでした。。
やっと[一応]は完成はできました^^;
また自分のページの
SOFT→DOT_getter~animation_mode~(Ver1.1)
からDLできます。

Justyさんの指摘・アドバイスを受けたところはすべて実現したつもりです^^;が、
いかんせん、ファイル処理が全く慣れておらず、
本当に苦労しました。。こんなに難しいんですね。。
C言語しか手につけていないので分かりませんが、
あまりテキスト処理は向いていないのかなと^^;
そんなことないですかねw
特定の部分を同じテキストファイルに上書きするってすぐできるものだと思っていましたw(えっ
またバグ出そうです。。

>これだけのインターフェイスを考え、実装するの大変だったでしょうね
正月はこれで潰れましたww
一回やり始めちゃうと止まらないんですよね^^;
これでやっと心おきなく寝れますww

>いつかサンプルプログラミングの館に追加してみようかなっ。
ぜひ、自分のものも置いてください♪


またご指導のほど、よろしくお願いします。。


Justyさん、昇進おめでとうございますw

Justy

Re:[雑談]自作ツール公開

#11

投稿記事 by Justy » 16年前


>やっと[一応]は完成はできました^^;

 ではちょっくらチェックでも。
 
 と、心おきなく寝てるところ心苦しいですが、もうあと少し、気がします。


□ GUI全般

・ 「前に戻る」がない画面がある

 プレビュー画面から遷移する「画像挿入画面」や「設定保存画面」に戻るがありませんが、
これはいいのでしょうか?


・ ボタンの挙動

 このアプリでは画面上のボタンに対し、マウスカーソルを合わせてマウスの左ボタンを押した瞬間反応しますが、
通常一般的なボタンは、離した瞬間に動作します。

 この違いは特に気にする必要はないでしょうか?


□ 画像表示全般

・ 透過色の設定がされている
 画像に黒い部分があると、背景を白くしたときにその部分が抜けてしまいます。


□ セル画確認画面

・ 画像だけでなく、動画を読み込むことができる

 動画(avi)をドラッグ&ドロップして、一端ウインドウを裏に(非アクティブ)して
からアクティブにすると動画の再生が始まります。

 これはこれでいいのかもしれませんが。
 
 再度、画像ドラッグ&ドロップ画面に戻ると、画像は表示されませんが
動画の音声部分が流れたままになります。

 そこで更に別の動画をドラッグ&ドロップし、先ほどと同じく一度非アクティブにしてから
アクティブにすると、今回の動画(音声込み)で再生されますが、やっぱり前の動画の音も
再生されっぱなしになります。



>Justyさん、昇進おめでとうございますw

 ありがとうございます。

kazuoni

Re:[雑談]自作ツール公開

#12

投稿記事 by kazuoni » 16年前

昨日は心おきなく寝てました^^;

>「前に戻る」がない画面がある
すっかり忘れていました。

>ボタンの挙動
確かに言われてみると違和感があります。
幸い、ボタンは関数化してあるので、すぐに修正はできました。
(まだUPしていませんが。。)

>透過色の設定がされている
これは画像を用いるソフトでは欠かせなかったですね。。
なんとか、ユーザーがマウスで指定(クリック)したところの色をドット単位で取得し、
透過色にセットできそうです。

>画像だけでなく、動画を読み込むことができる
申し訳ないのですが、これだけ確認ができません。
LoadGraphする際、-1が返ると認識エラーとなっています。
・・・mp3とか入れても正常に動きませんね。。
LoadGraphを呼び出すとなにも返ってこないみたいです。
こうなったら、ファイル名(パス)取得の際、拡張子を読み、BMP,JPEG,PNG,DDS,ARGB,TGAのみ認識させる
でないとうまくいかないですかね。。

もうちょっとしたら再度UPします。
本当にご迷惑をおかけして申し訳ありません。

Justy

Re:[雑談]自作ツール公開

#13

投稿記事 by Justy » 16年前


>これは画像を用いるソフトでは欠かせなかったですね。。

 透過が必要なケースもありますが、要らないケースもあるんですよね。



>申し訳ないのですが、これだけ確認ができません。
>LoadGraphする際、-1が返ると認識エラーとなっています

 そうですか。
 うちで試したのは aviファイルでした。

 LoadGraph()などは、ファイルが存在しているのに画像ファイルとして
読み込みに失敗すると動画ファイルかもしれないと想定して読み込む機能がありますが、
ひょっとすると何か環境的に何かあるのかもしれませんね。

 失敗したときの Log.txtをみてみると、何かわかるかもしれません。

kazuoni

Re:[雑談]自作ツール公開

#14

投稿記事 by kazuoni » 16年前

修正やっと終了しました^^;

結局はボタンの修正に一番時間がかかりました^^;
うまくいったようで、ずっといきませんでした。。

透過色なんですが、
.bmpではもともと透過色が設定されていても、指定がなければ透過がされなく、
透過色を指定すればその色が透過色となる。
.png、.jpgではもともと透過色が設定されていれば、透過がされ、
透過色を指定してもその色が透過色とならない。

ようです。自分が実行して得た結果ですが。。
DXライブラリのフォルダに入っているtest4.bmpで透過されるのは確認しましたが、
それ以外はなんだかうまくいかないです。
ドット単位にアクセスして、RGBを、透過色を見てみたのですが、透過部分は
test4.bmpは(R,G,B,a)=(255,0,255,0)
でした。これだとあまり使用されないですかね^^;
うーん。本家相談が必要でしょうか?
実装の仕方がおかしいのでしょうか・・・?

例によって自分のサイトにUPしました。
またまたまたよろしくお願いします。



・・・成人式のスーツ、クリーニングに出したままだっ!!

Dixq (管理人)

Re:[雑談]自作ツール公開

#15

投稿記事 by Dixq (管理人) » 16年前

おっ、明日成人式ですか?(ノ▽`)ノ

kazuoni

Re:[雑談]自作ツール公開

#16

投稿記事 by kazuoni » 16年前

今日一日早いですが、自分たちは成人式でした^^;

ムンバ

Re:[雑談]自作ツール公開

#17

投稿記事 by ムンバ » 16年前

こんばんはっ!

知識が足りなくてkazuoniさんのツールを拝見させて頂いても
何もお役に立てなくて、ごめんなさい。(謝
こちらに初めてお邪魔した頃に、kazuoniさんにC言語の事でご意見頂いたものです。
その節は、ありがとう御座いました。<_ _>
(以降も、こちらでお世話になりっぱなしです。^^;)

成人式、おめでとうございます!w

kazuoni

Re:[雑談]自作ツール公開

#18

投稿記事 by kazuoni » 16年前

DLありがとうございます^^
アニメーション(主にRPGの画像だと思いますが・・・)動作を
これでチェックして、これからプログラム書いたらこんな風に動くのか→
よし、やるぞ!なんてやる気が出てくれればいいなってなツールですw
まぁ、実際は自分で動作確認がしたいがために作っただけなんです^^;
そんなにかしこまらないでいいですよ^^;

まだまだひよっ子ですけど、一応成人迎えました^^
ありがとうございます!

Justy

Re:[雑談]自作ツール公開

#19

投稿記事 by Justy » 16年前

 kazuoniさん、ご成人おめでとうございます。


>結局はボタンの修正に一番時間がかかりました^^;

 いろいろと余計なことばかり言ってしまってすみません。
 1.2を DLしてみたのですが、なんかいろいろと挙動がおかしくなっているような。

 真っ先におかしいのがスライダーで、非常に動かすのが難しくなっています。

 他にも、ボタンのリリースタイミングでのイベント周りで問題が。
 例えばプレビュー画面で、再生ボタンに対しマウスを押し、そのままの状態で
マウスオーバーした後、別のボタン……前に戻るボタンのところでマウスを離します。

 すると、何故か前に戻るボタンが実行され、前の画面に戻ってしまいます。



>透過色なんですが、

 何がどううまくいかないのか、何が想定と違うのか
少し状況を整理した方がいいですね。

kazuoni

Re:[雑談]自作ツール公開

#20

投稿記事 by kazuoni » 16年前

申し訳ありませんでした。。
安易にUPしてしまっていました。。
とりあえず、ボタンは修正してきました。(UP済み)

透過に関してですが、まずhttp://kazuoni.kumogakure.com/chara.zipから画像をDLしてみてください。
※ここで使っている画像はhttp://usui.moo.jp/frame2.htmlの管理人様から許可をいただいて使わせてもらっています。
同じ画像で拡張子がすべて違うものです。
実行してみてもらえばわかるのですが、
結果は透過色を指定することによって透過されるのは.bmpだけでした。
自分の想像ではすべて透過されるのかなっと思っていたのですが。。

Justy

Re:[雑談]自作ツール公開

#21

投稿記事 by Justy » 16年前

 ファイルの方、見てみました。


>結果は透過色を指定することによって透過されるのは.bmpだけでした。
>自分の想像ではすべて透過されるのかなっと思っていたのですが。。

 まず前提として、テクスチャにアルファチャンネルがあるとカラーキーによる
透過設定は無視されます。

 で、ファイルを1つ1つ見てみると、このBMPは 8bitで構成されており、
パレットの方にもアルファチャンネルが無いので透過設定が有効になります。

PNGの方はフォーマットの値を見ると 6となっており、これはアルファチャンネルが
設定されているのでカラーキーによる透過設定は無視されます。
(試しにアルファチャンネルを削除したら、透過されました)

 JPGはその特性により画像が劣化しており、[255, 0, 0]の色が存在しないことに
起因して透過が行われないものだと思われます。
(試しに [252, 1, 0]で試したら微妙ですが一部透過していました)

kazuoni

Re:[雑談]自作ツール公開

#22

投稿記事 by kazuoni » 16年前

んん~画像に関しての知識がないとちょっとうまく使いこなせなそうです。。
とりあえずgimpをDLして自分も試してみます。
今回搭載した透過色指定の機能はアルファチャンネルが削除されていることが前提となるのですね。
うーん・・・今回は透過色は中途半端な感じで終わりそうですね^^;

Justy

Re:[雑談]自作ツール公開

#23

投稿記事 by Justy » 16年前


>今回搭載した透過色指定の機能はアルファチャンネルが削除されていることが前提となるのですね。

 無理矢理カラーキーで透過させたいのであれば、
[color=#d0e0d0" face="sans-serif]SetUseTransColorGraphCreateFlag(TRUE);[/color]
を読み込み前に置いておくと、透過させることができるはずです。

 
 ただ、これは個人的な意見ですが、色による透過ってどこまで需要があるのでしょうか?
 いっそのことアルファチャンネルによる透過はするけど、カラーキーによる透過は無効にしても
いいのではないでしょうか。

kazuoni

Re:[雑談]自作ツール公開

#24

投稿記事 by kazuoni » 16年前

>いっそのことアルファチャンネルによる透過はするけど、
>カラーキーによる透過は無効にしてもいいのではないでしょうか。

その通りですね。
その説明を加えて今回の制作は終了し、
正式版をUPしたいと思います。

最後にお尋ねしたいのですが、
Justyさんの名前をReadMe,私のサイトに挙げてもよろしいでしょうか?
(ご協力人の欄として)

今回の制作にあたって、ごく小さな規模でもちゃんとしたものを一つ作ることは
本当に根気のいることだと改めて実感しました。
この制作で学んだことを今後の開発に活かしていきたいと思います。

本当に最後の最後の最後までお付き合いいただき、
誠にありがとうございました。
おそらくまた次回何か作ったらここに来ると思いますので
(もちろん、できる限り自分の力で完成度を上げますが)
その時には、もし時間がありましたらご協力よろしくお願いします。
無力な自分ですが、もし何かお手伝いがあればぜひ協力させていただきます。

本当にありがとうございました^^


>kazuoniさん、ご成人おめでとうございます。
ありがとうございます!お酒のせいで頭が最高に痛いです・・・

Justy

Re:[雑談]自作ツール公開

#25

投稿記事 by Justy » 16年前


>最後にお尋ねしたいのですが、
>Justyさんの名前をReadMe,私のサイトに挙げてもよろしいでしょうか?

 はい、構いませんよ。
 ありがとうございます。とても光栄です。


>おそらくまた次回何か作ったらここに来ると思いますので

 楽しみにしています。

閉鎖

“C言語何でも質問掲示板” へ戻る