カテゴリ別アーカイブ

92 Articles
3DCG用テクスチャ作成ツールのPixPlantがすごい

3DCG用テクスチャ作成ツールのPixPlantがすごい

以前からテクスチャ用のツールが欲しいなーと思っていたのですが、
先日 Bitmap2Material が Steam でセール中(¥ 10,300 → ¥ 6,798)になったので、
これを機会に買おうかなと少し調査しました。

もともと PixPlant か Bitmap2Material で迷っていたのですが、
PixPlant がかなり良さそうなので、
PixPlant の機能について少し紹介したいと思います。
2018/7/2の時点での情報となります。

PixPlantの公式サイト


PixPlantとは?

一言でいうと写真から3DCG用のテクスチャを作れるツールです。
上下左右が自然につながったテクスチャを簡単に作れます。

ライセンス

WindowsとMacで動作します。
有料のライセンスは2種類あります。

通常バージョン

$129 = 約 14800 円(税抜き)
通常バージョンとなります。
会社で買う場合は下記のフリーランスではないので、こちらかと思います。
4つ以上から割引価格になるようです。

フリーランスバージョン

$49 = 約 5600 円(税抜き)
フリーランス用(1人の会社用)となります。
上のライセンスと機能の違いはありません。
このライセンスは、所有者のパソコンでのみ使用できます。

デモバージョン

サイトからライセンスキーなしでダウンロードできるバージョンです。
名前をつけて保存でテクスチャを保存すると透かしが入ります。

購入方法

ここで購入が可能です。
購入する際は、使用許諾などの同意のチェックボックスが非常に小さいので注意
(タブキーとスペースキーを駆使してチェックをいれました!)

購入すると、メールでライセンスキーとダウンロードページが案内されます。
そこでライセンスキーを入力すればフルバージョンをダウンロードできます。

使い方

簡単な使い方を紹介いたします。
全ての機能を紹介はできませんが、イメージはつかめると思います。
とっても簡単なのでDEMOバージョンで是非試してみましょう!

1. テクスチャのサイズ設定
まず起動したらサイズを設定します。

上記はデフォルトの設定です。
「Both」だと上下左右がシームレスに接続されます。

2. 画面の右側の部分に画像をドラッグ&ドロップします。

3. 画像が読み込まれます。

4. 「Seed Wizard」を押すとパースペクティブ補正が行えます。

写真のひずみを消します。不要な部分はバッサリと消して、上下左右が平行になるようにしておきましょう。

5. 「Next」を押すと、1ブロックの設定が行えます。

ここは、最初から自動で認識しているようで楽々です。

6. あとは「<< Generate」を押せば完成!

すごく簡単!

もちろん非幾何学なテクスチャも自然に作れます。

↑写真1枚右側において、特に設定せず「Generate」押しただけですが、かなり自然です。

他にも複数の写真を元にして、1つのテクスチャを作成することも可能です。

さらに書ききれませんが、他に以下のようなことが可能です。

左側のテクスチャの画面で、ドラッグで範囲指定した後に、「<< Generate」を押すと、
範囲指定した中で、改めてテクスチャを自動で生成できるので、不自然な個所を直すことができる!

右側のシードとなるテクスチャでドラッグの範囲指定すると、
部分的に自動生成用のシードとして、使用しないようにマスクさせることができる!

3DCG上での見た目表示機能や、
ノーマルマップ用テクスチャや、AOの焼きこみなど色々できます!


最後は駆け足になりましたが、
上記で興味がわいた方は、Demoバージョンをぜひ試してみるとよいと思います!
あと、Youtubeでも操作している動画があるので見るとよいかも。

指定した秒数で区切るツール Simple Wave Splitter

指定した秒数で区切るツール Simple Wave Splitter

Simple Wave Splitter

wavファイルを指定した秒数で区切るツールを公開しました。
JRE がインストールされた環境で利用できます。

デフォルトは、10秒+モノラルになっています。
sws_sc_1_1

使い方

