SQLの窓 イラストAC フリー素材

2018年08月13日

DAZ3D : イラストAC に投稿した、過去一番頑張った『地球』

地球

イラストAC よりフリーダウンロード


過去8枚くらい投稿しているのですが、Planet Earth UTRA HD 32K for Iray にある TUTORIAL VIDEO のようなライティングに苦労しました。


Planet Earth UTRA HD 32K for Daz 3D iRay (TUTORIAL) from The Philosopher on Vimeo.

きっちり見たわけではありませんが、どうもにも良く解りそうに無いので見た目を参考にして光源位置を探った結果です。さらに、Blue Planet - Orbital View で使用されているグラデーションパーツを Iray 化してこちらに実装しました。ちょっとクラデーションが厚みがありすぎる感じですが、しょせんイラストなので良しとします。 あと、いくつか角度やらいろいろ変えて投稿したいんですが...作っててあまり変化が無いので面白く無いんですよね。地球二個とかやってみようかしらん。
【イラストACの最新記事】
posted by at 2018-08-13 01:16 | イラストAC | このブログの読者になる | 更新情報をチェックする

2018年08月12日

DAZ3D : PIXTA にイラストを投稿

ひさしぶりに投稿をしていますが、そもそも全く作品数が無いので気長に5年計画で増やしていこうかと思ってる次第ですが...、8月の最初に Google の検索順位が大変動するという、コアアルゴリズムが変更があって、先行き不安です。

【Google大変動】コアアルゴリズムアップデートによる2018年8月1日の順位変動について



まあ、でも生きていかなければならないのは大変動するはずも無いので、地道にやるしかありません。イラストAC にしても、たいした結果は出ていませんが、将来的になんか大変動してくれればひょっとして DAZ3D のイラストも...なんて夢見てもいいですよねぇ。



いろいろ研究を重ねて作品はガンガン作ってはいるのですが、なにせ素人のやってる事なので何かが起きるわけでは無いですが、明日は必ずやって来るという現実には対処しなければなりません。



正直、DAZStudio で作品作ってる時が現実を逃避できるささやかな超次元空間ですが、良く考えたら2年前まで週休5日だった事を考えると、『なんて自分は運がいいんだ』と思わないでも無いのです。いや、自分で言うのも何ですが『超レア体質』と自分で呼んでいるのですが、ありえない出来事が良く起きるわけです。



思い起こせば、初めて勤めた会社で一年後社長がお亡くなりになるとか、さらに半月後親父の会社に勤めなきゃいけなくなるとか、さらに一年後鬱を煩って入院したりするとか、ほんと自分のレア体質には辟易してるわけです。

※ つい数日前、携帯を警察署の近くで拾って、何故か私服の刑事3人に対応されるとか...(ないわ、そんなん...)



どう考えても、運はいいほうです。だからここまで来れているのは解ってるのですが、あまりに良く解らない経験ばかりしてるので、未来が見えにくいというか...想定しづらいというか...とても不安です( 親父・おふくろ 80超えです。元気です...とてもまだ未来を感じ取れる状態ではありません )

とりあえず、今日作ったイラスト貼っておきます。



大きく表示   




posted by at 2018-08-12 01:45 | pixta | このブログの読者になる | 更新情報をチェックする

2018年08月09日

Twitter のプロモーションに絡めとられた...『薬屋のひとりごと』

試し読みしたら面白かったので、Renta!で、PayPal 経由で購入。試し読みぶんが安くなってたので即決済。

ちょっとまだ読み足りないけれど、よっぽと暇になったら続きを買うかも。




絵柄は少女漫画系のようだけど、主人公が薬作りたいオタクの変わり者。もちろん主人公張るくらいに聡明だけど、淡々としたところが魅力でもある。その中でも性格的に『マッドサイエンティスト』らしく、自分の体を毒で試して耐性持たせるとか変人丸出し部分も好感持てる。

※ まだ3巻までしか無いそうです。




posted by at 2018-08-09 21:47 | 漫画 | このブログの読者になる | 更新情報をチェックする

2018年08月08日

DAZ3D : 長い髪のエルフ



この髪は、『Bronwyn Hair for Genesis 3 & 8 Female(s)』 です。

造形が汎用的そうで、40% オフで、スタイルセットが付属(15 Sample Hair Poses)してたのが購入ポイント。髪型は、キャラクタのバリエーションなので、素直でかつキャラクタの個性を主張できる必要があると思うので、いわゆる現実的な髪型はキャラクタが目立たないし、特殊すぎる髪型は髪型にキャラクタを決められてしまう。

