投稿者: manualmaton Page 92 of 261

redmineのテーブルをタブ区切りで書くプラグイン導入。(redmine_tsv_macro)

これで、Redmineでの記事やチケットの作成作業が更に捗ります。

プラグイン概要

こういうエクセルファイルのテーブルをredmineのMarkdownに書き写す場合、TyporaやGrowiのテーブル機能を経由して変換する必要がありました。

これをほぼコピペだけで完結させるプラグインです。

参照URL

  • https://taikii.net/posts/2019/12/redmine-plugins-2019/
  • https://github.com/taikii/redmine_tsv_macro

手順

全て管理者権限で実施しています。

redmineディレクトリに移動します。

cd /var/lib/redmine/plugins
# 自分の環境に読み替えます

プラグインをインストールします。

sudo -u www-data git clone https://github.com/taikii/redmine_tsv_macro.git
# Webサービスを実行するユーザに合わせます(apache,nginxなど)

システムに反映させます。

systemctl restart apache2.service
# 自身の環境に合わせます

使い方

テーブルを作りたいところに{{tsv_h }}と入力し、その間にエクセルのブックをコピーしてペーストするだけです。

入力例

{{tsv_h
日付    曜日  天気  朝   朝:場所    昼   昼:場所    夜   夜:場所    備考
2023/1/1    日   晴れ  おせち 自宅  おせち 自宅  カレー 自宅  
2023/1/2    月   晴れ  明太釜玉うどん 自宅  クリームパスタ 自宅  餃子雑煮    自宅  
2023/1/3    火   晴れ  鳥オムレツ   自宅  ソーセージ定食 自宅  カツ丼 自宅  
2023/1/4    水   晴れ  ハンバーグ定食 自宅  春巻き弁当   自宅  雑煮  自宅  
2023/1/5    木   晴れ  ソーセージ定食 自宅  チャーシュー麺セット  ぎょうざの満洲 プラウンマサラ 自宅  
}}

出力結果

Excelのみならず、Googleスプレッドシート経由でも他のアプリを利用することなく、ブラウザ間のみでシートの貼り付けが可能になります。

また、{{tsv_h }}{{tsv }}とすることで、ヘッダを用いないテーブルが作成可能です。

注意点

  • ヘッダは空白行を作らないようにしてください。そうしないと全体のテーブルがずれます。
  • また、セルに改行があったり記号などでも崩れるようです。
  • 崩れないテーブルを作りたい場合は素直に他のツールを使います。

ボードゲーム『ジャイプル』ソロバリアント

ゲームセットアップ図

2人用ボードゲーム『ジャイプル』に以下のソロバリアントがあったのでご紹介です。

対人戦よりも

  • 確率計算
  • リスク予知ならびにリスク判断
  • 慎重な手札管理

が求められるシビアでタイトなバリアントとなっています。

参考:
https://thesoloboardgamer.com/jaipur-solo-variant/

ソロ概要

このソロバリアントではボットとしのぎを削り合います。ボットは定められたアクションに従った行動を取ります。

ボットの特徴

以下が通常と異なります。

  • ボットは手札を持ちません。
  • ボットは商品カードを獲得/交換しません。(代わりに市場にあるカードを捨てます)
  • ボットは家畜(ラクダ)を獲得しますが交換を行いません。
  • ラウンドが終了して得点計算時、ボットは「あなた(プレイヤー)がこのラウンドで獲得しなかった全ての商品トークン」を受け取り、それらをボットの得点に加えます。

ソロバリアント時のセットアップ準備

  1. 山札から全ての商品カード(レッドダイヤ/金/銀/絹/スパイス/革)と家畜カードを各1枚抜き出して裏向きでシャッフルします。これがボットのアクションデッキとなります。
  2. それ以外は通常のゲームと同じです。商品トークンを降順に並び替え、ボーナストークンを3/4/5に分けてランダムに裏向きで並び替え、威信トークンとラクダトークンを脇に置きます。
  3. 山札からラクダカード3枚を抜き出して市場に並べ、再度山札をシャッフルします。
  4. プレイヤーは5枚カードを引きます。この時、手札にラクダがいたらそれらを家畜置き場に置きます。
  5. 山札の上からカード2枚を公開し、市場に加えます。
  6. アクションデッキは裏向きのまま、他のカードと混ざらないよう、適当な位置に置きます。
  7. 第1ラウンドはプレイヤーの先攻で始まります。
