ObjectSquare [2003 年 6 月号]

[OOエンジニアの輪!]

OOエンジニアの輪!

〜 第 21 回 川合史朗 さんの巻 〜

今回のゲストは Scheme Arts L.L.C. の川合史朗さんです。川合さんはハワイに拠点を置き、Lisp の方言のひとつといわれる Scheme 言語の処理系、Gauche を開発されています。川合さんの貴重な日本滞在のお時間を頂き、「Lisp というと AI 分野?」という我々インタビュー隊の「シカクいアタマ」を丸くするようなお話から、制作に携わった映画『Final Fantasy: The Spirits Within』の裏話、スティーヴン・キング等について語って頂きました。


尊敬する人 たくさん居るので、特には挙げられないです。
好きな言葉 Hope is a good thing, maybe the best of things, and no good thing ever dies.
(希望は良いもの、おそらく最上のものだ。そして、良いものは決して消えない。:『ショーシャンクの空に』より)

高林さんとのつながり

-- 今回は、高林さんからのご紹介ですが、どういったつながりですか?

実は、直接お会いしたことは一度もないんです。一番最初はですね、Paul Graham の『Beating the Averages』 っていうのを、私が翻訳(邦題『普通のやつらの上を行け』)させて頂きまして、それの感想をメールで頂いたのがきっかけです。それから、私が開発している Scheme 処理系(Gauche)を使って頂いています。

-- 川合さんにとって翻訳って、あれは自分で読んで面白いものをみんなに見てもらう、っていうところですか?

まぁ、そうですね。私は自分の興味だけでやっていまして、最初のきっかけが『Beating the Averages』でした。読んでみて、自分もすごく勇気づけられましたし、面白いって思ったんですね。で、その時の勢いで訳して出したら、かなり日本で読んでもらえたので、「あ、これは少しは役に立つかな」と思いまして、それからは、出てきたものをぼちぼち訳してます。


現在のお仕事

-- 現在のお仕事について、教えて頂けますか?

インタビュー風景

昨年の 3 月まで、ハワイに本拠を置いていた Square USA という会社で、コンピュータ・グラフィックスに関する研究・開発をやっていました。ところが昨年 3 月、Square が USA から撤退しまして、会社がなくなっちゃったんです。同僚の多くは mainland の方に職を求めて行ったんですが、まぁ、そんなに急ぐこともないだろうとハワイでプラプラしていまして。それで昨年、IPA未踏ソフトウェア創造事業に応募しましたらそれが通ったもんですから、先月*1 まではそれをやっていました。その間に、コンサルティングとして仕事を請け負っていくには、会社組織の方が良いだろうということで、自分独りですけど Scheme Arts という法人にしまして。今のところはまだ次の仕事のメドが立っていないんで、プーの状態なんですけど。

*1 当インタビューは、2003 年 3 月 17 日に行われました。

-- Square と言うと、ゲームのイメージがありますが。

Square USA は、元々は次世代のゲームに使える技術を開発する研究主体の組織として L.A. にオフィスが出来ました。それが 1996 年の 3 月で、その時に私が入社しました。その後、1997 年ぐらいから全編 CG で映画を創ろうというプロジェクトが立ち上がりまして、それが『Final Fantasy: The Spirits Within』です。そして、映画プロジェクトをやるオフィスとしてハワイが出来、私もそのスタッフとしてハワイに移り、以来、ずっとハワイです。L.A. の方もしばらく残っていくつかゲーム等もプロデュースしてたんですが、まぁ、だんだん主力が映画に移ってきまして、結局、ハワイ一本に。で、映画を創ったんですが、まぁ、なかなか financial には成功しなかったものですから。


Lisp とグラフィックスの世界

-- Lisp と映画という関連が、いまひとつ判らないのですが、Lisp との出会いはどんな感じだったのでしょう。

インタビュー風景

