なでしこでCG

なでしこで CG (Computer Graphics) を扱う講座です。

  1. 基礎編 〜 描画関連の命令
  2. 中級編 〜 色々な命令を作る
  3. 上級編 〜 ゲームのフレームワークを作る

基礎編では、なでしこで使える描画関連の命令とその使い方を紹介していきます。

「線」命令

では早速、線を引く命令から見て行きましょう。

10,20から30,40へ線。

たったのこれだけです。簡単ですよね。では、この命令についてもっと詳しく見て行きましょう。

エディタの機能

なでしこエディタの「命令一覧」タブをクリックして「描画関連(vnako)」「描画命令」と辿っていくと「線」命令の項目が見つかります。クリックすると、下のステータスバーに説明が表示されます。

命令名
引数
{グループ=?}OBJのX1,Y1からX2,Y2へ
説明
画面に線を引く。OBJの省略は母艦。
別名の命令
LINE

線・図形を描く命令には、シンプルな英語命令が用意されています。「線」命令に対応する別名の命令が「LINE」命令です。但し、英語命令には助詞を使うことはできないので、LINE(OBJ,X1,Y1,X2,Y2)のように使います。

さらに、「線」命令の上でダブルクリックすると、カーソルの位置に命令を挿入することができます。ドラッグ&ドロップで好きな位置に挿入することもできます。こんな感じで:

OBJのX1,Y1からX2,Y2へ線。

引数

命令の説明にも書いてありましたが、このOBJX1は一体何を指すのでしょうか?これは引数というもので、命令に渡してやる情報のことです。例えば最初の例だと、10や20という数を渡していましたね。

引数X1, Y1などを変えることで、点(X1,Y1)から点(X2,Y2)へ自由自在に線を引くわけです。なおなでしこの座標は、画面の左上の点を原点として、右をX軸の正に、下をY軸の正に取ります。

母艦

なでしこは、実行するとまず白い画面が現れます。これはメインフォームなのですが、なでしこでは「母艦」と呼んでいます。

説明文には、OBJの省略は母艦と書かれていました。これはつまり、引数OBJを書かない場合は、そこに母艦を補ってくれるという意味です。

母艦以外にも、色々なイメージ部品やフォーム部品を作成して、そこに線を引きたい場合があります。そういう場合は、OBJに何か別の言葉を指定するのですが、母艦の上に線を引きたい場合は書かなくてもいいよ、ということです。詳しいことは 4, 5 節の「画面・画像に関する命令」を見てください。

線のオプション

しかし、これだけではただの線しか引くことができません。赤い線や、太線なども引きたくなりますよね。

なでしこエディタの「命令一覧」タブで「描画関連(vnako)」「描画属性」と辿ると、「線色」や「線スタイル」という項目が見つかります。これがずばり、色々な線を描くためオプションです。

線太さ

「線太さ」に数値を指定することで、線の太さを調節できます。太い線を引いてみましょう。

線太さは10
100,100から200,200へ線。

線色

「線色」に色を指定することで、線の色を変えることができます。青い線を引いてみましょう。

線色は青色
100,100から200,200へ線。

線スタイル

実線以外の線を引くには、「線スタイル」に他の種類の線を指定します。指定できる線スタイルの種類は以下の通りです。

  • 実線
  • 点線
  • 破線
  • 透明

ところが単に線スタイルを「点線」に変えただけでは、上手く行きません。実は、点線は「線色」と「塗り色」の短い線を交互に描画しているのですが、「塗り色」の初期値が黒色なので、そのままでは点線にならないのです。そこで、塗る側を「透明」にしてやれば本当に「実線」にすることが可能です。

線スタイルは『点線』
塗りスタイルは『透明』 ※これが重要
100,200から300,200へ線

「破線」についても同様です。「塗りスタイルは『透明』」とする代わりに「塗り色は白色」としてもOKですが、これだと背景色が白色のときしか使えないので「透明」にする方がいいでしょう。

ところで、線スタイルが「透明」な線を引いても何も描かれないので嬉しくも何ともありませんが、ちゃんと使い道はあります。線スタイル「透明」の使い所は次節の図形命令で解説します。

オプション

オプションは、一度指定するだけで十分です。例えば、細い青線を2本、平行に描いてみましょう。

線太さは1
線色は青色
100,100から300,100へ線。
線太さは1
線色は青色
100,200から300,200へ線。

こうでしょうか・・・?いいえ、オプションは一度指定すれば十分なので、その後の「線」命令にも効果が続きます。

線太さは1
線色は青色
100,100から300,100へ線。
100,200から300,200へ線。