ボットのアクションデッキ。商品各1枚と家畜(ラクダ)で構成されています。

ゲーム進行

プレイヤーのアクション

通常のゲームと全く同じです。

  1. 商品カード1枚を市場から獲得する
  2. 市場にある全ての家畜を引き取る
  3. 手札/家畜2枚以上と市場のカードを交換する
  4. 手札の商品1種類を売却してそれに応じた商品トークンを獲得する

上記いずれかを行ったら必要に応じて市場のカードが5枚になるように補充しボットに手番を渡します。

※通常のゲームと同じく手札7枚制限を忘れないようにしてください。

ボットのアクション

ボットの基本動作

  • 適当な位置に置いたアクションデッキを上から1枚めくって公開します。この時に出てきた商品に応じたアクションを行います。
  • アクションを行ったら、(市場にカードを補充して)プレイヤーに手番が移ります。
  • これ以降、ボットに手番が渡った場合、同じようにデッキの一番上のカードを公開してアクションを行っていきます。

基本1:公開した商品カードと同じものが市場に存在しない場合

  • 公開した商品のトークン1枚をボットに渡します。(通常と同じように、ストックにある一番高い価値のトークンです)

基本2:公開した商品カードと同じものが市場に存在する場合

  • 公開した商品と一致した市場のカード全てを捨て札にします。
  • ※ボットがこのアクションを実行した場合、ボットは商品トークンを獲得しません※
  • 捨てたカードが3/4/5枚の場合、これに相当するボーナストークンを裏向きのままボットに渡します。(ラウンド終了まで伏せておきます)

基本3:公開したカードが家畜(ラクダ)だった場合

  • 市場に家畜がある:それら全ての家畜をボットの家畜置き場に置きます。(これらのカードはラウンド終了時のボーナスで参照します)
  • 市場に家畜がない:後述する「ボットの好み」に合わせ、市場に存在する一番高い価値の「商品カード」1枚を捨て札にします。

ボットの例外動作

基本動作に沿わない動きが時々出てくるので、それらを明確化します。

例外1:ボットのアクションデッキが無くなった

ボットの手番終了時にボットのアクションデッキが尽きた場合は順番を並び替えずに裏向きにして次のアクションデッキとします。

例)
ボットは

革 → レッドダイヤ → 家畜 → 銀 → スパイス → 絹 → 金

の順番でカードを公開しました。次以降のアクションも同じく「革」から始まって「金」で終わるよう、裏向きにしてアクションデッキを作ります。

例外2: 公開した商品カードと同じものが市場に存在せず、その商品トークンがない場合

この場合、後述する「ボットの好み」に合わせ、市場に存在する一番高い価値の商品カードを捨て札にします。

例)
ボットは市場にないレッドダイヤを公開したが、レッドダイヤのトークンは尽きた。
市場は 銀 / 革 / スパイス / スパイス / ラクダ が並んでいる。ボットの好みが一番高いのは銀なので、これを捨て札にした。

ボットの好み

カードを破棄する場合の優先順位は次の通りです。

↑優先順位が高い↑

  1. レッドダイヤ
  2. スパイス
  3. 家畜

↓優先順位が低い↓

ラウンド終了と得点計算

ラウンド終了判定

通常のゲームと同じです。各手番終了時、

  1. 商品トークン3種が尽きた
  2. 山札が尽きた

のどちらかでラウンドは終了し得点計算に入ります。

得点計算

  • 得点計算前、ボットは「プレイヤーが獲得しなかった全ての商品トークン(ボーナストークンを除く)」を受け取ります。
  • 家畜置き場にある家畜を参照し、ボットの方が家畜の数が多い場合、ボットはそのボーナスも受け取ります。
  1. ラウンド中にボットが獲得したトークン(ボーナストークン含む)
  2. プレイヤーが獲得しなかった全ての商品トークン

を公開し、その合計点がボットの点数です。

プレイヤーの得点は通常のゲームと同じです。合計値が高い方がラウンドの勝者となり、威信トークンを受け取ります。