1. 一番上の「ここにファイルをドラッグ&ドロップ」に、wavをドラッグ&ドロップします。うまくいくとファイル名が記入されます。
※wavファイルは、CD音質(44100Hz, 16bit, 2ch)がいいです。それ以外はテストしてません。
2. 「出力ファイル名」というのは、雰囲気が分かる人は設定してください。デフォルトのままでいいと思います。
3. 「区切りたい秒数」は単位は「秒」で秒数を指定してください。小数点も可能です。区切るときはこの秒数「以下」になります。
4. 出力ファイルはモノラルがいい方は、「出力ファイルをモノラル化」にチェック
5. 「カット開始」で、wavファイルがあるディレクトリに、カットされたファイルが作られます。

 

おまけとして、技術がたくさん詰まった素晴らしいプレイヤーで「試曲」ができます。

スーパーかっこいいビジュアライザーと、ハイクオリティなエフェクターを体感セヨ!
sws_sc_1_2

直接ダウンロード
他にこれまで作ったスバラシイソフトとかはこちら


裏話(技術ポイント)
・ビジュアライザーはソフトウェアレンダリングで実装してます!
・リバーブは反射音を自動作成後に、FFTで畳み込みの実装することで超高品質なリバーブを実現!

メタセコイア作品集1

メタセコイア作品集1

買いましたといっても、先月買ったのですが、とても楽しいです。
値段も5400円とお得です。

無料の3Dモデリングソフトもあるのですが、
メタセコイアはユーザーインタフェースが分かりやすくてとっつきやすいです。
やっぱりインターフェースのデザインは大事です。
どんなに優れていても使いにくかったら意味がないのです。

2か月もあっというまにたちいろいろ作ったので、
作った物を紹介します!やったね!

ファンシースター ( fancy star )
cg_star_640
1作目です。
星のかたちを作るなんてすごいと一見思えますが、
「★」の文字を立体化をしてから、あとは角をまるめるだけです。
まるめるのも専用のコマンドがあるので、あとは整えたりします。
やわらかい質感を出そうとテクスチャは手描きでがんばりました。
頂点数92、面数192、三角形192

バケツ ( bucket )
baketsu_640
2作目です。(→専用の記事へ)
コップとかそういう系のもの練習で作りました。
円柱を作った後に、「押出」を駆使して拡大と移動でこねくりまわしました。
「4ビュー」という表示を初めて知ったのですが便利ですね。
一番大変だったのは、金具のと円柱とをつなげる穴です。
穴を空けるのは初めてだったんですが、あんなに難しいとは思いませんでした。
inkscapeなら、XOR演算で消せたりできるのですが、
3Dではポリゴンが基本となるので大変なんですね。
金具はドーナッツ型を基本として作ってます。
テクスチャは、GIレンダリングができるParthenonで作成。
頂点数398、面数596、三角形596

ダウジングロッド (dowsing rods)
dowsing_640
3作目です。
もうほとんど慣れてきました。
ただ内部の金属の円柱を曲げるというところが少し大変でした。
これもまたテクスチャは、Parthenonにお世話になってます。
1つ分かったことは、最初ダウジングロッドを実寸大で作成していまして、
それで、テクスチャの自動作成したら影がうまくできなかったのです。
影の付き方は大きさも考慮されているんでしょうね。
あと、テクスチャ自動展開が一部うまくいってないところがあようなのですが、
このときはテクスチャのUV座標の再設定を知らなかったので、もうこれで完成としました。
頂点数172、面数344、三角形344

もごし ( mogoshi )
mogoshi_640
4作目
もごし
スカイフィッシュを捕まえるための道具です。
金属のばね部分が難しかったです。
ドーナッツを形状から、1らせんを作ります。
1らせんから2らせんを作り、2らせんから4らせんを作り、ばねを作っていきます。
一度作ってしまうと、ばねの太さとか、簡単に変えられないのが大変です。今回少し細かったと思っています。
完成した後にわかったのですが、らせんを伸ばした後に頂点の結合を忘れたため、ポリゴン数が増えてしまいました。
頂点の結合は大事です。勉強になりました。
頂点数424、面数836、三角形836

かがみもち ( Kagami mochi )
kagamimochi_640
5作目
正月用に作りました。
球がおおいのでモデリングは楽です。
本当は下に台も作っていたんですが、作った後にあれ?台ってみんな丸い穴あいてる……。
穴あけ…やばい!となり、台を作る気力もなくこんな感じになりました。
みかんの葉っぱは葉脈があるのでinkscapeでテクスチャを作成。
あとは、持ちの下においてある紙は、1枚の紙に赤と白の部分をテクスチャで作ってしまうと、
拡大時にぼけてしまうので、普通に赤と白それぞれ2枚の紙を設置してます。
頂点数656、面数1264、三角形1264