出会ったのは大学時代でした。一番最初にハマったのが、C で書く Lisp の本がありまして、それを何気なく古本で買って、プログラムリストを打ち込んでいったら「これはおもしろいな」と。言語処理系を作れるというのがまず、非常に面白かったんです。ずっと学生時代もハマってたんですが、Square に行きましたら、その時初めて知ったんですけど、グラフィックス関係ってもともと Lisp が使われてたんですね。グラフィックスのプログラムってのは、オブジェクト同士がリンクを張りまくって、参照しまくって。Lisp だとそのネットワークが簡単に実現できるんです。元々、全てのオブジェクトがポインタ参照ですから。ガベージ・コレクションもやってくれますし。それに元 Symbolics 社で Lisp マシンを作ってたような人材が CG 業界には、いっぱい居るんですよ。Square に関して言うと、L.A. に居た時の私のボスが Symbolics 社出身でしたし、ハワイに移ってからのボスも Symbolics 社出身で、チームのマネージャも MIT 出身で Lisp 大好きな人でした。

-- Scheme の Webページを拝見させて頂きましたが、「Gauche」は何と呼べばいいんですか?

「ゴーシュ」です。

-- 川合さんは Gauche で OpenGL を使うためのライブラリ等も公開されているようですが、Lisp とグラフィックスって、つながってたんですね。

そういうもので、グラフィック・ツールですと Lisp で書かれたモデラーやレンダラーなんかもあったりするんですけど。

-- ゲームというと、私は PlayStation の『クラッシュバンデクー』を見た時、「こんなことがゲームでできるんだ」ってびっくりしました。あれって、専用の言語で書かれているそうですね。

あれは、GOOL っていう言語ですね。何の略か忘れちゃいましたけど *2、あれは Lisp ベースの言語です。確か、Lisp でその GOOL っていう言語の処理を書いて、バイト・コードか何かにコンパイルして実行してたと思うんですけど。

-- へぇ、こんな所でつながってたんですね。

*2 GOOL: Game Oriented Object Lisp


Lisp で「普通のやつらの上を」行く

-- Lisp の良さ、というとどんなところでしょう。

インタビュー風景

そうですね、「Lisp は programmable programming language だ」とよく言われるんですけど。言語そのものをプログラムして、自分の好きなようにカスタマイズできるんですね。その余地が Lisp は非常に大きくて。で、これは諸刃の剣なんですけど、ある特定の問題を解こうとする時に、その問題に適した文法なりライブラリなり、言語の構造みたいなのがあるじゃないですか。Lisp プログラマはまず、その問題に適したミニ言語を Lisp で作っちゃうんです。それでもって問題を記述していけば、問題そのものを記述したプログラムは非常にコンパクトで、見やすく、保守もやりやすいと。それがまぁ、Lisp プログラマが主張する良い点なんですけど。ただ、ともすれば誰もが自分のマイ言語を作っちゃうんですよ。そのお陰で、互換性のあるライブラリですとか、そういうものっていうのは、ある程度努力しないとまとまらないものなんで。そこが一番大きいですかね。

あと Lisp が強いなと思ってるのは、サーバ分野なんですよ。これは、Paul Graham が 『Beating the Averages』で Yahoo! Store を Lisp で作ったっていうことを書いていて、これが有名なんですけど。この他に、アメリカの航空券のチケットのオンライン予約システムで Orbitz って所が使ってるエンジンが Lisp で書かれていまして。あそこの強みは、他の先行していたオンライン予約システムよりも、探索範囲がものすごく広いんですね。アメリカは航空会社が多いですし、hub 空港も多いですから、西海岸から東海岸へ飛ぶのに、全ての経路を見るのは膨大な作業なわけですよね。そういう膨大なネットワークをサーバ上の Lisp でオンメモリで作っておいて、リーズナブルな時間で検索して、最低料金を出す、といったような。

-- 沢山処理系がある中で、敢えて Gauche を開発されたのは、やはり必要性があったからでしょうか?

そうですね。あれが自分で書いた Lisp 処理系としては、多分 3 つめか 4 つめになります。趣味で書いたものもありますし、業務に組み込むために書いたものもあります。Square に入ってしばらくは、STk という、フランスの Erick Gallesio さんの書いた Scheme の処理系をだいぶ使ってたんですね。それで、研究目的のプロトタイプなんかをそれで作ったりして。そしたら、Erick さんがしばらく STk の新リリースをしなくなっていて、業務で使っているうちに、ここを直したりあそこを直したり、という箇所が出てきたんです。一番ネックだったのが日本語の処理でして、普通に 1 バイト 1 文字で作られているものを日本語対応させようとするのは困難でした。ありとあらゆる場所で、1 文字 1 バイトっていう仮定でコードが書かれちゃってるんですね。そうすると、それを直していくのはものすごく困難で。多バイト文字の処理っていうのは、そういう ad hoc なものじゃなくて、設計段階から入れないとだめなものなんだ、と思いまして、最初からそれを考慮した処理系を書き始めたんです。