次ラウンドの準備とゲーム終了判定

  • ラウンドの勝者が次ラウンドの後攻です。
  • 同じようにチップを市場に並び替え、市場や手札を用意します。
  • ボットのアクションデッキは内容はそのままに裏向きにシャッフルします。
  • ラウンドを続け、先に2つの威信トークンを得た方がゲームの勝者です。

ボードゲーム『ジャイプル』感想。

ボードゲームカフェの方にインストいただき、購入しました。
運/戦略/リスク判断がマッチし、テンポの良さも心地よい2人用ボードゲームです。

概要

プレイヤーはインドの商人。手札や品数の残りなど、限られた資源をうまくやりくりして対戦相手よりも多くのお金を稼いでいきます。

  • 衣服/スパイス/貴金属といった商品を仕入れ
  • 商品を有利な条件で売りさばく

ことで資金(ルピー)を稼いでいきます。商品チップが3種類尽きたか山札が尽きればラウンド終了のトリガー。ラウンドごとに得られた資金(ルピー)を計算し、2本先取したプレイヤーがマハラジャ専属商人としての栄光を得ます。

良かったと思った点

言語依存のないコンポーネント

商品/家畜が書かれたカードと数字が記載された商品やボーナスチップのみ。そのため、簡単な計算ができる年齢から楽しめます。

先行売却とまとめ売りのジレンマ

  • (銀を除き)先に売却を行った者は多くの資金を得られる
  • まとめて売却した者には追加のボーナス

の2つがうまくマッチしているため、「先に売却したいけど、もう1枚/2枚あれば」のチキンレースを味わえます。しかも、商品の数は限られている上にラウンド終了のトリガーにも直結。

この、GoとStayを常に秤にかけながらのやりとりがとても白熱です。

「家畜(ラクダ)」の存在

本作の最大のキーアイテムです。売却を行えば行うほど減る手札。これを補うのが市場にある家畜(ラクダ)カードを引き取るアクション。
これは擬似的な手札として機能し、持っていればいるほど有利な商品仕入れにつながります。

しかし、このアクションを採用することは「市場によりよい品物があふれる可能性」を対戦相手に与えます。これが先の「先行売却/まとめ売り」システムと合致しています。

この、「今見えている商品を仕入れる/交換する」か「この次に相手に有利な選択肢を与えてでも後の取引につなげるか」のインタラクションはこのゲームの醍醐味でした。

難点だと思ったところ

見落としやすいルールあり

  1. カードを交換する場合は2枚以上(1枚だけの交換は不可)
  2. 高価な商品(銀/金/レッドダイヤモンド)は手札に2枚以上ないと売却できない
  3. 売却できる製品は1種類のみ
  4. 売却する商品のカード枚数>トークン枚数の状態でもまとめ売りボーナスは得られる

など、売却時に関する細かいルールを見逃しやすいので、インストの際には注意が必要です。

ラウンドごとのセットアップ

  • システムの都合上、ラウンドごとに全ての商品トークンを昇順に並べる必要があります。これが不慣れな状態だと面倒です。
  • 山札も切り直す必要がありますが、このときにシャッフルが甘いと商品をまとめ引きする可能性が非常に高いです。

まとめ

  • ほどほどの時間で終わる中箱寄りの小箱
  • 駆け引きも楽しめ
  • 運と戦略とリスク判断の悩みどころ満載

これもまた「古典/名作と呼ばれるには理由がある」と納得した一本でした。

カードとチップのみのシンプルなコンポーネントも初心者に優しく、運の要素があるために経験者が絶対有利にならないのが個人的な評価点。

余談ではありますが、サードパーティー製の商品アップグレードトークンがあります。

大型ボードゲームが(下手すれば格調込みで)買える値段のためおいそれとオススメはできませんが、『宝石の煌めき』と同じような質感で対戦ができるために本作が気に入った方はこちらへの差し替えを提案したいです。

