木曜日, 10月 09, 2025

TCDW8549 
踏み台から落ちて転けてしまいました

Baby Alien 155
日本髪のオバサン系(^o^)
昨日、朝食の準備をしていた時・・・高さ300mmの踏み台から落ちて転けてしまいました。間抜け丸出しです。怪我は無かったのですが右足の親指を少し打ってしまいました。

水曜日, 10月 08, 2025

Photoshopで背景画像はメインから使い回しも芸

Photoshopで背景画像に悩んでいるときは、意外にもメイン画像からの使い回しという手も芸の内です。

用意した画像です。

レイヤーの複製を2つ作成し、下のレイヤーに対して[フィルター]>[ぼかし]>[ぼかし(放射状)]などで適宜調整します。

[フィルター]>[ぼかし]>[ぼかし(放射状)]の処理結果。

これだけでもいい感じですが・・・

2つ作成した複製レイヤーの真ん中のレイヤーを[イメージ]>[色調補正]>[彩度を下げる]でグレースケール化し・・・

レイヤーマスクで足下だけを残します。

これだけでイメージが格段に向上します。

ここまでの段階でのレイヤーの状態。

ここで、更にアレンジとして[フィルター]>[Camera Raw]にて[効果]>[周辺光量補正]で適宜調整し・・・

合成すればいい感じに馴染みます。

更に調整してたければ、任意の円形グラデーションの描画モードを変更するだけでも深みが増します。

ここでは[ハードライト:100%]としました。

最終的なレイヤーの状態です。

TCDW8548 
その頃の色々な思い出がぶち壊されてしまいます

15年ほど前に、子供の頃住んでいた町を車で偶然通過したことがありました。アレはダメですね。景観の激変により、その頃の色々な思い出がぶち壊されてしまいます(>_<)

火曜日, 10月 07, 2025

Illustratorでの作図基本 26 
最前面のオブジェクトで作成はハンドルが命

質問がありましたので・・・
任意にオブジェクトを有機的な形状に貼り付けたように変更したい場合は、オブジェクトの上に形状データを配置し、両方を選択して[オブジェクト]>[エンベロープ]>[最前面のオブジェクトで作成]を実行しますが、その際にハンドルの有無や長さが決め手になります。

例えば上の様なデータ(※)を変形させます。

※線だけのデータです。

変形したい形状を作成します。ハンドルを含むのは中心のアンカーポイントだけです。

サンプルデータの上に変形したい形状を配置し、両者を選択して[オブジェクト]>[エンベロープ]>[最前面のオブジェクトで作成]を実行すると・・・

一見上手くいった感じになりますが摩周の箸が潰れた感じになってし舞います。これは四隅のアンカーポイントにハンドルがありません。

そこで四隅のアンカーポイントにハンドルを追加しますが、上の様に類直方向にもでたらめな長さのハンドルを設定すると・・・

ハンドルの長さに影響し、結果は歪んでしまいます。

結果として上の様なハンドル状態にすれば・・・

いい感じに収まります。

処理後でもハンドルの微調整は可能です。

TCDW8547 
広告で張り詰められていて残念な結果でした

久しぶりにバスに座ることができたので車窓からの風景を楽しもうと思っていたら、窓は読みたくもない広告で張り詰められていて残念な結果でした。

月曜日, 10月 06, 2025

JavaScriptでAI遊び 72 
Illustratorで曲線の長さを求める

クローズドパス(※)やガイド、クリッピングパスなどは無視します。
「カーブを直線にしたときの長さ(アンカー間)」です。
ベジェ曲線そのものの長さではありません。

※一箇所に切り込みを入れて見かけ上はクローズドパスでも実質オープンパスにすれば処理可能です。

if (app.documents.length ===
        0 || app.activeDocument.selection.length === 0) {
alert("オープンパスを1つ以上選択してください。");
} else {
var doc = app.activeDocument;
var sel = doc.selection;
var ptToMm = 0.35278; // 1ポイント = 約0.35278mm

// オープンパス(!item.closed)のみ対象
for (var i = 0; i < sel.length; i++) {
var item = sel[i];
if (item.typename === "PathItem" && !item.closed) {
var points = item.pathPoints;
var total = 0;

// アンカーポイントの anchor 同士の距離を
            // √(dx² + dy²) で算出
for (var j = 0; j < points.length - 1; j++) {
var pt1 = points[j].anchor;
var pt2 = points[j + 1].anchor;
var dx = pt2[0] - pt1[0];
var dy = pt2[1] - pt1[1];
total += Math.sqrt(dx * dx + dy * dy);
}

// Illustrator の単位である ポイント(pt)を
            // ミリメートル(mm)に換算
var lengthMM = total * ptToMm;
alert("オープンパス " + (i + 1) +
                " の直線化した長さ: " + lengthMM.toFixed(2) + " mm");
}
}
}