岩風呂 ( magma bath )
iwaburo
6作目
お風呂です。
地底から暖かいお湯をお届けします。
普通の立方体をへこませて器型を作り、カットで頂点数を増やします。
あとは、手動でディスプレイスメントしていくといきました。
大げさにやらないと、岩のようなゴツゴツ感がでないので何度も調整しました。
溶岩については、パーリンノイズに色付けして作成していきます。
今回のレンダリングにはセカンドライフビューアを使用しています。
蛇口には環境マッピング設定を、溶岩にはグローと点光源を使用しています。
頂点数306、面数493、三角形493、四角形89(本体)
頂点数68、面数57、三角形0、四角形42、多角形15 (あふれた溶岩)

以上、紹介終わります!

1年前は3DCGなんか全く作れなかったのですが、
今は人や動物、柔らかい形状のものいがいなら、大体作れそうな感じです。
好きな物(SL)のためという目的があったんで、どんどん作っていけた感じがあります!


最後はメタセコイア関係の本の宣伝コーナー

(2014年発売) (2005年発売)

2005年のメタセコイアは、今の2014年のメタセコイアと使い勝手が
大分違うので、ツールの使い方から知りたいという方は新しいほうがいいかもしれません。

JScriptバッチ処理用ライブラリ 20130825公開

私のサイトで公開している
JScriptバッチ処理用ライブラリのバージョン「20130825」を公開しました。

主な内容は、JavaのString.formatを、JScriptでも使用できるようにするというものです。
JavaのString.formatは、大体はCのsprintfと似ているのですが、もっといろいろできます。
ただ、今回JScriptで使用できるようにしたString.formatは、Cのsprintfを似せて作りました。

コードを作成するに当たっては、
正規表現を使ってすっきり書くけど、分かりやすいコードを心がけて作りました。
String.formatの定義だけ抜き出せば、JavaScriptでも使用できるように作りました。
速度は、恐らく遅いと思いますが、最近のパソコンなら関係ないと思います。


ライブラリを使用した場合次のコードで