袋、差し替え。(ボードゲーム『宝石の煌めき:デュエル』アップグレード

ぬくみ温泉開拓記に引き続き、こちらもアップグレードです。

左の備え付けから、右の巾着袋へとアップグレード。

裏地もしっかりしているので手触り、視認性抜群。

元の箱にもキチッと収まって

更に彩りと華やかさを加えてくれました。

ボードゲーム『ジャイプル』開封とアップグレード。

ボードゲームカフェで遊んだ中で特に印象が残った『ジャイプル』。

「ラクダ」を媒介とした取引が優秀。ルールも単純なのに熱い駆け引きが楽しめます。

また、2人用にありがちなアプストラクトでないのでライト層にも届く秀逸さも。

そこで、これは手元においておきたいと入手しました。

すでにチップは抜かれた状態であり、インサートにカードがしっかり収まります。

ではありますが、

このチップの視認性が微妙に良くないのが難点です。そこで、

専用のアップグレードトークンも一緒に購入です。

『宝石の煌めき』と同じようなズシッとした重量感。縁も種類ごとに塗られているために視認性も完璧。

専用インサートを抜けばもとの箱にも収まるのも好感触です。

本作の入手で、二人用のボードゲームの選択肢に幅が広がりました。

mod_securityが検知した不審なアクセスをufwで一括遮断。

あらまし

apacheにmod_securityを導入後、以下を実施しました。

  1. Mod_Securityが検知した不審なアクセスのうち、IPアドレスのみを抜き出す
  2. その抜き出したIPアドレスをMod_securityによってブロックする
  3. これを日次で追加していく

この方法はそこそこうまくいっています。ですが、「これら不審なアクセス元はWebだけでの攻撃だけか? メールやSSHへの攻撃もしているだろう」と思い立ち、不審なアクセスを元から絶つ方法を採りました。

環境

AWS Lightsailで以下を動かしています。

  • Ubuntu 20.04
  • いわゆるLAMP環境

前提

以下が準備済みです。

  • Mod_Security導入済み
  • 前述したmod_securityから不審なアクセス元のみを抜き出したIPアドレスのリストがある
    • このリストをnegativelist.txtとして用意しています。
リスト形式
192.168.0.1
192.168.1.123

のように、一行ずつIPアドレスだけが記述されているファイルです。

さっくりとした手順

  1. ufwを有効化します。
  2. 不審なアクセス元のIPアドレスのみを抜き出したnegativelist.txtを一行ずつ読み込みアクセスを遮断するシェルスクリプトを作成します。
  3. 作成したスクリプトを実行します。

実行の前の注意事項

  • 自環境のアクセスが遮断される可能性があることに注意してください。
  • 事前にスナップショットやバックアップを取り、失敗した時に備え切り戻しができる準備を強く推奨します
  • この方法によりアクセスができなくなった等に対し、筆者は責任を負いかねます。

手順

全て管理者権限で実施しています。

ufwがインストールされていることを確認します。(導入済みの場合はスキップ)

apt list ufw
#  [インストール済み] となっていることを確認します。

ufwを有効化します。(導入済みの場合はスキップ)

ufw enable

許可するサービスを指定します。(導入済みの場合はスキップ)

ufw limit ssh
# 連続したSSHアクセスを遮断します
ufw allow http
ufw allow https
# その他の許可するサービスは必要に応じて指定してください

この段階で、以下を確認します。

  • ターミナルクライアントからSSH接続ができること
  • 既存のサービスが外部NWからアクセスできること

サービス確認

ufw status
実行例
状態: アクティブ

To                         Action      From
--                         ------      ----
22                         LIMIT       Anywhere                  
80                         ALLOW       Anywhere                  
443                        ALLOW       Anywhere                  
22 (v6)                    LIMIT       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)             

シェルスクリプトを作成します。

vi /hoge/add_ufw.sh
スクリプト内容
#!/bin/bash

# UFWを念のため事前に有効化します
ufw enable

# ファイルに書かれたIPアドレスを一行ずつ読み込みアクセスを遮断します。
while read line; do
    ufw deny from $line
# 読み込むファイルを指定します
done < /path/to/negativelist.txt

シェルスクリプトに実行権限を与えます。

chmod +x /hoge/add_ufw.sh

シェルスクリプトを実行します。

./hoge/add_ufw.sh
# 行数によっては相当な時間がかかります

実行後の確認を行います。

ufw status
実行例(抜粋)
Anywhere                   DENY        192.168.0.1              
Anywhere                   DENY        192.168.1.111              

まとめ