その上で、プロダクト画像でも使われている日本型のエルフ耳(真横に伸びる耳)を持つキャラクタでカメラ位置を一生懸命探って、一番いい髪のスタイルを選びました。

髪の垂れ方や、髪の間から出る目や鼻や口の雰囲気がとてもアニメっぽくなってますが、いろいろやると結局これが一番美しいんですよね。必要無いラインは隠したほうが( そもそも、それが髪の毛の役目だし / スキンヘッドで魅力が出るはずもなく )

髪は、G8・G3 兼用ですが、このフィギュアは Genesis。しかし、問題無く FIT しています( このへんはいろいろプロダクト買ってるせいだとは思うけど、特定するのに時間かかるので省略 )。

元のシーンとの比較

以下は、元のシーンです。背景を全て Iray の 金属系に変更して、キャラクタの邪魔になりそうな型の防具を不透明にして排除しています。



背景に使っているシェーダー

Uber+ Iray Antique Metals 2

光源の強いところでは光りすぎる傾向がありますが、暗めの場所ではとてもいい感じを演出できるシェーダーです。

▼ これは、V4 時代の PROP でしたが、シェーダー一つでこんな感じにはなります。






posted by at 2018-08-08 01:05 | Iray DAZ3D DAZStudio イラスト | このブログの読者になる | 更新情報をチェックする

2018年07月31日

HTA + JavaScript + COM / ( その3 ) : BatchHelper(32ビット) と Excel ブック作成と Sleep と Access(.accdb) 作成





大昔に作成した COM で、BatchHelper オブジェクト



HTA は 32ビットなので当然動きますが、特殊設定の IE11 でも動作します

BatchHelper のメソッド一覧

sample3.hta

ファイルに保存するダイアログは、BatchHelper オブジェクトです。一般的な Windows の COM にはありません。それを使用して、Excel のブックを作成するのに、Lbox.BatchWsc( CreateBook ) を使用していますが、これは Windows Script Component と言って、VBScript で書いたコードを COM として登録したものです。ですから、内部では Excel.Application を使用しています。

BatchHelper の Sleep は C++ で書いたもので、Window そのものも停止します。二つ目は、TIMEOUT を起動してその終了を待たせて Sleep をしていますが、Window の処理(メッセージ)は止まりません。

最後は、ADOX で Access の .accdb ファイルを作成しています。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.css" />
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

<script src="https://winofsql.jp/hta.js"></script>

<script>

	// ウインドウの位置とサイズ
	centerWindow( 1100, 600 );

	// テーブルの行作成用
	var row_data = "";

	// WSH 標準
	var WshShell = newObject("WScript.Shell");
	var WshNetwork = newObject("WScript.Network");

	// 連想配列=ハッシュ=ディクショナリ
	var Dict = newObject("Scripting.Dictionary");

	// DB
	var AdoCn = newObject("ADODB.Connection");
	var AdoRs = newObject("ADODB.Recordset");
	var AdoCat = newObject("ADOX.Catalog");

	// バイナリデータ
	var AdoStream = newObject("ADODB.Stream");

	// Windows Shell
	var objShell = newObject("Shell.Application");
	
	// テキストファイル
	var Fso = newObject("Scripting.FileSystemObject");
	
	// メール送信
	var Cdo = newObject("CDO.Message");
	
	// 通信
	var Http = newObject("Msxml2.ServerXMLHTTP");

	// Base64
	var Util = newObject("CAPICOM.Utilities");
	
	// その他
	var Guid = newObject("Scriptlet.TypeLib");

	// 以下 要インストール
	var Helper = newObject("Lbox.BatchHelper");
	var HelperWsc = newObject("Lbox.BatchWsc");

	$(function(){
	
		// ***************************
		// ボタン表示位置微調整
		// ***************************
		$( ".btn" ).css({
			"margin-top": "-4px"
		});
	
		$("#act1").on("click", function(){
			if ( Helper == null ) {
				alert("BatchHelper はインストールされていません");
				return;
			}

			var filePath = Helper.SaveFileName( "ファイルの選択", "Excel,*.xlsx", "", "", "" );
			if( filePath == "" ) {
				alert("ファイルの保存参照がキャンセルされました")
				return;
			}
			
			HelperWsc.CreateBook( filePath );

			var messageArray = [ filePath + ".xlsx" ];
			loadTable( messageArray );

		});

		$("#act2").on("click", function(){

			if ( Helper == null ) {
				alert("BatchHelper はインストールされていません");
				return;
			}

			// ※ Window も停止する
			Helper.Sleep = 3000;

			alert("Sleep が終了しました");

			var messageArray = [];
			messageArray.push("現在のスレッドの実行 を3000 ミリ秒停止しました");
			messageArray.push("※ Window も停止する");
			
			loadTable( messageArray );

		});
		
		$("#act3").on("click", function(){

			// 3秒間の停止( コマンドプロンプトウインドウを表示しない )
			// ※ Window は停止しない
			WshShell.Run("TIMEOUT /T 3", 0, true);

			alert("停止 が終了しました");
			
			var messageArray = [];
			messageArray.push("3秒間の停止( コマンドプロンプトウインドウを表示しない )");
			messageArray.push("※ Window は停止しない");
			
			loadTable( messageArray );

		});

		$("#act4").on("click", function(){

			if ( Helper == null ) {
				alert("BatchHelper はインストールされていません");
				return;
			}

			var filePath = Helper.SaveFileName( "ファイルの選択", "Access,*.accdb", "", "", "" );
			if( filePath == "" ) {
				alert("ファイルの保存参照がキャンセルされました");
				return;
			}

			var ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ".accdb;";
			
			// Microsoft Access 作成
			AdoCat.Create( ConnectionString );
			
			// 解放
			AdoCat = ""
			// 再作成
			AdoCat = newObject("ADOX.Catalog");

			var messageArray = [ filePath + ".accdb" ];
			loadTable( messageArray );

		});

	});

