見積太郎で作ったシミュレーターに、
画像やイラストを追加する方法
見積太郎で作成したシミュレーターには、商品写真・施工イメージ・参考イラスト・説明図などの画像を追加できます。
この記事では、既存のプロダクトコードをAIに渡して、画像を追加してもらう手順を、わかりやすく説明します。
画像追加でできること
見積太郎のシミュレーターは、項目ラベルや説明文の上下に画像やイラストを設置できます。
商品・メニューの画像
飲料、印刷物、美容メニュー、物販、レンタル用品など、商品やメニューのイメージを見せたい場合に向いています。
施工・作業イメージの画像
リフォーム、清掃、修理、撮影、イベント設営など、言葉だけでは伝わりにくい仕上がりや作業内容を補足できます。
飲料購入シミュレーターに画像を追加する例
「見積太郎で複雑な計算ロジックの見積もりフォームは作れる?実践例」で作成した、飲料購入シミュレーターを例に、画像を追加する手順を説明します。
このシミュレーターは、コーラ、カルピス、天然水、生ビールの購入本数を入力するだけの単純なサンプルとなっています。
上記のシミュレーターに、次のように画像を追加します。
| コーラ | 「コーラ購入本数」のラベルの上に cola.jpg を表示します。 |
|---|---|
| カルピス | 「カルピス購入本数」のラベルの下に calpis.png を表示します。 |
| 天然水 | 「天然水購入本数」のラベル下かつ説明文の上に https://estimator.jp/img/water.jpg を表示します。 |
| 生ビール | 「生ビール購入本数」の説明文の下(選択項目の上)に beer.jpg と https://estimator.jp/img/beer.jpg の2枚を表示します(PCでは横並び、スマホでは縦並び)。 |
画像ファイル名と画像URLの違い
AIに画像追加の指示をするときの、画像の指定方法には次の2通りがあります。
ファイル名だけで指定する場合
cola.jpg や calpis.png のようにファイル名だけで指定する場合は、シミュレーターの img フォルダ内に、その画像ファイルを置いておく必要があります。
画像URLで指定する場合
https://estimator.jp/img/water.jpg のように、すでにアップロード済みの画像URLを指定する場合は、シミュレーターの img フォルダ内に同じ画像を置く必要はありません。
画像が表示されない原因で多いのは、画像ファイルの置き忘れ。
ファイル名だけで指定する場合は、プロダクトコードを修正するだけでなく、シミュレーターの img フォルダ内に実際の画像ファイルも用意してください。
AIに依頼するときの文章例
作成済みのシミュレーターに画像を追加する場合は、そのシミュレーターで使っているプロダクトコード var PRODUCTS = [ ... ]; の全文をAIに渡して、たとえば次のように依頼します。
添付のプロダクトコードに、以下の画像を追加してください。
① コーラ購入本数のラベルの上に cola.jpg の画像を表示してください。
② カルピス購入本数のラベルの下に calpis.png の画像を表示してください。
③ 天然水購入本数のラベル下かつ説明文の上に https://estimator.jp/img/water.jpg の画像を表示してください。
④ 生ビール購入本数の説明文の下(選択項目の上)に beer.jpg と https://estimator.jp/img/beer.jpg の2枚を表示してください。
既存の価格、税率、割引、条件分岐、選択肢のロジックは変更しないでください。
修正後の var PRODUCTS = [ ... ]; の完全なコード全文を提示してください。
===AI向け説明用テンプレート==
(この下に、次の章で案内する「AI向け説明用テンプレート」を貼り付けてください)
この依頼文で大切なのは、どの項目に、どの画像を、どの位置で表示したいかを分けて書くことです。
また、「既存の価格・税率・割引条件は変更しない」と明記しておくことで、AIが不要な修正を加えるリスクを減らせます。
AI向け説明用テンプレート
画像の表示位置は、AIが誤解しやすいため、プロダクトコードをAIに渡して画像追加を依頼する際には、以下のテンプレートを一緒に貼り付けてください。
Prompt TemplateAI向け説明用テンプレート開閉
===AI向け説明用テンプレート==
このプロダクトコードは、見積太郎用の PRODUCTS 定義です。
添付された var PRODUCTS = [ ... ]; の構造をできるだけ維持したまま、画像表示用の指定だけを追加してください。
以下のルールに従って、AI側で適切な PRODUCTS 構造へ変換してください。
※このテンプレートは、core.js が section の image / image_alt / images / image_columns / image_position:'below_help' に対応している前提です。
※core.js がこれらに未対応の場合、PRODUCTSコードだけを修正しても画像が表示されない、または指定位置に表示されない可能性があります。
【最重要ルール】
1. 画像は金額計算には含めません。
画像指定は、入力画面上の説明・補足・商品写真・施工イメージ・参考図・参考イラストとしてのみ扱います。
2. 既存の id / kind / pricing / rules / visible_if / options / taxRate / 割引ロジックは変更しないでください。
画像表示のためだけに、価格計算や条件分岐の構造を変えないでください。
3. 画像表示用の指定には、price / monthly / unit / monthly_unit / taxRate を付けないでください。
4. 出力は、修正後の var PRODUCTS = [ ... ]; の完全なコード全文だけにしてください。
説明文や省略記号は不要です。
5. ユーザーが「見出しを付けて」「キャプションを付けて」と明示していない限り、画像用の見出し・説明文・キャプションを勝手に作らないでください。
6. 特に、画像だけを表示するために kind:'info' を追加する場合、label / title / help / desc / text は原則として付けないでください。
「〇〇参考画像」「〇〇イメージ」「参考画像」などのラベルをAIの判断で追加しないでください。
7. image_alt はアクセシビリティ用の代替テキストです。画面上の見出しとして表示するものではありません。
image_alt には短く自然な説明を入れて構いませんが、label と混同しないでください。
【画像ファイル・URLの扱い】
1. URL指定がある場合は、そのURLをそのまま使ってください。
例:
https://example.com/sample.jpg
2. URL指定がなく、sample.jpg / image.png / illustration.webp のようなファイル名だけが指定されている場合は、原則として img/ を付けた相対パスにしてください。
例:
sample.jpg → img/sample.jpg
image.png → img/image.png
illustration.webp → img/illustration.webp
3. ファイル名だけの画像は、ユーザーが img フォルダ内に設置する前提です。
ただし、その説明文をコード内に追加する必要はありません。
【画像指定の書き方】
■ 1枚画像の場合
対象の section に次のように追加します。
image: 'img/sample.jpg',
image_alt: '対象項目の参考画像'
■ 複数画像の場合
対象の section に次のように追加します。
images: [
{ src: 'img/sample1.jpg', alt: '対象項目の参考画像1' },
{ src: 'img/sample2.jpg', alt: '対象項目の参考画像2' }
],
image_columns: 2
※ 複数画像を使う場合は、同じ section に image / image_alt を重複して指定せず、images に統一してください。
※ ユーザーが「PCでは横並び」「2枚並べて」「スマホでは縦並び」などと指示した場合は、image_columns:2 を指定してください。
【対象項目の見つけ方】
1. ユーザーが「〇〇」「〇〇の項目」「〇〇のラベル」「〇〇の説明文」などの項目名を指定した場合、その文字列と一致または近い label を持つ section を探してください。
2. PRODUCTS では、対象が quantity / single / multi / qoptions のいずれかになっている場合があります。
対象の表示見出しが section の label として存在する場合は、その section を優先して修正してください。
3. qoptions の中に options があり、option 側にも同じような label / desc がある場合でも、ユーザーが「〇〇のラベル」「〇〇の項目」と言っている場合は、原則として親の qoptions section を対象にしてください。
4. 既存構造を大きく作り替えないでください。
画像を追加するためだけに qoptions を quantity に変換したり、options の構造を分解したりしないでください。
5. 例に出てくる target_section / target_image_before / target_image_after / step_image_intro などのIDは説明用です。
実際の出力では、既存の section id を確認し、それに合わせた一意のIDに置き換えてください。
例:既存 section の id が service_plan の場合、画像用IDは service_plan_image_before / service_plan_image_after などにしてください。
【既存の画像指定がある場合】
対象 section に既に image / image_alt / images / image_columns / image_position がある場合は、同じ目的の画像指定を重複して追加しないでください。
ユーザーが新しい画像への差し替えを希望している場合は、既存の画像指定を新しい指定に置き換えてください。
ユーザーが画像の追加を希望している場合は、既存の image / image_alt を images 配列に統合し、複数画像として扱ってください。
同じ section 内に image と images を併用しないでください。
【説明文の位置に関する注意】
PRODUCTSでは、説明文が section の help / desc にある場合と、options 内の desc にある場合があります。
ユーザーが「説明文の下」と指示した場合は、対象 section 自体に image / image_alt または images を追加し、image_position:'below_help' を指定してください。
この指定では、画像は「対象sectionの説明文の下、または選択肢一覧・入力欄の上」に表示されます。
ただし、qoptions / single / multi の各選択肢カード内にある desc の直下へ画像を差し込む処理は、現在の標準仕様では対象外です。
画像追加のために options の構造を作り替えたり、option.desc を移動したりしないでください。
【ユーザーの自然文をどう解釈するか】
■ A. 「〇〇のラベルの上」「〇〇の項目の上」「〇〇の上」と言われた場合
対象 section の直前に、画像だけの kind:'info' section を追加してください。
この場合、kind:'info' には、とくに指定がない限り label / title / help / desc / text / caption を付けないでください。
例:
{
kind: 'info',
id: 'target_image_before',
image: 'img/sample.jpg',
image_alt: '対象項目の参考画像'
},
{
kind: 'qoptions',
id: 'target_section',
label: '対象項目',
options: [
/* 既存の内容 */
]
}
※ id は既存idと重複しない自然な名前にしてください。
※ 「target_image_before」のように、対象が分かるIDを付けてください。
※ 「〇〇参考画像」のような label は付けないでください。
■ B. 「〇〇のラベルの下」「〇〇のラベル直下」「〇〇の説明文の上」と言われた場合
対象 section 自体に image / image_alt または images を追加してください。
対象 section の前後に kind:'info' の画像専用 section を追加しないでください。
この指定は、項目名のすぐ下、または説明文より上に画像を表示したいという意味として扱ってください。
例:
{
kind: 'qoptions',
id: 'target_section',
label: '対象項目',
image: 'img/sample.jpg',
image_alt: '対象項目の参考画像',
options: [
/* 既存の内容 */
]
}
複数画像の場合:
{
kind: 'qoptions',
id: 'target_section',
label: '対象項目',
images: [
{ src: 'img/sample1.jpg', alt: '対象項目の参考画像1' },
{ src: 'img/sample2.jpg', alt: '対象項目の参考画像2' }
],
image_columns: 2,
options: [
/* 既存の内容 */
]
}
■ C. 「〇〇の説明文の下」「〇〇の説明文の下、入力欄の上」「〇〇の説明文の下、選択肢の上」と言われた場合
対象 section 自体に image / image_alt または images を追加し、image_position:'below_help' を指定してください。
例:
{
kind: 'qoptions',
id: 'target_section',
label: '対象項目',
image: 'img/sample.jpg',
image_alt: '対象項目の参考画像',
image_position: 'below_help',
options: [
/* 既存の内容 */
]
}
※ この位置は「ラベル直下」とは異なります。
※ 対象 section の後ろに kind:'info' を追加すると、入力欄・選択肢の下に出る可能性があるため、説明文の下に置きたい場合は image_position:'below_help' を使ってください。
■ D. 「〇〇の入力欄の上」「〇〇の選択肢の上」と言われた場合
「説明文の下、入力欄・選択肢の上」と同じ意味として扱ってください。
対象 section 自体に image / image_alt または images を追加し、image_position:'below_help' を指定してください。
■ E. 「〇〇の入力欄の下」「〇〇の選択肢の下」「〇〇の項目の下」「〇〇の下」と言われた場合
対象 section の直後に、画像だけの kind:'info' section を追加してください。
この場合、kind:'info' には、とくに指定がない限り label / title / help / desc / text / caption を付けないでください。
例:
{
kind: 'qoptions',
id: 'target_section',
label: '対象項目',
options: [
/* 既存の内容 */
]
},
{
kind: 'info',
id: 'target_image_after',
image: 'img/sample.jpg',
image_alt: '対象項目の参考画像'
}
※ 「〇〇参考画像」のような label は付けないでください。
■ F. 「STEPの冒頭に画像を表示」と言われた場合
該当 STEP の sections 配列の最初に、画像だけの kind:'info' section を追加してください。
例:
{
kind: 'info',
id: 'step_image_intro',
image: 'img/sample.jpg',
image_alt: '参考画像'
}
※ とくに指定がない限り、 label / title / help / desc / text / caption を付けないでください。
■ G. 「STEPの最後に画像を表示」と言われた場合
該当 STEP の sections 配列の最後に、画像だけの kind:'info' section を追加してください。
例:
{
kind: 'info',
id: 'step_image_end',
image: 'img/sample.jpg',
image_alt: '参考画像'
}
※ とくに指定がない限り、 label / title / help / desc / text / caption を付けないでください。
【キャプション・見出しを付ける場合】
1. ユーザーが「画像下に〇〇と表示」「キャプションを付けて」と明示した場合だけ、caption または image_caption を追加してください。
例:
caption: '※写真はイメージです'
2. ユーザーが「画像見出しを付けて」「〇〇という見出しも表示して」と明示した場合だけ、label を追加してください。
3. ユーザーが明示していない場合、AIの判断で label / help / caption を追加しないでください。
【複数画像の扱い】
1. ユーザーが2枚以上の画像を指定した場合は、images 配列を使ってください。
2. ユーザーが「横並び」「2枚並べて」「PCでは横並び、スマホでは縦並び」と指示した場合は、image_columns:2 を追加してください。
3. 3枚の場合は image_columns:3、4枚の場合は image_columns:4 を使って構いません。
ただし、ユーザーが特に指定していない場合は2枚なら image_columns:2 を基本としてください。
4. 複数画像を指定する場合は、image / image_alt は併用しないでください。
【自然文の解釈例】
ユーザー指示:
「対象項目Aのラベルの上に sample.jpg を表示してください」
解釈:
対象項目Aの section の直前に、画像だけの kind:'info' section を追加する。
label は付けない。
image は img/sample.jpg にする。
ユーザー指示:
「対象項目Bのラベルの下に sample.png を表示してください」
解釈:
対象項目Bの section 自体に image:'img/sample.png' と image_alt を追加する。
kind:'info' section は追加しない。
ユーザー指示:
「対象項目Cの説明文の下に https://example.com/sample.jpg を表示してください」
解釈:
対象項目Cの section 自体に image:'https://example.com/sample.jpg'、image_alt、image_position:'below_help' を追加する。
kind:'info' section は追加しない。
ユーザー指示:
「対象項目Dの説明文の下に sample1.jpg と https://example.com/sample2.jpg の2枚を表示してください」
解釈:
対象項目Dの section 自体に images 配列と image_position:'below_help' を追加する。
sample1.jpg は img/sample1.jpg にする。
https://example.com/sample2.jpg はURLをそのまま使う。
2枚なので image_columns:2 を追加する。
とくに指定がない限り、kind:'info' section は追加しない。
【表示位置が曖昧な場合】
ユーザーが「〇〇に画像を追加」「〇〇の画像を表示」とだけ指示し、表示位置を明示していない場合は、対象 section 自体に image / image_alt または images を追加し、ラベル直下に表示する扱いにしてください。
この場合、対象 section の前後に kind:'info' の画像専用 section を追加しないでください。
【禁止事項】
- 画像を追加するためだけに、既存の計算ロジックを変更しないでください。
- 画像を追加するためだけに、既存の section / option の種類を変更しないでください。
- 画像用の指定に price / monthly / unit / monthly_unit / taxRate を付けないでください。
- ユーザーが希望していない label / help / caption を追加しないでください。
- 「〇〇参考画像」「〇〇イメージ」などの見出しをAIの判断で作らないでください。
- ラベル直下に画像を置く指示なのに、対象 section の後ろへ kind:'info' を追加しないでください。
- 説明文の下に画像を置く指示なのに、対象 section の後ろへ kind:'info' を追加しないでください。
- 画像URLが指定されているのに、勝手に img/ に変換しないでください。
- ファイル名だけが指定されている画像を、勝手に外部URLへ変換しないでください。
- 修正後の PRODUCTS コード内に、説明用コメントや補足コメントを追加しないでください。
- 画像追加箇所以外の整形・並び替え・書き換えは、できるだけ行わないでください。
【最終チェック】
出力前に必ず以下を確認してください。
- var PRODUCTS = [ ... ]; の完全なコード全文になっているか。
- 既存の rules / pricing / visible_if / options / taxRate / 割引ロジックを変更していないか。
- 画像追加以外の文言・価格・条件を勝手に変更していないか。
- ラベルの上に置く画像は、対象 section の直前に kind:'info' として追加しているか。
- ラベル直下・ラベルの下・説明文の上に置く画像は、対象 section 自体に image または images で追加しているか。
- 説明文の下・入力欄の上・選択肢の上に置く画像は、対象 section 自体に image_position:'below_help' で追加しているか。
- 入力欄の下・選択肢の下・項目の下に置く画像は、対象 section の直後に kind:'info' として追加しているか。
- 画像だけを表示する kind:'info' に label / title / help / desc / text を付けていないか。
- AIの判断で「〇〇参考画像」「〇〇イメージ」などのラベルを作っていないか。
- ユーザーが希望していないキャプションを追加していないか。
- 画像指定に price / monthly / unit / monthly_unit / taxRate を付けていないか。
- 複数画像は images:[{src:'...', alt:'...'}] の形式になっているか。
- 複数画像で横並び希望がある場合、image_columns を指定しているか。
- URLがある画像はURLをそのまま使っているか。
- URLがない画像ファイル名は img/ から始まる相対パスにしているか。
- 同じ section 内に image と images を重複して指定していないか。
- 既存の画像指定がある場合、重複追加ではなく、差し替えまたは images への統合になっているか。
===テンプレートはここまで===
このテンプレートは、AIに「画像をどこへ追加すればよいか」を説明するための補助文です。
プロダクトコードをAIに渡して画像追加を依頼するときに、依頼文(≒指示文)の末尾に貼り付けて使ってください。かなり長いですが、右上のボタンから全文をコピーして貼り付けるだけです。
修正後のコードを管理画面に貼り付ける
AIが修正後の var PRODUCTS = [ ... ]; を出力したら、見積太郎の管理画面にある 「④ カスタムデータ作成」 のフォームへ貼り付けます。
その後、公開前チェックとプレビュー表示で、画像が正しい位置に表示されているか確認してください。
管理画面または現在のestimate-data.jsから、プロダクトコード全文を用意します。
どの項目に、どの位置で、どの画像を表示したいかを伝えます。
「④ カスタムデータ作成」のPRODUCTSコード欄へ貼り付けます。
画像の位置、PC表示、スマホ表示、既存の計算結果に問題がないか確認します。
画像が表示されないときの確認ポイント
画像が表示されない場合は、まず次の点を確認してください。
- ファイル名だけで指定した画像を、実際に img フォルダ内に置いているか
- 画像ファイル名の大文字・小文字が一致しているか
- 拡張子が jpg、jpeg、png、webp など正しく指定されているか
- 画像URLを使う場合、そのURLをブラウザで直接開けるか
- 画像の容量が大きすぎないか
- コードチェックでエラーは出ないか
特に注意したいのは、画像ファイル名の表記ゆれです。
beer.jpg と Beer.jpg、beer.JPG は、サーバー環境によっては別ファイルとして扱われます。
よくある質問
Q画像ファイル名だけで指定した場合、画像ファイルはどこに置けばよいですか?
Q画像URLを指定する場合も、imgフォルダに画像を置く必要がありますか?
Q画像を追加すると金額計算に影響しますか?
Q2枚の画像をPCでは横並び、スマホでは縦並びにできますか?
まとめ
見積太郎で作ったシミュレーターに画像やイラストを追加すると、商品・サービスの内容が伝わりやすくなります。
AIに依頼するときは、どの項目に、どの位置で、どの画像を表示したいかを具体的に伝え、AI向け説明用テンプレートを添えるのがおすすめです。
見積太郎の使い方を確認する
画像追加だけでなく、項目追加・トースト通知・公開前チェックなど、見積太郎の使い方を順次まとめています。