function main(args) {

	System.out.println("String.format のサンプル");
	
	var format = [
		"",
		" ",
		"+",
		"2",
		"10",
		".2",
		".10",
		"-16",
		" 16",
		"016",
		"#16",
		"#16.",
		"#-+16.",
		"#16.4"
	];
	
	System.out.println("動作例");
	for(var i = 0;i < format.length; i++) {
		var x = 10;
		// 整数10進数
		System.out.println(String.format("%%" + format[i] + "d [%" + format[i] + "d]", x));
		// 整数2進数
		System.out.println(String.format("%%" + format[i] + "b [%" + format[i] + "b]", x));
		System.out.println(String.format("%%" + format[i] + "B [%" + format[i] + "B]", x));
		// 整数8進数
		System.out.println(String.format("%%" + format[i] + "o [%" + format[i] + "o]", x));
		// 整数16進数
		System.out.println(String.format("%%" + format[i] + "x [%" + format[i] + "x]", x));
		System.out.println(String.format("%%" + format[i] + "X [%" + format[i] + "X]", x));
		// 小数形式浮動小数点数
		System.out.println(String.format("%%" + format[i] + "f [%" + format[i] + "f]", x));
		// 指数形式浮動小数点数
		System.out.println(String.format("%%" + format[i] + "e [%" + format[i] + "e]", x));
		System.out.println(String.format("%%" + format[i] + "E [%" + format[i] + "E]", x));
		// fかeで適した方
		System.out.println(String.format("%%" + format[i] + "g [%" + format[i] + "g]", x));
		System.out.println(String.format("%%" + format[i] + "G [%" + format[i] + "G]", x));
		// 文字
		System.out.println(String.format("%%" + format[i] + "c [%" + format[i] + "c]", "A".charCodeAt(0)));
		// 文字列
		System.out.println(String.format("%%" + format[i] + "s [%" + format[i] + "s]", "ABCDEFG"));
	}

	System.out.println("引数順指定");
	System.out.println(String.format("%%1$d %%2$d %%3$d [%1$d %2$d %3$d]" ,1 ,2 ,3 ));
	System.out.println(String.format("%%3$d %%2$d %%1$d [%3$d %2$d %1$d]" ,1 ,2 ,3 ));

	System.out.println("引数によるフィールド幅指定");
	for(var i = 1;i < 10; i++) {
		var x = 1;
		System.out.println(String.format("%%*d(" + i + ") [%*d]" ,i ,x ));
	}

	System.out.println("引数による精度指定(実数)");
	for(var i = 1;i < 10; i++) {
		var x = 1;
		System.out.println(String.format("%%.*f(" + i + ") [%.*f]" ,i ,x ));
	}

	System.out.println("引数による精度指定(文字列)");
	for(var i = 1;i < 10; i++) {
		var x = "ABCDEFGHIJKLMN";
		System.out.println(String.format("%%.*s(" + i + ") [%.*s]" ,i ,x ));
	}

	System.out.println("組合せ");
	for(var i = 1;i < 10; i++) {
		var x = 1;
		System.out.println(String.format("%%*.*f(" + i + ") [%*.*f]" ,i * 2 ,i ,x ));
	}

	System.out.println("動作例(マイナスの数字)");
	for(var i = 0;i < format.length; i++) {
		var x = -10;
		// 整数10進数
		System.out.println(String.format("%%" + format[i] + "d [%" + format[i] + "d]", x));
		System.out.println(String.format("%%" + format[i] + "u [%" + format[i] + "u]", x));
		// 整数2進数
		System.out.println(String.format("%%" + format[i] + "b [%" + format[i] + "b]", x));
		System.out.println(String.format("%%" + format[i] + "B [%" + format[i] + "B]", x));
		// 整数8進数
		System.out.println(String.format("%%" + format[i] + "o [%" + format[i] + "o]", x));
		// 整数16進数
		System.out.println(String.format("%%" + format[i] + "x [%" + format[i] + "x]", x));
		System.out.println(String.format("%%" + format[i] + "X [%" + format[i] + "X]", x));
		// 小数形式浮動小数点数
		System.out.println(String.format("%%" + format[i] + "f [%" + format[i] + "f]", x));
		// 指数形式浮動小数点数
		System.out.println(String.format("%%" + format[i] + "e [%" + format[i] + "e]", x));
		System.out.println(String.format("%%" + format[i] + "E [%" + format[i] + "E]", x));
		// fかeで適した方
		System.out.println(String.format("%%" + format[i] + "g [%" + format[i] + "g]", x));
		System.out.println(String.format("%%" + format[i] + "G [%" + format[i] + "G]", x));
	}

	System.stop();

}

結果はこうなります。

String.format のサンプル
動作例
%d [10]
%b [1010]
%B [1010]
%o [12]
%x [a]
%X [A]
%f [10.000000]
%e [1.000000e+001]
%E [1.000000E+001]
%g [10]
%G [10]
%c [A]
%s [ABCDEFG]
% d [ 10]
% b [ 1010]
% B [ 1010]
% o [ 12]
% x [ a]
% X [ A]
% f [ 10.000000]
% e [ 1.000000e+001]
% E [ 1.000000E+001]
% g [ 10]
% G [ 10]
% c [A]
% s [ABCDEFG]
%+d [+10]
%+b [+1010]
%+B [+1010]
%+o [+12]
%+x [+a]
%+X [+A]
%+f [+10.000000]
%+e [+1.000000e+001]
%+E [+1.000000E+001]
%+g [+10]
%+G [+10]
%+c [A]
%+s [ABCDEFG]
%2d [10]
%2b [1010]
%2B [1010]
%2o [12]
%2x [ a]
%2X [ A]
%2f [10.000000]
%2e [1.000000e+001]
%2E [1.000000E+001]
%2g [10]
%2G [10]
%2c [ A]
%2s [ABCDEFG]
%10d [		10]
%10b [	  1010]
%10B [	  1010]
%10o [		12]
%10x [		 a]
%10X [		 A]
%10f [ 10.000000]
%10e [1.000000e+001]
%10E [1.000000E+001]
%10g [		10]
%10G [		10]
%10c [		 A]
%10s [   ABCDEFG]
%.2d [10]
%.2b [1010]
%.2B [1010]
%.2o [12]
%.2x [0a]
%.2X [0A]
%.2f [10.00]
%.2e [1.00e+001]
%.2E [1.00E+001]
%.2g [10]
%.2G [10]
%.2c [A]
%.2s [AB]
%.10d [0000000010]
%.10b [0000001010]
%.10B [0000001010]
%.10o [0000000012]
%.10x [000000000a]
%.10X [000000000A]
%.10f [10.0000000000]
%.10e [1.0000000000e+001]
%.10E [1.0000000000E+001]
%.10g [10]
%.10G [10]
%.10c [A]
%.10s [ABCDEFG]
%-16d [10			  ]
%-16b [1010			]
%-16B [1010			]
%-16o [12			  ]
%-16x [a			   ]
%-16X [A			   ]
%-16f [10.000000	   ]
%-16e [1.000000e+001   ]
%-16E [1.000000E+001   ]
%-16g [10			  ]
%-16G [10			  ]
%-16c [A			   ]
%-16s [ABCDEFG		 ]
% 16d [			  10]
% 16b [			1010]
% 16B [			1010]
% 16o [			  12]
% 16x [			   a]
% 16X [			   A]
% 16f [	   10.000000]
% 16e [   1.000000e+001]
% 16E [   1.000000E+001]
% 16g [			  10]
% 16G [			  10]
% 16c [			   A]
% 16s [		 ABCDEFG]
%016d [0000000000000010]
%016b [0000000000001010]
%016B [0000000000001010]
%016o [0000000000000012]
%016x [000000000000000a]
%016X [000000000000000A]
%016f [000000010.000000]
%016e [0001.000000e+001]
%016E [0001.000000E+001]
%016g [0000000000000010]
%016G [0000000000000010]
%016c [			   A]
%016s [		 ABCDEFG]
%#16d [			  10]
%#16b [		  0b1010]
%#16B [		  0B1010]
%#16o [			 012]
%#16x [			 0xa]
%#16X [			 0XA]
%#16f [	   10.000000]
%#16e [   1.000000e+001]
%#16E [   1.000000E+001]
%#16g [		 10.0000]
%#16G [		 10.0000]
%#16c [			   A]
%#16s [		 ABCDEFG]
%#16.d [			  10]
%#16.b [		  0b1010]
%#16.B [		  0B1010]
%#16.o [			 012]
%#16.x [			 0xa]
%#16.X [			 0XA]
%#16.f [			 10.]
%#16.e [		 1.e+001]
%#16.E [		 1.E+001]
%#16.g [		 1.e+001]
%#16.G [		 1.E+001]
%#16.c [				]
%#16.s [				]
%#-+16.d [+10			 ]
%#-+16.b [+0b1010		 ]
%#-+16.B [+0B1010		 ]
%#-+16.o [+012			]
%#-+16.x [+0xa			]
%#-+16.X [+0XA			]
%#-+16.f [+10.			]
%#-+16.e [+1.e+001		]
%#-+16.E [+1.E+001		]
%#-+16.g [+1.e+001		]
%#-+16.G [+1.E+001		]
%#-+16.c [				]
%#-+16.s [				]
%#16.4d [			0010]
%#16.4b [		  0b1010]
%#16.4B [		  0B1010]
%#16.4o [		   00012]
%#16.4x [		  0x000a]
%#16.4X [		  0X000A]
%#16.4f [		 10.0000]
%#16.4e [	 1.0000e+001]
%#16.4E [	 1.0000E+001]
%#16.4g [		   10.00]
%#16.4G [		   10.00]
%#16.4c [			   A]
%#16.4s [			ABCD]
引数順指定
%1$d %2$d %3$d [1 2 3]
%3$d %2$d %1$d [3 2 1]
引数によるフィールド幅指定
%*d(1) [1]
%*d(2) [ 1]
%*d(3) [  1]
%*d(4) [   1]
%*d(5) [	1]
%*d(6) [	 1]
%*d(7) [	  1]
%*d(8) [	   1]
%*d(9) [		1]
引数による精度指定(実数)
%.*f(1) [1.0]
%.*f(2) [1.00]
%.*f(3) [1.000]
%.*f(4) [1.0000]
%.*f(5) [1.00000]
%.*f(6) [1.000000]
%.*f(7) [1.0000000]
%.*f(8) [1.00000000]
%.*f(9) [1.000000000]
引数による精度指定(文字列)
%.*s(1) [A]
%.*s(2) [AB]
%.*s(3) [ABC]
%.*s(4) [ABCD]
%.*s(5) [ABCDE]
%.*s(6) [ABCDEF]
%.*s(7) [ABCDEFG]
%.*s(8) [ABCDEFGH]
%.*s(9) [ABCDEFGHI]
組合せ
%*.*f(1) [1.0]
%*.*f(2) [1.00]
%*.*f(3) [ 1.000]
%*.*f(4) [  1.0000]
%*.*f(5) [   1.00000]
%*.*f(6) [	1.000000]
%*.*f(7) [	 1.0000000]
%*.*f(8) [	  1.00000000]
%*.*f(9) [	   1.000000000]
動作例(マイナスの数字)
%d [-10]
%u [4294967286]
%b [11111111111111111111111111110110]
%B [11111111111111111111111111110110]
%o [37777777766]
%x [fffffff6]
%X [FFFFFFF6]
%f [-10.000000]
%e [-1.000000e+001]
%E [-1.000000E+001]
%g [-10]
%G [-10]
% d [-10]
% u [ 4294967286]
% b [ 11111111111111111111111111110110]
% B [ 11111111111111111111111111110110]
% o [ 37777777766]
% x [ fffffff6]
% X [ FFFFFFF6]
% f [-10.000000]
% e [-1.000000e+001]
% E [-1.000000E+001]
% g [-10]
% G [-10]
%+d [-10]
%+u [+4294967286]
%+b [+11111111111111111111111111110110]
%+B [+11111111111111111111111111110110]
%+o [+37777777766]
%+x [+fffffff6]
%+X [+FFFFFFF6]
%+f [-10.000000]
%+e [-1.000000e+001]
%+E [-1.000000E+001]
%+g [-10]
%+G [-10]
%2d [-10]
%2u [4294967286]
%2b [11111111111111111111111111110110]
%2B [11111111111111111111111111110110]
%2o [37777777766]
%2x [fffffff6]
%2X [FFFFFFF6]
%2f [-10.000000]
%2e [-1.000000e+001]
%2E [-1.000000E+001]
%2g [-10]
%2G [-10]
%10d [	   -10]
%10u [4294967286]
%10b [11111111111111111111111111110110]
%10B [11111111111111111111111111110110]
%10o [37777777766]
%10x [  fffffff6]
%10X [  FFFFFFF6]
%10f [-10.000000]
%10e [-1.000000e+001]
%10E [-1.000000E+001]
%10g [	   -10]
%10G [	   -10]
%.2d [-10]
%.2u [4294967286]
%.2b [11111111111111111111111111110110]
%.2B [11111111111111111111111111110110]
%.2o [37777777766]
%.2x [fffffff6]
%.2X [FFFFFFF6]
%.2f [-10.00]
%.2e [-1.00e+001]
%.2E [-1.00E+001]
%.2g [-10]
%.2G [-10]
%.10d [-0000000010]
%.10u [4294967286]
%.10b [11111111111111111111111111110110]
%.10B [11111111111111111111111111110110]
%.10o [37777777766]
%.10x [00fffffff6]
%.10X [00FFFFFFF6]
%.10f [-10.0000000000]
%.10e [-1.0000000000e+001]
%.10E [-1.0000000000E+001]
%.10g [-10]
%.10G [-10]
%-16d [-10			 ]
%-16u [4294967286	  ]
%-16b [11111111111111111111111111110110]
%-16B [11111111111111111111111111110110]
%-16o [37777777766	 ]
%-16x [fffffff6		]
%-16X [FFFFFFF6		]
%-16f [-10.000000	  ]
%-16e [-1.000000e+001  ]
%-16E [-1.000000E+001  ]
%-16g [-10			 ]
%-16G [-10			 ]
% 16d [			 -10]
% 16u [	  4294967286]
% 16b [ 11111111111111111111111111110110]
% 16B [ 11111111111111111111111111110110]
% 16o [	 37777777766]
% 16x [		fffffff6]
% 16X [		FFFFFFF6]
% 16f [	  -10.000000]
% 16e [  -1.000000e+001]
% 16E [  -1.000000E+001]
% 16g [			 -10]
% 16G [			 -10]
%016d [-000000000000010]
%016u [0000004294967286]
%016b [11111111111111111111111111110110]
%016B [11111111111111111111111111110110]
%016o [0000037777777766]
%016x [00000000fffffff6]
%016X [00000000FFFFFFF6]
%016f [-00000010.000000]
%016e [-001.000000e+001]
%016E [-001.000000E+001]
%016g [-000000000000010]
%016G [-000000000000010]
%#16d [			 -10]
%#16u [	  4294967286]
%#16b [0b11111111111111111111111111110110]
%#16B [0B11111111111111111111111111110110]
%#16o [	037777777766]
%#16x [	  0xfffffff6]
%#16X [	  0XFFFFFFF6]
%#16f [	  -10.000000]
%#16e [  -1.000000e+001]
%#16E [  -1.000000E+001]
%#16g [		-10.0000]
%#16G [		-10.0000]
%#16.d [			 -10]
%#16.u [	  4294967286]
%#16.b [0b11111111111111111111111111110110]
%#16.B [0B11111111111111111111111111110110]
%#16.o [	037777777766]
%#16.x [	  0xfffffff6]
%#16.X [	  0XFFFFFFF6]
%#16.f [			-10.]
%#16.e [		-1.e+001]
%#16.E [		-1.E+001]
%#16.g [		-1.e+001]
%#16.G [		-1.E+001]
%#-+16.d [-10			 ]
%#-+16.u [+4294967286	 ]
%#-+16.b [+0b11111111111111111111111111110110]
%#-+16.B [+0B11111111111111111111111111110110]
%#-+16.o [+037777777766   ]
%#-+16.x [+0xfffffff6	 ]
%#-+16.X [+0XFFFFFFF6	 ]
%#-+16.f [-10.			]
%#-+16.e [-1.e+001		]
%#-+16.E [-1.E+001		]
%#-+16.g [-1.e+001		]
%#-+16.G [-1.E+001		]
%#16.4d [		   -0010]
%#16.4u [	  4294967286]
%#16.4b [0b11111111111111111111111111110110]
%#16.4B [0B11111111111111111111111111110110]
%#16.4o [	037777777766]
%#16.4x [	  0xfffffff6]
%#16.4X [	  0XFFFFFFF6]
%#16.4f [		-10.0000]
%#16.4e [	-1.0000e+001]
%#16.4E [	-1.0000E+001]
%#16.4g [		  -10.00]
%#16.4G [		  -10.00]
HSPの画像処理モジュールipmpackをアフィン変換対応しました

HSPの画像処理モジュールipmpackをアフィン変換対応しました

久しぶりにipmpackを更新しました。
まだvectorからはダウンロード出来ません。
placearkの方からダウンロードして下さい。

今回オマケとして、sample\ipmpackの中に、
少しだけコンパイル前のソースコードが入っています。

ipmpack 1.050
(公開したてなので、バージョン据え置きの細かい修正が入るかも。vector公開まで待つといいかも。)

いろいろと更新しました。
主な更新点は次のような感じです。
・アフィン変換機能
・画像の一部コピー機能
・カラーマトリックス変換のオフセット値の設定機能
・命令の引数の省略可能な箇所を増やす
・一部の変な命令名を変更
・HSPの新しいサムネイル機能付きヘルプに対応

詳しいところは、ヘルプやreadmeに任せまして、
目玉のアフィン変換機能の紹介。


上のように、アフィン変換を用いて、拡大回転思いのままです。
回転なら、grotateより品質がよく綺麗に回転できます。
線形補間にも対応しています。

ただ少し処理が重たいです。
ソースコードが「sample\ipmpack\sample_vram.zip」の中に入っているので、
自由にいじって下さい。
ライセンスは前の通りNYSLのような感じです。

ヘルプでサムネイルが表示されます!

%d人のブロガーが「いいね」をつけました。