-- Gauche はオープン・ソースですか?

あれはオープン・ソースです。BSD ライセンスなんで、誰でも使えますし、良ければ商用ソフトウェアに組み込んでもらっても構いません。

-- 他の言語も触られたことがあるかと思いますが。

そうですね。実習レベルで触ったものというと結構あるんですけど、ある程度の規模の大きさを書いた、といいますと、C、C++、Lisp。Java は出てきた頃から「あ、面白そうだな」と。特に C++ で嫌だな、と思ってたところが割ときれいになってたんで、仕事で使いました。あとまぁ、ハワイに移ってからはサーバ側のプログラム開発で、Perl を使ったりしていました。

-- オブジェクト指向に対しては、どういうお考えをお持ちですか?

オブジェクト指向ってポジションに対しては、Common Lisp は CLOS (Common Lisp Object System) っていうオブジェクト指向を持っていまして、これは主流のオブジェクト指向とは毛色が違うんですけどね。何の断りもなしにオブジェクト指向というと、今は C++、Java 中心のオブジェクト指向が一番ポピュラーですから、その辺に関しては、ちょっと違和感を覚えたり、ということはあります*3。 私自身、オブジェクト指向を「あ、こういうものか」と納得したのは、アセンブラをやっていた時なんですよ。もともと、ハードウェアが好きで、よく秋葉原へ行ってチップを買ってきて、Z80 で組み立てたりとかしたんですけど。何だったかな、CP/M かなんか載せてて、BIOS だかドライバだか書いてた時に、もとがアセンブラで書いてあって何が何だかわかんなくなっちゃって。その頃にオブジェクト指向がどうのって本が出てきたんで、何かデータと手続きをまとめるらしい、と。だからまぁ、ソース上だけでもまとめて、「じゃ、この変数はこの手続きだけで触れるようにしよう」って。まとめたら、割とすっきりいったんで、「あ、これかなぁ」と思ったのが始まりなんですけど。

*3「Schemer's way」に、川合さんのオブジェクト指向言語に対するスタンスが記されています。


Lisp のソース・コードの括弧に混乱するは、私だけですか?

-- Lisp は、シンプルな故に奥が深そうで、難しそうな気がしますが。

インタビュー風景

何が難しいかってことなんですけど、まずは括弧の嵐に大きな障壁がありまして、そこを越えてしまうと、逆に覚えることは少ないですよ。

-- 書き慣れていると、括弧の数のバランスがすっと入ってきちゃう?

あぁ、あれはむしろエディタ任せです。読む時は、インデントしかみてないです(笑)エディタの支援なしでは辛いですね。あの括弧が役に立つのは、Emacs のような支援がある場合ですね。そうすると、行単位での動きって全然しないんです。式単位で移動するんで。

-- なるほど。

Lisp って、自分の手足みたいなものですね。例えば、入門書とかそんなに出て来ないですし、みんなこう、一旦使いこなせちゃうと「そんなのマクロ書けばすぐ出来るじゃないか」とかそういう感じになっちゃう。ただまぁ、アプリケーションとしてここにも使える、あそこにも使えるとなってくると、興味を持って始めてくれる人も増えるでしょうし、そういう意味では裏方として残っていくんじゃないかな、という気がします。残っていって欲しいなぁ、と思うんですけど。

-- 今後、Lisp がビジネス系の分野で脚光を浴びる時代は来るのでしょうか?

(笑)いや、Lisp が今の Java みたいに脚光を浴びるってことは、多分ないだろうという気がします。というのは、Lisp プログラマは Lisp で書いていると、割と何でも自分で出来ちゃうというか、言語そのものの改訂を待たなくても自分で書けちゃうんで、みんな自分で敢えてそれを宣伝しようという気にならないんです。


『Final Fantasy: The Spirits Within』 と Lisp

-- 『Final Fantasy: The Spirits Within』って、そもそも、どのくらいの人達が制作に係わってるんでしょう。

インタビュー風景

映画は、進行に応じて増減がありまして、ピークで 250 人くらい。延べで 400 人くらいです。それで 4 年かけてます。