</script>

<style>
html,body {
	height: 100%;
}

body {
	margin: 0;
}

/* ブロックを左右に表示  */
.ttl {
	display: inline-block;
	width: 120px;
	vertical-align: top;
}
.entry {
	display: inline-block;
}
.line {
	margin-bottom: 0;
}

#head {
	padding: 16px;
}

/* IFRAMEコントロール用  */
#head {
	padding: 16px;
	width: 100%;
	height: 180px;
	background-color: #e0e0e0;
}
#extend {
	padding: 4px 16px;
	display: block;
	margin-left: auto;
	margin-right: auto;
	width: calc( 100% - 3px );
	height: calc( 100% - 180px - 2px );
	border: solid 2px #c0c0c0;
	overflow: scroll;
}
.row_data td {
	cursor: default!important;
}

</style>

</head>
<body>
<div id="head">

	<p class="ttl">
		ダイアログ
	</p>
	<p class="entry">

		<input
			id="act1"
			class="ml-4 btn btn-outline-primary"
			type="button"
			value="Excel ブックを作成する(BatchHelper)">

		<input
			id="act2"
			class="ml-4 btn btn-outline-primary"
			type="button"
			value="Sleep (BatchHelper)">

	</p>
	<p class="line"></p>

	<p class="ttl">
		
	</p>
	<p class="entry">
		<input
			id="act3"
			class="ml-4 btn btn-outline-primary"
			type="button"
			value="Run で TIMEOUT /T 3 を実行">

		<input
			id="act4"
			class="ml-4 btn btn-outline-primary"
			type="button"
			value="Access(.accdb) の作成">

	</p>
	<p class="line"></p>

	<h4 class="text-danger"></h4>

</div>
<div id="extend">
	<table class="table table-hover">
		<tbody id="tbl">
		</tbody>
	</table>
<br>
</div>

</body>
</html>


関連する記事

HTA + JavaScript + COM / ( その1 ) : BatchHelper(32ビット) と テキストファイル読み込みとプリンタ一覧

HTA (または IE11) で hostname を実行して標準出力からPC名の取得




posted by at 2018-07-31 22:18 | HTA ( HTMLアプリケーション ) | このブログの読者になる | 更新情報をチェックする

2018年07月28日

HTA + JavaScript + COM / ( その2 ) : BatchHelper(32ビット) と フォルダ選択とファイル一覧とメモ帳へ貼り付けと標準出力からの読込み





大昔に作成した COM で、BatchHelper オブジェクト



HTA は 32ビットなので当然動きますが、特殊設定の IE11 でも動作します

BatchHelper のメソッド一覧

sample2.hta