これで、「Webサイトに対して不審なアクセスを行ったIPをまるごと遮断する」ことが可能になりました。相当乱暴な方法ではあることにご注意ください。

exitの恐怖。(systemctlの罠)

かなりのヒヤリハットが起きました。

現象:突然のアクセス不可

AWS Lightsailで動かしているUbuntu。その設定変更を終えたときです。

突然、SSH接続が切れました。Webブラウザ上からも接続できず。これは一体と思いながらAWSコンソールを確認するとインスタンスは停止状態。

取り急ぎ、再度起動してログインできることを確認し、「なぜ、こうなってしまったのか」を確認します。

原因と思われるコマンド

さっそく、historyを追ってみます。その中に

systemctl exit

と入力していたことがわかりました。

  • 一度、systemctlでサービスの状態を確かめようとする
  • でも、普通に起動していたことは確認できていた。
  • Ctrl + Cでコマンドをキャンセルするのを忘れ
  • そのままログアウト感覚で「exit」を入力

が、このコマンドを発行した経緯だと推測。そこで、もう一つの仮説です。

systemctl exitのコマンド結果

「このコマンドを発行することでシャットダウンとなるのではないか」と推測し、物理環境のUbuntu 20系Linuxで試してみました。

systemctl exit

結果、ものの見事にシャットオフ。Webの記事などで乗っていない挙動だっただけに焦りましたけど、文脈としては腑に落ちます。

今後、systemctl系を触るときはもっと注意が必要だと改めて悟りました。

Ubuntu 22.04系にRuby2.7をインストール

結論から言えば、Ubuntu 22.04系は普通にやったのではRuby 2.7はインストールできません。

なぜならRuby 2.7が必要とするOpenssl1.1.1系をUbuntu 22.04系がサポートしていないからです。

そんな中で、どうしてもこのバージョンを入れたいというケースがあったので対応を行いました。

手順

参考
https://github.com/rbenv/ruby-build/discussions/1940#discussioncomment-2663209

依存関係をインストールします。

sudo apt install git build-essential checkinstall zlib1g-dev

rbenvをインストールします。

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
rbenvのパスを通します。
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

source ~/.bashrc

ruby-buildをインストールします。

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

OpenSSL 1.1.1をインストールします。

cd ~/Downloads
wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz
tar xf openssl-1.1.1q.tar.gz

cd ~/Downloads/openssl-1.1.1q
./config --prefix=/opt/openssl-1.1.1q --openssldir=/opt/openssl-1.1.1q shared zlib
make
make test
sudo make install

シンボリックリンクを張り替えます。

sudo rm -rf /opt/openssl-1.1.1q/certs
sudo ln -s /etc/ssl/certs /opt/openssl-1.1.1q

ruby 2.7系をインストールします。

RUBY_CONFIGURE_OPTS=--with-openssl-dir=/opt/openssl-1.1.1q
RUBY_CONFIGURE_OPTS=--with-openssl-dir=/opt/openssl-1.1.1q rbenv install 2.7.6

rbenv global 2.7.6

インストールされていることを確認します。

ruby -v
ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux]

rootが参照できるようにパスを通します。

which ruby
# /home/user1/.rbenv/shims
# 結果を控えておきます
sudo su -

# ↓以下、rootでの作業↓
echo "export PATH=$PATH:/home/user1/.rbenv/shims" >> ~/.bashrc
source ~/.bashrc
which ruby
# /home/user1/.rbenv/shims
# 控えておいたパスであることを確認します
ruby -v
# ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux]
# 2.7系であることを確認します

と、ここまで書きましたがきっとDockerなどのコンテナを使ったほうが楽かと思います。

ボードゲーム『宝石の煌めきデュエル』感想。

名作『宝石の煌めき』をブラッシュアップ。加わった新要素の数々がいい意味で「屋上屋を架す」作品となっていました。

  • 不確実性が増したトークン取得
  • 新たな資源と勝ち筋によるスリリングな立ち回り
  • 特権やカード効果により変化する盤面

など、序盤から終盤まで息詰まる攻防が楽しめるオススメのゲームです。

概要

プレイヤーはルネサンスの宝石商ギルドの長。更なる冨と商人としての威信をかけ、ライバルとしのぎを削っていきます。