-- 『Final Fantasy: The Spirits Within』の制作の中で、Lisp はどういった用途で使用されていたのですか?

私は『Final Fantasy: The Spirits Within』の全体の進行を manage するデータベースの管理を任されてまして、それを Lisp で書いていたんです。Lisp ベースの OODB を使って。ベースとなっているのは ObjectStore で、Franz がその上に Lisp の皮を被せた AllegroStore を出していまして、それを使いました。 基本は Lisp のオブジェクトを作ると、それが persistent になるんです。普通にオブジェクトとしてアクセスできるんです。で、何が強かったかというと、まず普通のオブジェクトなんで many to many の関係が全部リンクで持っている、と。それから、相互のポインタが全部、内部で manage されていたんで、integrity に気を遣わなくていいこと。もうひとつ、CLOS の機能なんですけど、インスタンスのクラスを実行中に変えられるんですね。クラスの再定義が出来まして、古いクラスから新しいクラスへの変換メソッドを書いといてやると、そのインスタンスがアクセスされた時に、その変換メソッドが走って、インスタンスが update されるんです。スロット*4が追加されるだけじゃなくて、このスロットとこのスロットの情報をマージして新しいスロットにしたい、とか、インスタンスを分割したい、とか、そういうことが実行中に出来てしまう。特に、persistent の storage にオブジェクトをとってありますと、それを新しいクラス定義で読み込んで update かければいいんですから。

*4 スロット: いわゆるインスタンス変数のこと。

-- すごいですね。ダイナミック・バインディングのレベルが違いますね。

すっごい助かりました。この辺の経過を、2 本くらい記事 *5 *6 を書いて、私のサイトにも載せてますけど、とにかく映画の製作中に「やり方」っていうものを試行錯誤で進めていたものですから、これを manage するためにデータベースの変更がものすごく多かったんですよ。あとから記録を見てみたら、一週間に一回の割合で、データベース・スキーマが変更されていたんです。そうなると、RDB でやると大変ですから、助かりましたね。

-- 「オブジェクト指向だから変更に強い」なんていう、能書きじゃなくって、実際にそうやって使われているのはすごいなぁ。

*5 『Shooting A Moving Target---An Experience In Developing A Production Tracking Database』
*6 『Tracking Assets in the Production of 'Final Fantasy : The Spirits Within'』


3D Wiki?

-- 川合さんの未踏ソフトウェアでの活動は、ちょっと存じてなかったんですが、どういうプロジェクトだったんですか?

インタビュー風景

一言で言うと、Wiki の 3D 版を作りたかったんですよね。WikiWikiWeb for 3D(Banyan)。Web 上に 3D のシーンがあって、みんなが自分の直したい所を直す。そうすると、Web に反映される。で、そのベースの部分が出来まして、プロトタイプ・システムまで仕上げたんですけど、すぐに「これです」って見せて誰でも使えるってところまではまだ出してないんですが。

-- ほぉ、面白いですね。普通の Wiki は想像出来るんですが、これが 3D になるとどういうイメージになるんだろう。

まぁ、見せ方の問題が大きくて、そこはまだ練れてないんですけど。私のプロトタイプでは、専用のクライアントを作りまして、Web に接続して Wiki の URL を入れるとシーンが出てきてという。そもそもそういうのを作ろうと思った動機が、Square の映画のプロジェクトをやっていた時に、アーティストが 150 人くらいでバーっと作るわけなんですね。これまで 3D のオーサリング・ツールっていうのは、ひとりのアーティストが割と最初から最後まで面倒を見る、というのがひとつの前提になっていまして。ですから、シーン全体をファイルからロードして、更新して、全部をセーブする、というのが基本なんですよ。ところが、そうするとひとつのシーンを 3 人ぐらいで分担して作りたいっていう時に、非常に素直にいかないんですね。で、Square のスタジオ内では、部分的にシーンをわざわざ中で切って、そこだけを出すとか。それが出来ない時は、一回 ASCII でダンプしたシーンを Perl でワーっとなめて分割するとか、すごく ad hoc な方法で進めていました。でまぁ、将来、みんなでよってたかってシーンを作るという時にそれじゃ問題があると思いまして、私のシステムだと、ひとつのシーンの中がもともと分割できる。で「ここはあなたの担当、ここはあなたの担当」としてもいいですし、「ここは気に入らないから」ってそこだけを取って来て直していく、ってことが出来ます。そういう部分部分の、全てが履歴管理されていまして、誰がどのシーンの何処を、いついじったか、みたいな情報も持っているわけですね。

-- そういうのは、前職で経験された方の発想ですよね。

ええ、そうですね。まぁ、本職の CG アーティストに使ってもらうためには、まだスケーラビリティが必要ですし、そのへんはかなり開発しなくちゃならないんです。もうひとつ、方向性としてやりたかったのは、アマチュア・レベルで CG を作りたい、興味があるって人は沢山いると思うんですよ。ただ、CG は非常に労働集約的で、マン・パワーも要るものですから、独りで作りたくっても、たかが知れてるんですね。そういう人達が Web 上で、顔を合わせたことがなくても、オープン・ソース開発みたいですね。協調してオープン・コンテンツ開発ができるベースができればいいな、と。


ハワイでの優雅な仕事

-- ハワイにお住まいということですが、元々、海外で働きたいという意志があったのでしょうか。

インタビュー風景

日本で「Square が L.A. に研究所を作るので人を探してる」って話を聞きつけて、面接は日本の Square に行きまして、L.A. 要員として採用されました。 一度、海外で仕事をしてみたかったっていうのもあるんですけど、行ってみたら楽しくて居着いちゃったって感じですね。

-- 川合さんの Web サイトを拝見して、どういう日常を過ごされているのかな、と。ぱっと眼に浮かぶのはすごく優雅な、、

いや、在宅で仕事をするようになってしまったので、自由って言えば自由なんですけどね。未踏期間中はかなり忙しくて、殆ど土日もなくて。まぁ、朝は遅かったんですけど、朝は 10 時くらいに起き出して、その後、適宜仕事しつつ夜中 2 時、3 時までやってる感じなんですが。

-- 今は、日本には、どの程度の頻度で戻って来られるんですか?

まぁ、平均すると年に 3,4 回は戻ってくると思います。

-- 私も一回、そういう生活をしてみたいなと思ってたけど、もう無理かなぁ。次、出来るのはリタイアするころかな(笑)
-- ところで、会社に社員として所属せずに、独りでやっていこうと思われた経緯はどんな感じですか?

そうですね。まぁ、確かに一度は独立してやってみたいっていうのは何となく思っていましたけど。むしろ、面白い仕事が出来たらいい、という立場です。Square で 6 年くらい仕事をして、組織の中でやるっていうのは経験して、ちょっと寄り道してみようかな、年齢的にも、このくらいが良いかな、と。

-- それを敢えて、ハワイの方で法人を作られた、っていう理由は?

ハワイで法人を作れば、動かなくて済んだ(笑)っていうのがひとつ。あと、アメリカで法人を作るのは非常に簡単ですので。登記は Web で申請出来て、そのあと税務署に登録に行って、かかる費用が $150 だか、そんなもんです。

-- そうすると、やはりビジネスの中心は米国だっていうふうな感じでしょうか?

今しばらくは、Square 時代の人脈とかにお世話になって仕事をもらうしかないので、そうしますと、米国と、あとはアジアの方面、台湾、韓国にもいらっしゃいますので、そちらの方でもメディア関係、ゲーム関係の仕事が貰えればいいなと、いろいろやっているところです。

-- Lisp でどうやってビジネスをやっていくんだろう、と正直わからなかったのですが。

あの、Lisp をやっていくのは、やりたいから、っていうのが一番大きいですね。ただ、Lisp そのものをソリューションとして売っていくのは非常に辛いものがあるんですよ。Lisp の使用者人口も少ないですし。私自身が Lisp を使っているのは、やっぱり、自分にとっては生産性が一番高いと思うから。例えば面白い論文を見れば実装してみたいですし、その時に、人間が書けるソフトウェアの量っていうのは限界があるじゃないですか。そしたら、少しでも生産性の高い言語を使わないとやりたいことは出来ない。そういう意味で、第一に自分が使うために、Lisp、Scheme、Gauche なりを使う、っていうのが基本です。じゃぁ、どうやってビジネスにつなげていくかと言うと、Lisp そのものは売れないので、それを使って作ったソリューションを、ビジネスに持っていきたいと思っています。


スティーヴン・キング

-- 川合さんの Web サイトに、スティーヴン・キングのコーナーがありますよね。私は英語が得意じゃないので、邦訳でしか読んだことがないんですが、原文で読むとずいぶん違うものですか?

インタビュー風景

受け取り方はいろいろだと思うんですけど、私が最初に原文に手を出したのは、邦訳が出ていなくて、でもどうしても読みたかったからなんです。そうしたら、彼の文章はすごくリズムがいいんですね。わかんない単語もいっぱいあるんですけど。でも、ポンポンという具合で入って来る。特に心理描写のところなんかも、主人公がドキドキし始めて、なんていう、そういうリズムが好きで読んでました。

-- 『シャイニング』は スティーヴン・キングというよりは、ジャック・ニコルソンが好きで結構観て、あれはホラーというか、アートだなぁと思って、何度も観てるんですが、リメイクされた新しい方は観ていないんです。

あ、テレビ映画の方ですね。映画としては、私はキューブリックの方が好きなんですけど、テレビ・シリーズの方が原作には忠実で、まぁ、原作ファン向けですかね。多分、もうビデオで出てるんじゃないですか。

-- 最近、キング氏の活動というのはどうなんでしょうか?

実はもう、あと 3 冊で止めるってことで、ファンとしては複雑な気分なんですけど。

-- そうだったんですか、、でも、キング氏って、精力的に書かれてますよね。

彼は、自分が文章をどうやって書くかというところを、結構オープンにエッセイにも書いていて、彼が言うには、書こうと思って書くんじゃなくて、書かずにおれずに書く、と。

-- 「湧いてくる」って感じなんでしょうか。それで、ああいうホラー的な心理描写とか、すごいなぁ。
-- 邦訳された中で一番おすすめっていうと?

これは好みによって、、キングファンの間でも大きく意見が分かれるんですが。どういう方向が好きかで大きく違うんですけど、私自身としては『ショーシャンクの空に』が大好きですけどね。

-- あれは映画も良かったですね。友達に薦められて。

かというと、ホラー要素の強いもの、SF 要素の強いものの好きな人もいますし、それによってバラバラになりますね。

-- そういう意味だと奇才ですよね。いろんな分野で書ける方ですね。根は心理描写みたいなところにあるみたいですが。

ひとつ、アメリカに行って面白いなと思ったのが、先に日本でホラー・ブームがありましたけど、昔はホラーっていうと二流小説とか、ちょっとマイナーな感じがしてたんですね。でも、向こうに行ってみるとスティーヴン・キングっていうと、凄く人気があるんです。どういう人気かというと、誰もが普通に見てるんですよ。普通にそういう話を職場でして、「あ、こういうもんなんだ」って意外でしたけど。


若手エンジニアへ一言

-- 若手、と言っても川合さんも若いのですが、後輩のエンジニア達に一言お願いできませんか?

インタビュー風景

後輩を見ていて感じるのは、最近は特にいろんなコンポーネントがブラック・ボックスになってきて、PC を組み立てるにしても、マザー・ボードや CPU を買ってきて組み立てれば出来ますし、ソフトウェアでもライブラリをつなぎあわせれば出来る。それは手軽でいいんですけど、若い間にブラック・ボックスの中身がどうなっているのかにも興味を持って欲しいな、とすごく感じるんです。それも程度問題で、私もチップを買ってきてやっていましたけど、じゃぁ CPU の中はどうなってるんだとか、その、量子力学でどうのってそこまでは行っていないですから、どこまでやるかなんですけど。それはもう、半ば趣味みたいな感じでさらっておくだけでも、きっと将来、システムを大きな眼で見る時に効いてくると思うんですね。
で、ブラック・ボックスを組み合わせてやるのも楽ですし、本もいっぱい出ていますけど、そういうのは一応、ブラック・ボックスの中が判っている人が便利だから使うっていうのが正しいやり方であって、なんかわかんないけどとりあえず組み合わせればいいや、というふうにはなって欲しくないかな、と思います

-- 最近、プログラミングを出来ないソフトウェア・エンジニアも沢山居ますからね。プログラミングの機会がなくなって来ているんですよね。

-- 今日は貴重な日本滞在のお時間をありがとうございました。これからのご予定は?

今日はこれから一回戻って、せっかく日本に居るので、近場の温泉でも行こうかと思いますけど(笑)

-- お忙しい中、ありがとうございました。



©2003 OGIS-RI Co., Ltd.
Prev Index Next
Prev. Index Next