フォルダ選択は、BatchHelper と Shell.Application を使用して二通り。Shell.Application 側では Shell.Application でファイル一覧とフォルダ一覧を取得しています。また、BatchHelper からメモ帳を起動してテキストを追加貼り付けします( テキスト内の \n で改行コード )

WScript.Network では、コンピュータ名を取得して 自分の PC に共有を C で作成してその中のフォルダとファイルの一覧を Scripting.FileSystemObject を使用して取得しています。
 IE11 で\\pcname\共有... のリンクでエクスプローラが開きますが、これを使用すると直接の操作が可能です。
詳細な処理は、Shell.Application のほうが優れていますが、いろいろ解りにくい仕様になっています。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.css" />
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

<script src="hta.js"></script>

<script>

	// ウインドウの位置とサイズ
	centerWindow( 1100, 600 );

	// WSH 標準
	var WshShell = newObject("WScript.Shell");
	var WshNetwork = newObject("WScript.Network");

	// 連想配列=ハッシュ=ディクショナリ
	var Dict = newObject("Scripting.Dictionary");

	// DB
	var AdoCn = newObject("ADODB.Connection");
	var AdoRs = newObject("ADODB.Recordset");
	var AdoCat = newObject("ADOX.Catalog");

	// バイナリデータ
	var AdoStream = newObject("ADODB.Stream");

	// Windows Shell
	var objShell = newObject("Shell.Application");
	
	// テキストファイル
	var Fso = newObject("Scripting.FileSystemObject");
	
	// メール送信
	var Cdo = newObject("CDO.Message");
	
	// 通信
	var Http = newObject("Msxml2.ServerXMLHTTP");

	// Base64
	var Util = newObject("CAPICOM.Utilities");
	
	// その他
	var Guid = newObject("Scriptlet.TypeLib");

	// 以下 要インストール
	var Helper = newObject("Lbox.BatchHelper");

	$(function(){
	
		// ***************************
		// ボタン表示位置微調整
		// ***************************
		$( ".btn" ).css({
			"margin-top": "-4px"
		});
	
		// ***************************
		// フォルダの選択
		// ***************************
		$("#act1").on("click", function(){
			if ( Helper == null ) {
				alert("BatchHelper はインストールされていません");
				return;
			}

			var path = Helper.GetFolderName( "フォルダの選択" );
			if( path == "" ) {
				alert("フォルダの選択がキャンセルされました");
				return;
			}

			var pathArray = [ path ];
			loadTable( pathArray );

		});

		// ***************************
		// フォルダの選択後
		// フォルダ内の一覧
		// ***************************
		$("#act2").on("click", function(){

			// 1:0固定, 2:タイトル, 3:ファイルシステムのみ, 4:ルートがデスクトップ
			var objFolder = objShell.BrowseForFolder( 0, "フォルダ選択", 1, 0 );
			if ( objFolder == null ) {
				alert("フォルダの選択がキャンセルされました");
				return;
			}
			if ( !objFolder.Self.IsFileSystem ) {
				alert("ファイルシステムではありません");
				return;
			}
			
			var objFolderItems = objFolder.Items();
			
			var arrData = [];

			var nFiles = objFolderItems.Count;
			for( i = 0; i < nFiles; i++ ) {
				var objItem = objFolderItems.Item(i)
				if ( objItem.isFolder ) {
					arrData.push( " [" + objItem.Name +"]" );
				}
				else {
					arrData.push( objItem.Name );
				}
			}

			arrData.sort();
			arrData.unshift("-------------------------------------------------------------");
			arrData.unshift(objFolder.Self.Path);
			
			loadTable( arrData );

		});
		
		// ***************************
		// メモ帳を起動して
		// 文字列を貼り付ける
		// ***************************
		$("#act3").on("click", function(){
			if ( Helper == null ) {
				alert("BatchHelper はインストールされていません");
				return;
			}

			var str = prompt("入力してください","");
			if( str == null ) {
				alert("入力されませんでした");
				return;
			}

			Helper.CopyToMemo( str.replace("\\n", "\r\n") );

			var arrData = [ str ];
			loadTable( arrData );

		});

		// ***************************
		// PC名を取得
		// ***************************
		$("#act4").on("click", function(){

			var arrData = [ WshNetwork.ComputerName ];

			var objFolder = Fso.GetFolder( "\\\\" + arrData[0] + "\\c" );
			
			var objItems = objFolder.SubFolders;
			var objEnum = new Enumerator(objItems);

			while( !objEnum.atEnd() ) {
				arrData.push( objEnum.item()  );
				objEnum.moveNext();
			}

			objItems = objFolder.Files;
			objEnum = new Enumerator(objItems);

			while( !objEnum.atEnd() ) {
				arrData.push( objEnum.item()  );
				objEnum.moveNext();
			}

			loadTable( arrData );

		});

		// ***************************
		// hostname を実行して
		// 結果を取得する
		// ***************************
		$("#act5").on("click", function(){

			var oExec = WshShell.Exec("hostname");
			var str = "";
			str += oExec.StdOut.ReadAll();

			var arrData = [ str ];
			loadTable( arrData );

		});


	});