直径80mmの円を作成します。円周は251.20mmになりますが、左端のアンカーポイントをハサミツールで切り込だ状態では226.28mmとなりました。

アンカーポイントを追加を1回実行して処理すると・・・
244.92mmとなりました。

アンカーポイントを追加を2回実行して処理すると・・・
249.75mmとなりました。

アンカーポイントを追加を3回実行して処理すると・・・
250.96mmとなりました。

ちなみに、アンカーポイントを追加を4回実行して処理すると・・・
251.26mmとなり、結果オーバとなりましたました。正確な値を求める訳ではな区、あくまでも目安なのでアンカーポイントを追加は3回あたりが妥当ですね。

TCDW8546 
スーパーでバナナを買おうと思ったら・・・

スーパーでバナナを買おうと思ったら・・・バナナコーナーは、ひと房ずつ物色している四婆に阻まれて購入を一時断念。血眼になって物色する姿は、もはや妖怪ですね。

日曜日, 10月 05, 2025

Blender Study Notes 63 
ブリッジ処理は反対方向になる場合がある?

前回の続きです。ふざけ半分に作成していて気がつきました。

ベースは前回と同じです。まず、[オブジェクトモード]で事前に両方のオブジェクトを選択し、右クリックで表示されるメニューから[統合(※)]を実行します。

※Windows: control J
macOS: command J

あとは[編集モード]に切り替え、ブリッジ面を選択してから右クリックで表示されるメニューの[面をブリッジ]を選び、[分割数]を3としました。ここまでは前回と同じです。問題はここからです。

続けて上図のように面を選択してブリッジを行います。

上は処理結果です。

ここで上の様に面を選択してブリッジを実行すると・・・

こんな感じになるのですが・・・

反対側も同じように処理すると・・・

裏返ってしまいます。パラメーターで修正は出来ない感じ。

こんな時はオブジェクトの複製をミラー配置し・・・

余分なパーツを削除してから・・・

右クリックで[辺から面を作成]を実行し・・・

両方のオブジェクトを選択後に右クリックで表示されるメニューから[統合(※)]を実行します。

コレで求める変な形状が完成しました。

[モディファイアー]>[モディファイアーを追加]>[生成]>[サブディビジョンサーフェス]を設定した状態です。

Blender 4.5.0 

TCDW8545 
目の前でボール遊びに使われて壊されたことを思い出

Baby Alien 153
青いダルマ系(^o^)
ダルマさんと言えば、中学1年生時に美術の粘土細工で作成したダルマさんを上級生に目の前でボール遊びに使われて壊されたことを思い出しました(>_<)。今でも根に持っています。ところで10を数える言い方として「達磨さんが転んだ」がポピュラーですが、別の言い方には「坊さんが屁をこいた」「インディアンの褌」「ウルトラマンが負けた」「乃木さんは偉いひと」が有りますね。

土曜日, 10月 04, 2025

Excel VBA 54 
Excelで選択したセルに罫線を自動設定

よく使う「選択したセルに罫線設定」をショートカットで処理したいので作成しました。

基本構文は・・・
With Selection.Borders(位置)
.LineStyle = xlContinuous ' 実線
.Weight = xlThin ' 太さ(細線)
.Color = RGB(0, 0, 0) ' 色(黒)
End With

太さ指定は・・・
xlHairline … 極細
xlThin … 細
xlMedium … 中
xlThick … 太

Sub 外枠だけ太線()
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThick
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
End With
End Sub

処理結果

Sub 外枠太線_内側細線()
' 外枠 太線
Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
Selection.Borders(xlEdgeLeft).Weight = xlThick
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeTop).Weight = xlThick
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).Weight = xlThick
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).Weight = xlThick
' 内側 細線
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).Weight = xlThin
Selection.Borders(xlInsideHorizontal).LineStyle = xlContinuous
Selection.Borders(xlInsideHorizontal).Weight = xlThin
End Sub

処理結果

Sub 全体に中線()
With Selection.Borders
.LineStyle = xlContinuous
.Weight = xlMedium
.Color = RGB(0, 0, 0)
End With
End Sub

処理結果