本家と異なる点

大まかなシステムは本家『宝石の煌めき』(以降記述:本家)と同じなので割愛。

「2人用」の縛りの他、以下の要素が加わっています。(また、記述を省いている変更点もいくつかあります)

「真珠」の登場

これがある意味で一番大きな変化かもしれません。新たなトークン(真珠)とそれを必要とする高付加価値のカードにより、駆け引きが多くなりました。(それと同時にカードの確保の重要さも増しました)

宝石トークンの取得/支払い方法

5×5のマスから縦横斜めに連続したトークン3個のみを取る方法に変わりました。(2つしかないものや黄金は取得不可)また、トークンを用いてカードを購入した場合は置き場ではなく袋に詰められます。そして、後述する「特権」によってのみ補充されます。

これによって不確実性が加わって本家では終盤使わないようになるトークン取得に大いに意義があります。

「特権」の存在

  • 後手番を選んだとき
  • 相手が袋に詰められたトークンを補充した
  • 相手が同種3枚のトークン(または真珠2枚)を同時に取った
  • 後述するカードや王侯カードの効果により

等で、巻物状のトークン「特権」を得ることができます。これはメインアクションの前にストックに戻すことによって黄金以外の好きなトークンを1枚取得できます。

ある種のワイルドカード(黄金)と言えますが、序盤から終盤まで役立つトークンです。

獲得時のカード効果

本家『宝石の煌めき』の拡張「東洋」のように、獲得時にボーナスをもたらすカードがいくつかあります。

  • 追加ターンを得る
  • ストックや相手から黄金以外のトークン1個を得る
  • 取得済みのボーナスに重ねるワイルド
  • 後述する王冠の取得

この存在で計画が狂うことがしばしば。本家でしばしば発生していた中盤以降の手なり感/作業感をそぎ落としています。

勝ち筋と終了トリガーの変化

まず、本家の勝利手段である終了のトリガーとなる威信点が15点→20点に大きく引き上げられました。これの他に

  1. 一色のカードの威信点を10点取得していること
  2. 取得したカードに書かれている「王冠」が10個あること

が加わったので、相手の勝ち筋を予測した上での立ち回りの必要が生まれます。

そして、上記の条件を満たした時点でゲーム終了。いわゆるサドンデス方式となるので、終盤ほど手が重くなります。

良かったと思った点

「最序盤からの計画が一気に崩される緊張感」に尽きます。並べられている発展カードと貴族で最善手を考案したところで上述したトークン取得方法やカード効果によって場は変わります。(筆者の場合、あと少しでお目当てのカードが取れると言うときに相手の「トークンを奪う」効果で2手もの損がありました)

また、王侯(貴族)の取得方法も極めて緩く、制限があるので「貴族で勝つ」が難しくなってきていました。

意見が分かれると思った点

ルールやコンポーネントが多い

カード、タイル、トークンのみの潔いコンポーネントではないため、覚えることが多いです。インストはやや時間を要します。(特にアイコンの効果)

カードサイズが異なる

本家より箱がコンパクトである分、カードもミニユーロサイズと大幅に簡略化。テーブルの幅が少なくて済みますけれど、持ち慣れない方は注意が必要です。

イラストのテイストの違い

ルネサンスを思わせる写実的なイラストではなく、今風のデザイン。「好みの問題」と言ってしまえばそれまでですが、こちらはまだ慣れません。

まとめ

本家『宝石の煌めき』の拡大再生産や資源管理の面白さに加え

  • 戦略と戦術と場の状況の読み合い
  • トークンやカードの不確実性がもたらす緊張感
  • 増えた勝ち筋の悩ましさ

が非常に洗練されたゲームとなっていました。2人用の今後の定番となってほしい作品です。

荷台と背景。

年末、Web広告を見て購入に至ったもの。スバル・サンバーのラジコンです。

走らせると言うよりも、「この荷台を含めて使えそうだ」という判断。

思った通り、スタンドなしでもfigmaを座らせて車自体が背景にもなりました。

文具と併せても映えます。

また、これを使うと言うことは自然と背景も広くなるので広角ズームの練習の題材としても役立つ感じです。

Page 92 of 261

Powered by WordPress & Theme by Anders Norén