</script>

<style>
html,body {
	height: 100%;
}

body {
	margin: 0;
}

/* ブロックを左右に表示  */
.ttl {
	display: inline-block;
	width: 120px;
	vertical-align: top;
}
.entry {
	display: inline-block;
}
.line {
	margin-bottom: 0;
}

#head {
	padding: 16px;
}

/* IFRAMEコントロール用  */
#head {
	padding: 16px;
	width: 100%;
	height: 220px;
	background-color: #e0e0e0;
}
#extend {
	padding: 4px 16px;
	display: block;
	margin-left: auto;
	margin-right: auto;
	width: calc( 100% - 3px );
	height: calc( 100% - 220px - 2px );
	border: solid 2px #c0c0c0;
	overflow: scroll;
}
.row_data td {
	cursor: default!important;
}

</style>

</head>
<body>
<div id="head">

	<p class="ttl">
		ダイアログ
	</p>
	<p class="entry">

		<input
			id="act1"
			class="ml-4 btn btn-outline-primary"
			type="button"
			value="フォルダを選択する(BatchHelper)">

		<input
			id="act2"
			class="ml-4 btn btn-outline-primary"
			type="button"
			value="フォルダ選択(Shell.Application)">

	</p>
	<p class="line"></p>

	<p class="ttl">
		
	</p>
	<p class="entry">
		<input
			id="act3"
			class="ml-4 btn btn-outline-primary"
			type="button"
			value="文字列をメモ帳を開いて貼り付ける(BatchHelper)">

		<input
			id="act4"
			class="ml-4 btn btn-outline-primary"
			type="button"
			value="PC名の取得からネットワーク共有内の一覧">

	</p>
	<p class="line"></p>

	<p class="ttl">
		
	</p>
	<p class="entry">

		<input
			id="act5"
			class="ml-4 btn btn-outline-primary"
			type="button"
			value="標準出力からPC名の取得">

	</p>
	<p class="line"></p>

	<h4 class="text-danger"></h4>

</div>
<div id="extend">
	<table class="table table-hover">
		<tbody id="tbl">
		</tbody>
	</table>
<br>
</div>

</body>
</html>


hta.js
// *************************************
// ウインドウの位置とサイズ
// *************************************
function baseWindow( x, y, w, h ) {

	top.moveTo( x, y );
	top.resizeTo( w, h );

}

// *************************************
// デスクトップ中央
// *************************************
function centerWindow( w, h ) {

	// ウインドウの位置とサイズ
	top.resizeTo( w, h );
	top.moveTo((screen.width-w)/2, (screen.height-h)/2 )

}

// *************************************
// CreateObject
// *************************************
function newObject( className ) {

	var obj;

	try {
		obj = new ActiveXObject( className );
	}
	catch (e) {
		obj = null;
	}

	return obj;

}

// *************************************
// テーブル作成
// *************************************
function loadTable( arrayData ) {

	var row_data = "";

	// テーブル表示リセット
	$("#tbl .row_data").remove();
	
	var len = arrayData.length;
	for( i = 0; i < len; i++ ) {
		row_data = $("<tr></tr>")
			.addClass("row_data")
			.appendTo( "#tbl" );

		$("<td></td>")
			.text(arrayData[i])
			.appendTo( row_data );
	
	}

}



関連する記事

HTA + JavaScript + COM / ( その1 ) : BatchHelper(32ビット) と テキストファイル読み込みとプリンタ一覧

HTA (または IE11) で hostname を実行して標準出力からPC名の取得




posted by at 2018-07-28 22:57 | HTA ( HTMLアプリケーション ) | このブログの読者になる | 更新情報をチェックする


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX