先週に呼びかけたファイルフォーマットの使用状況調査をひとまず終了します。多くのコメントをいただきありがとうございました。
まったく使用報告のなかった.sce/.rds/.rsd/.timをVer4.0で廃止し、他のフォーマットについては継続して対応することにします。
また今後も同様の調査をお願いすることがあるかもしれませんが、そのときはよろしくお願いいたします。
2012年12月24日月曜日
2012年12月23日日曜日
2012年12月18日火曜日
ファイルフォーマットの使用状況に関する調査お願い
現在Ver4.0を開発中ですが、既存の機能についての見直しも考えており、10年以上前に使われたものの今では利用されなくなったファイルフォーマットへの対応を廃止する方向で考えています。
つきましては以下のフォーマットについて使用状況を調査したいと思いますので、まだ使っている人がいれば本記事にコメントいただければ幸いです。 基本的には一人でもいれば対応を継続します。
追記:rokを記載し忘れていましたのでこれも挙げておきます。
つきましては以下のフォーマットについて使用状況を調査したいと思いますので、まだ使っている人がいれば本記事にコメントいただければ幸いです。 基本的には一人でもいれば対応を継続します。
- trueSpace .cob(ソフト自体消えたので使っている人いなさそう)
- RayDream .rds (後継のCarraraに移行してるはず)
- SoftF/X .sce (後継のOpenFXはまだ開発継続ですが)
- PlayStation .rsd/.tim (販売終了したゲーム機がいるはずが)
- DoGA .suf (これは割と使っている人いそうですが)
- POV-Ray .pov (これは割と使っている人いそうですが)
- VRML .wrl (アカデミック系で割と使用されていましたが現在の状況がよくわからないです)
- Direct3D .x (Microsoftからは見捨てられましたがフリー系のツールではまだ現役?)
- 六角大王 .rok (製品版でなく昔のフリー版のほうのフォーマットです)
追記:rokを記載し忘れていましたのでこれも挙げておきます。
2012年12月7日金曜日
当ブログへのコメントの投稿について
Bloggerで最近のコメントを一覧表示するガジェットが利用できなくなったらしく、現在どこかの記事にコメントを投稿されても気付きませんので、返信がつかない可能性があります。ご注意ください。(代替の手段ないのかな・・・?)
またソフトウェアに関する質問などはBBSがありますので、そちらへお願いします。
12/24追記:別のスクリプトで最近のコメントが表示できるようになりました。
またソフトウェアに関する質問などはBBSがありますので、そちらへお願いします。
12/24追記:別のスクリプトで最近のコメントが表示できるようになりました。
2012年10月25日木曜日
Metasequoia Ver3.1.0 公開
法人設立後の初のリリースとなるVer3.1.0を公開しました。
Ver3.0に対する主な新機能としては
三角形を保持した改良版Catmull-Clark曲面のサポート
Catmull-Clark曲面への折れ目の指定
曲面のワイヤー表示
法線マップ、バンプマップの表示
TIFF画像の読み込み
SDKからの頂点ユーザーデータへのアクセス
AnguwrapプラグインによるUV自動展開
となりますが、他にも多数の改良・追加機能が含まれていますので、早速ダウンロードして新しい機能をご確認ください。
また、このバージョンは明日発売のWindows 8にも対応しています。最新OSでの新機能に対応しているわけではありませんが、PC新調やOSバージョンアップ後も変わらずご利用いただけます。
SDKも併せて公開しています。新しいAPIに対応したプラグインの登場を期待したいところです。
LE版についても今後Ver3.1をベースにしたものを近日中に公開予定です。今しばらくお待ちください。
Ver3.0に対する主な新機能としては
となりますが、他にも多数の改良・追加機能が含まれていますので、早速ダウンロードして新しい機能をご確認ください。
また、このバージョンは明日発売のWindows 8にも対応しています。最新OSでの新機能に対応しているわけではありませんが、PC新調やOSバージョンアップ後も変わらずご利用いただけます。
SDKも併せて公開しています。新しいAPIに対応したプラグインの登場を期待したいところです。
LE版についても今後Ver3.1をベースにしたものを近日中に公開予定です。今しばらくお待ちください。
2012年10月17日水曜日
株式会社テトラフェイスを設立しました
twitterには既に少し書きましたが、先日会社を設立しました。社名は「株式会社テトラフェイス」となります。
1999年にMetasequoia Ver1.0の販売を開始してから、13年間に渡って個人事業としてMetasequoiaの開発と販売をして参りましたが、今年5月から専業化するとともに法人設立の準備を進め、先月に登記が完了しました。
先週公開したVer3.1 Beta7ではすでに表記を変更していますが、今後リリースするバージョンは法人からのリリースとなります。
ライセンス購入時の入金先なども体制が整い次第、順次切り替えていきます。ただ、法人になったからといって開発や販売体制など実質的な面では何も変わらないので、既存のユーザーの方、また現在購入を検討している方への影響はありません。
現在は社員のいない1人法人で、潤沢な資金や急拡大の売り上げ見込みがあるわけではありませんが、開発体制の整備や売り上げの拡大は重要課題で、今後皆様方のご支援・ご協力をお願いさせていただくこともあるかと思いますが、何卒よろしくお願いいたします。
オフィスは東京都渋谷区内で、京王新線初台駅が最寄りとなります。直接話したいなど、御用のある方はお問い合わせの上、当オフィスまでお越しください。
新会社のWebは下記URLです。
http://tetraface.co.jp/
1999年にMetasequoia Ver1.0の販売を開始してから、13年間に渡って個人事業としてMetasequoiaの開発と販売をして参りましたが、今年5月から専業化するとともに法人設立の準備を進め、先月に登記が完了しました。
先週公開したVer3.1 Beta7ではすでに表記を変更していますが、今後リリースするバージョンは法人からのリリースとなります。
ライセンス購入時の入金先なども体制が整い次第、順次切り替えていきます。ただ、法人になったからといって開発や販売体制など実質的な面では何も変わらないので、既存のユーザーの方、また現在購入を検討している方への影響はありません。
現在は社員のいない1人法人で、潤沢な資金や急拡大の売り上げ見込みがあるわけではありませんが、開発体制の整備や売り上げの拡大は重要課題で、今後皆様方のご支援・ご協力をお願いさせていただくこともあるかと思いますが、何卒よろしくお願いいたします。
オフィスは東京都渋谷区内で、京王新線初台駅が最寄りとなります。直接話したいなど、御用のある方はお問い合わせの上、当オフィスまでお越しください。
新会社のWebは下記URLです。
http://tetraface.co.jp/
2012年10月16日火曜日
新しい書籍「Metasequoia CGテクニックガイド」が出ます
工学社様から見本をいただきました。「Metasequoia CGテクニックガイド」というタイトルの本が出版されるということです。これで、えっと、、、何冊目の解説本かわからないくらいの数になりましたが、ここ2年くらいは出ていなかったので久しぶりということになるでしょうか。
出版社のWebに情報が見当たらないので細かいことはわかりませんが、まもなく発売だと思います。詳細がわかれば追って記載します。
追記:
Amazonのこちらのページからご購入いただけます。
10/18さらに追記:
工学社から公式情報出ています。10/20発売とのことです。
出版社のWebに情報が見当たらないので細かいことはわかりませんが、まもなく発売だと思います。詳細がわかれば追って記載します。
追記:
Amazonのこちらのページからご購入いただけます。
10/18さらに追記:
工学社から公式情報出ています。10/20発売とのことです。
2012年10月12日金曜日
Metasequoia Ver3.1 Beta7 公開
Ver3.1のベータ版を更新しました。今回は差分ではなくフルセットになります。Ver3.0の上書きは必要ありません。
Vista以降でファイルの関連付けができるようになった他、いくつか不具合修正などが行われています。
特に大きな問題が発覚しない限りは今回でベータ版としての公開は最後で、次はVer3.1の正式公開となります。
Vista以降でファイルの関連付けができるようになった他、いくつか不具合修正などが行われています。
特に大きな問題が発覚しない限りは今回でベータ版としての公開は最後で、次はVer3.1の正式公開となります。
2012年10月6日土曜日
BBS内の記事へのリンクの貼り方
BBSのリニューアルも見栄えはあまり変わっていませんが、検索やタグ指定以外にも今までできなかったことが可能になっていることがあります。一つ一つの投稿に対して番号がついているので、この番号を指定してリンクを貼ることができます。
BBSの投稿記事に対してリンクを貼りたい場合、
http://metaseq.net/bbs/metaseq/bbs.php?lang=jp&sel=2712
のように sel= の後ろに記事番号を指定します。
URLでのオプション指定には記事番号以外にもいくつかが提供されています。
http://metaseq.net/bbs/metaseq/bbs.php?lang=jp&tag=SDK
のように tag= の後ろに文字列をしているとそのタグがついた記事のみを参照できるので、この例だと後でタグを指定しなくても従来のSDK掲示板のように見ることができます。
その逆にプログラマでない人にはSDKタグのついた記事は意味がないので、
http://metaseq.net/bbs/metaseq/bbs.php?lang=jp&tag=not+SDK
と"not+タグ"で指定することで、SDKタグのついた記事を除外して表示できます。これだと従来の要望・不具合掲示板と同じですね。
http://metaseq.net/bbs/metaseq/bbs.php?lang=en
と lang に en を指定するとUI周りが英語で表示されるので、日本語が読めない海外の方でも迷わず投稿できて大丈夫ですね。もっとも英語の投稿が多くなると管理人が読むのが大変になってしまいますが。
他にもオプションはありますが、とりあえず必要そうなのは上記だと思います。BBSは今後も必要に応じて機能を追加したり改変するので、URLに関する仕様変更もあるかもしれませんが、その際は改めて変更後の仕様を記載します。
BBSの投稿記事に対してリンクを貼りたい場合、
http://metaseq.net/bbs/metaseq/bbs.php?lang=jp&sel=2712
のように sel= の後ろに記事番号を指定します。
URLでのオプション指定には記事番号以外にもいくつかが提供されています。
http://metaseq.net/bbs/metaseq/bbs.php?lang=jp&tag=SDK
のように tag= の後ろに文字列をしているとそのタグがついた記事のみを参照できるので、この例だと後でタグを指定しなくても従来のSDK掲示板のように見ることができます。
その逆にプログラマでない人にはSDKタグのついた記事は意味がないので、
http://metaseq.net/bbs/metaseq/bbs.php?lang=jp&tag=not+SDK
と"not+タグ"で指定することで、SDKタグのついた記事を除外して表示できます。これだと従来の要望・不具合掲示板と同じですね。
http://metaseq.net/bbs/metaseq/bbs.php?lang=en
と lang に en を指定するとUI周りが英語で表示されるので、日本語が読めない海外の方でも迷わず投稿できて大丈夫ですね。もっとも英語の投稿が多くなると管理人が読むのが大変になってしまいますが。
他にもオプションはありますが、とりあえず必要そうなのは上記だと思います。BBSは今後も必要に応じて機能を追加したり改変するので、URLに関する仕様変更もあるかもしれませんが、その際は改めて変更後の仕様を記載します。
2012年10月3日水曜日
BBSが新しくなりました
少し前から進めていたBBSの再構築が完了しました。
新しいBBSでは記事ごとにタグ付けができるようになり、またタグやキーワードで検索ができるようになりました。見た目や操作性はほとんど変わっていませんが、閲覧や投稿の際の速度も速くなり、全体的な使い勝手としては良くなっていると思います。
以前は不具合報告/要望とSDKの2つの掲示板に分かれていましたが、新しい掲示板では一つに統合されました。書き込みの内容に応じて適したタグを付けて書き込んでください。また、不具合報告や要望だけでなく、質問や雑談などにもご利用いただけますので、どなたでも気軽に書き込んで活用してください!
以前のBBSのデータはほぼそのまま引き継いでいます。不具合・要望掲示板にあったものは[From old BBS]、SDK掲示板にあったものは[SDK]のタグがついています。
新しいBBSでは記事ごとにタグ付けができるようになり、またタグやキーワードで検索ができるようになりました。見た目や操作性はほとんど変わっていませんが、閲覧や投稿の際の速度も速くなり、全体的な使い勝手としては良くなっていると思います。
以前は不具合報告/要望とSDKの2つの掲示板に分かれていましたが、新しい掲示板では一つに統合されました。書き込みの内容に応じて適したタグを付けて書き込んでください。また、不具合報告や要望だけでなく、質問や雑談などにもご利用いただけますので、どなたでも気軽に書き込んで活用してください!
以前のBBSのデータはほぼそのまま引き継いでいます。不具合・要望掲示板にあったものは[From old BBS]、SDK掲示板にあったものは[SDK]のタグがついています。
2012年10月2日火曜日
新BBSのデバッガ募集
先月から再構築を進めていたBBSですが、95%くらい完成しました。
まだデバッグの途中ですので、このブログを見ている方でお時間があれば、何でもいいので下のリンクから試しに投稿や返信してみてください。
http://metaseq.net/bbs/newdb/bbs.php?lang=jp
レイアウトなどはあえて変えていません。使い勝手もほぼ変わらないと思いますが、タグを最低1つ指定する必要があります。デフォルトでいくつか選択できるようになっていますが、それ以外にもその横の入力欄に好きなタグを指定することができます。何かお気づきの点などがあればそれも投稿してください。
週末くらいに新BBSに移行する予定です。デバッグが終われば上のテスト用BBSは消します。
まだデバッグの途中ですので、このブログを見ている方でお時間があれば、何でもいいので下のリンクから試しに投稿や返信してみてください。
http://metaseq.net/bbs/newdb/bbs.php?lang=jp
レイアウトなどはあえて変えていません。使い勝手もほぼ変わらないと思いますが、タグを最低1つ指定する必要があります。デフォルトでいくつか選択できるようになっていますが、それ以外にもその横の入力欄に好きなタグを指定することができます。何かお気づきの点などがあればそれも投稿してください。
週末くらいに新BBSに移行する予定です。デバッグが終われば上のテスト用BBSは消します。
2012年9月27日木曜日
プラグインのインストールについて
最近問い合わせが来るものの大半が以下の内容なので、それについて回答を載せておきます。
プラグインをやみくもに入れると起動時に以下のエラー表示がされることがあります。
ID confliction : ProductID:******** PluginID:********
used: C:\Users\****\AppData\Roaming\Metasequoia\Plugins\******\******.dll
ignored: C:\Program Files\Metaseq30\Plugins\******\******.dll
******.dll : Failed to load.
Not loaded normally. Maybe a required runtime is not installed, or the file is broken.
上側については表示されている2つのフォルダに同じプラグインが重複して存在しています。ignoredのほうのファイルを消してください。
下側は英文で表示されている通りですが、必要なランタイムがインストールされていません。ダウンロードサイトか当該プラグインに添付のドキュメントに記載されているインストール方法に従って、必要なランタイムを入手してインストールしてください。
ランタイムが既にインストールされているのにメッセージが表示される場合、ファイルが壊れている可能性があります。プラグインを再度入手してインストールし直したり、ハードディスク・SSDの物理的故障がないかディスクチェックで調べるなどしてください。
いずれにせよ、プラグインは一つずつインストール方法を確認しながら入れるようお願いします。
プラグインをやみくもに入れると起動時に以下のエラー表示がされることがあります。
ID confliction : ProductID:******** PluginID:********
used: C:\Users\****\AppData\Roaming\Metasequoia\Plugins\******\******.dll
ignored: C:\Program Files\Metaseq30\Plugins\******\******.dll
******.dll : Failed to load.
Not loaded normally. Maybe a required runtime is not installed, or the file is broken.
上側については表示されている2つのフォルダに同じプラグインが重複して存在しています。ignoredのほうのファイルを消してください。
下側は英文で表示されている通りですが、必要なランタイムがインストールされていません。ダウンロードサイトか当該プラグインに添付のドキュメントに記載されているインストール方法に従って、必要なランタイムを入手してインストールしてください。
ランタイムが既にインストールされているのにメッセージが表示される場合、ファイルが壊れている可能性があります。プラグインを再度入手してインストールし直したり、ハードディスク・SSDの物理的故障がないかディスクチェックで調べるなどしてください。
いずれにせよ、プラグインは一つずつインストール方法を確認しながら入れるようお願いします。
2012年9月24日月曜日
新BBSの仕様案
Ver3.1のリリース準備もしないといけないのですが、並行してBBSの作り直しを行っています。会社勤めしてた頃も含めてWebプログラミングって既存のコードをちょっと改造するくらいしかしたことないので、ちょっと手間取ったりもしていますが、既存のBBSに近いくらいの機能はだいたい出来てきました。
仕様としてはだいたいこんな感じを予定。(○は既存からあるもの、●が新規追加機能)
○通常表示、ツリー表示の切り替え
○記事の投稿、ファイルのアップロード
○記事の削除(管理者のみ可)
○「対応済み」「対応不要」などのステータス管理(管理者のみ変更可)
○ステータスでの絞込み表示
●タイトル・本文・投稿者での検索
●レスがついたときの投稿者へのメール通知(任意)
BBSとしては基本的な機能くらいは備えていると思いますが、他のBBSだとこんな機能があって便利とかそういうのがあれば教えてください。
あと、今はBBSを要望・不具合報告用に限定していますが、普通の質問や雑談に使えるものもあったほうがいいでしょうか?管理の面倒を増やしたくなかったのと、昔だとStudioMOMOなどの外部サイトで人が集まるところがあったので、わざわざ公式のものを設ける必要もないかなと思っていたのですが、最近はそういうサイトが見当たらない気がします。2ch/mixiもすっかり閑古鳥ですし、単に需要がないのか、それとも適した場所がないのか、あるいは自分が知らないだけなのか。(MOMOってまだあるのかなと思って探してみたら跡形もなくなってますね・・・)
9/28追記:記事を書いた時点でアクセスできなかっただけで、まだ残っているようです。
仕様としてはだいたいこんな感じを予定。(○は既存からあるもの、●が新規追加機能)
○通常表示、ツリー表示の切り替え
○記事の投稿、ファイルのアップロード
○記事の削除(管理者のみ可)
○「対応済み」「対応不要」などのステータス管理(管理者のみ変更可)
○ステータスでの絞込み表示
●タイトル・本文・投稿者での検索
●レスがついたときの投稿者へのメール通知(任意)
BBSとしては基本的な機能くらいは備えていると思いますが、他のBBSだとこんな機能があって便利とかそういうのがあれば教えてください。
あと、今はBBSを要望・不具合報告用に限定していますが、普通の質問や雑談に使えるものもあったほうがいいでしょうか?管理の面倒を増やしたくなかったのと、昔だとStudioMOMOなどの外部サイトで人が集まるところがあったので、わざわざ公式のものを設ける必要もないかなと思っていたのですが、最近はそういうサイトが見当たらない気がします。2ch/mixiもすっかり閑古鳥ですし、単に需要がないのか、それとも適した場所がないのか、あるいは自分が知らないだけなのか。(MOMOってまだあるのかなと思って探してみたら跡形もなくなってますね・・・)
9/28追記:記事を書いた時点でアクセスできなかっただけで、まだ残っているようです。
2012年9月22日土曜日
Qtの32bit/64bit版両方をビルド
Webで探すとQtのビルドの方法はいろいろ見つかるけれど、微妙に書いてあることが食い違っていたり、さらに64bit版のビルドについてはあまり詳細に書いてないことが多いので、自分がやった内容をまとめてみた。
目標は統合開発環境であるQt Creatorは使わず、Visual Studio 2010上でQtを使ったプロジェクトをビルドすること。
まず、Qtのダウンロード。古い記事にはNokiaのサイト内にリンクされているものが多いが、これはもう古い。オープンソース版は下記URLからダウンロードする。
http://qt-project.org/downloads
ダウンロードするものは以下。(執筆時の最新版は4.8.3)
・Qt SDK
・Qt librariesのソースコード(zipまたはtar.gz)
・Qt Visual Studio Add-in
Qt SDKのインストール
Qt SDKは一式が揃ったものだが、今回は自前でビルドするので本当は必要ない。ただ、サンプルをビルドして確認するのに便利だったり、あと後述で使うjomツールが入っているので、ダウンロードしてインストールする。
ソースコードを展開
Qt librariesのソースコードを「C:\Qt\4.8.3」に展開。展開の際に「C:\Qt\4.8.3\bin」などのフォルダが生成されるようにする。
DefaultLocalizationStrategy.cppの修正
C:\Qt\4.8.3\src\3rdparty\webkit\Source\WebCore\platform フォルダにある DefaultLocalizationStrategy.cpp をエディタで開いて、325行目と327行目にある全角のダブルクォーテーションを半角の「'」に書き換える。こうしないと後のコンパイル時にエラーが発生する。(ソースを書き換えずにエンコードを変えるだけでもいいらしいが試していない)
64bit版用フォルダの用意
「C:\Qt\4.8.3」のフォルダの内容をそのまま「C:\Qt\4.8.3_x64」にコピーする。
同一のソースコードを32/64bit版で別々のフォルダに複製して用意するのはディスクスペースの無駄のように思えるが、こうしないとVisual Studio Add-inにとって都合が悪い。(他のサイトではビルド後にbinやlibフォルダを退避するだけでいいというのがあったが、これを参考にしてしまったためにかなり嵌ってしまった)
32bit版のビルド
スタートメニューからVisual Studio Tools内にある[Visual Studio コマンド プロンプト (2010)]を呼び出して、次の順に実行する。
まずbinフォルダにパスを通すため次の行を実行。このフォルダにはビルド中に必要なツール入っている。
それからQtの先頭フォルダに移動。
そしてconfigureでビルド環境に応じたファイルを生成する。(Visual Studioのバージョンが違う場合、-platform以降を変更する必要がある)
そしてビルド。
最後の数字は並列コンパイルを行うコア数なので、使用環境に応じて変更する。ただ、ディスクアクセスが多いので、多分これ以上の数字にしてもあまり意味がないかもしれない。
また、標準的なビルド方法としてはnmakeを使うとなっているが、これだと並列コンパイルができないので時間がかかりすぎるのでお勧めしない。ただ、jomを使って並列コンパイルしても2時間近くはかかるので注意。
これで32bit版は完成。
64bit版のビルド
「C:\Qt\4.8.3」のフォルダを「C:\Qt\4.8.3_x64」に置き換えて、32bit版とまったく同様に行う。ただし、コマンドプロンプトの呼び出しにはVisual Studio Tools内にある[Visual Studio x64 Win64 コマンド プロンプト (2010)]を用いる。
Visual Studio上での設定
Visual Studio Add-inをインストールしてからVisual Studioを起動すると、メニューに「Qt」が追加されている。この中の「Qt Options」を呼び出し、以下のように名前・パスを32bit/64bitのそれぞれで登録する。(実際は名前はなんでもいい)
メニュー[ファイル > 新規作成 > プロジェクト]を呼び出すと、[Qt4 Projects]という項目が追加されているので、この中にある[Qt Application]を選んでそのまま進めていくと、Qt用のプロジェクトができあがる。
作成されたプロジェクトは32bit用なので、メニュー[プロジェクト > 構成マネージャー]でアクティブソリューションプラットフォームにx64を作成して、これをアクティブソリューションとして選んでおく。
そして、ソリューションエクスプローラ内のソリューションの項目(つまり一番上のもの)上で右クリックし、[Change Solution's Qt Version]を選んで、使用するQtのバージョンに適切なものを選ぶ。この項目は32bit/64bit別々に記憶されるので、最初に一度指定すれば後でアクティブプラットフォームを切り替えても大丈夫。
これでWin32/x64それぞれのソリューションをビルドすれば32bit版/64bit版の実行バイナリがそれぞれ出来上がって完成。
お疲れ様でした。以上の工程は自分が実際に行ったもので、必ずしもこの手順が最も良いというわけではないと思いますが、せめて一助になれば幸いです。
目標は統合開発環境であるQt Creatorは使わず、Visual Studio 2010上でQtを使ったプロジェクトをビルドすること。
まず、Qtのダウンロード。古い記事にはNokiaのサイト内にリンクされているものが多いが、これはもう古い。オープンソース版は下記URLからダウンロードする。
http://qt-project.org/downloads
ダウンロードするものは以下。(執筆時の最新版は4.8.3)
・Qt SDK
・Qt librariesのソースコード(zipまたはtar.gz)
・Qt Visual Studio Add-in
Qt SDKのインストール
Qt SDKは一式が揃ったものだが、今回は自前でビルドするので本当は必要ない。ただ、サンプルをビルドして確認するのに便利だったり、あと後述で使うjomツールが入っているので、ダウンロードしてインストールする。
ソースコードを展開
Qt librariesのソースコードを「C:\Qt\4.8.3」に展開。展開の際に「C:\Qt\4.8.3\bin」などのフォルダが生成されるようにする。
DefaultLocalizationStrategy.cppの修正
C:\Qt\4.8.3\src\3rdparty\webkit\Source\WebCore\platform フォルダにある DefaultLocalizationStrategy.cpp をエディタで開いて、325行目と327行目にある全角のダブルクォーテーションを半角の「'」に書き換える。こうしないと後のコンパイル時にエラーが発生する。(ソースを書き換えずにエンコードを変えるだけでもいいらしいが試していない)
64bit版用フォルダの用意
「C:\Qt\4.8.3」のフォルダの内容をそのまま「C:\Qt\4.8.3_x64」にコピーする。
同一のソースコードを32/64bit版で別々のフォルダに複製して用意するのはディスクスペースの無駄のように思えるが、こうしないとVisual Studio Add-inにとって都合が悪い。(他のサイトではビルド後にbinやlibフォルダを退避するだけでいいというのがあったが、これを参考にしてしまったためにかなり嵌ってしまった)
32bit版のビルド
スタートメニューからVisual Studio Tools内にある[Visual Studio コマンド プロンプト (2010)]を呼び出して、次の順に実行する。
まずbinフォルダにパスを通すため次の行を実行。このフォルダにはビルド中に必要なツール入っている。
PATH=%PATH%;C:\Qt\4.8.3\bin
それからQtの先頭フォルダに移動。
CD \Qt\4.8.3
そしてconfigureでビルド環境に応じたファイルを生成する。(Visual Studioのバージョンが違う場合、-platform以降を変更する必要がある)
configure -debug-and-release -D _CRT_SECURE_NO_WARNINGS -platform win32-msvc2010このとき途中でオープンソースと商用版どっちを使うかを聞かれるので、oを指定。次の確認でyを指定。15分程度かかる。
そしてビルド。
\QtSDK\QtCreator\bin\jom.exe -j 4
最後の数字は並列コンパイルを行うコア数なので、使用環境に応じて変更する。ただ、ディスクアクセスが多いので、多分これ以上の数字にしてもあまり意味がないかもしれない。
また、標準的なビルド方法としてはnmakeを使うとなっているが、これだと並列コンパイルができないので時間がかかりすぎるのでお勧めしない。ただ、jomを使って並列コンパイルしても2時間近くはかかるので注意。
これで32bit版は完成。
64bit版のビルド
「C:\Qt\4.8.3」のフォルダを「C:\Qt\4.8.3_x64」に置き換えて、32bit版とまったく同様に行う。ただし、コマンドプロンプトの呼び出しにはVisual Studio Tools内にある[Visual Studio x64 Win64 コマンド プロンプト (2010)]を用いる。
Visual Studio上での設定
Visual Studio Add-inをインストールしてからVisual Studioを起動すると、メニューに「Qt」が追加されている。この中の「Qt Options」を呼び出し、以下のように名前・パスを32bit/64bitのそれぞれで登録する。(実際は名前はなんでもいい)
Name | Path |
4.8.3 | C:\Qt\4.8.3 |
4.8.3 x64 | C:\Qt\4.8.3_x64 |
メニュー[ファイル > 新規作成 > プロジェクト]を呼び出すと、[Qt4 Projects]という項目が追加されているので、この中にある[Qt Application]を選んでそのまま進めていくと、Qt用のプロジェクトができあがる。
作成されたプロジェクトは32bit用なので、メニュー[プロジェクト > 構成マネージャー]でアクティブソリューションプラットフォームにx64を作成して、これをアクティブソリューションとして選んでおく。
そして、ソリューションエクスプローラ内のソリューションの項目(つまり一番上のもの)上で右クリックし、[Change Solution's Qt Version]を選んで、使用するQtのバージョンに適切なものを選ぶ。この項目は32bit/64bit別々に記憶されるので、最初に一度指定すれば後でアクティブプラットフォームを切り替えても大丈夫。
これでWin32/x64それぞれのソリューションをビルドすれば32bit版/64bit版の実行バイナリがそれぞれ出来上がって完成。
お疲れ様でした。以上の工程は自分が実際に行ったもので、必ずしもこの手順が最も良いというわけではないと思いますが、せめて一助になれば幸いです。
2012年9月19日水曜日
Metasequoia Ver3.0.5 公開
シェアウェア版Metasequoiaの最新版を公開しました。このバージョンでは光源を逆光に設定して保存したmqoファイルを読み込むとエラーが発生することがある不具合、およびプラグイン実行時に関する不具合を2件、計3件の修正を行っています。
発生頻度が高いものではありませんが、不意なデータ破損につながりかねないので、できるだけ早急にアップデートしてお使いいただくようお願いします。
発生頻度が高いものではありませんが、不意なデータ破損につながりかねないので、できるだけ早急にアップデートしてお使いいただくようお願いします。
2012年9月17日月曜日
BBSの仕様の一部変更について
要望・不具合報告用に設置しているBBSですが、仕様を一部変更しました。削除については管理者のみが行えるようにしました。
どうも一度書き込んだ内容を安易に削除する方がいらっしゃったようですが、基本的に書き込みが無駄になることはほとんどありません。例えば不具合と思って書き込んだ内容が勘違いであったとしても、それは削除せずに訂正を入れる方が価値があります。なぜなら同じ勘違いをする人が防げるかもしれないし、またなぜ勘違いをしたかの過程がわかればもっと勘違いしにくい仕様に変更するということもできるからです。単に削除されてしまうと何の価値もなくなってしまいます。要望についても同様で、書いた後になってやっぱり必要ないと思ったとしても、なぜそう考えたのかの理由が重要だと思います。明らかに実現不可能と思える要望であっても、将来実現可能に変わることもあるので、消す理由は存在しません。
どうしても削除が必要な場合は削除依頼をお願いします。ただし内容によっては削除を断る場合もあります。また、誹謗中傷やプライバシーの侵害など、違法行為あるいは他人の気分を害するような含む内容については管理者の判断で削除することがありますので、ご了承ください。
あと、ついでのお願いですが、書き込む際は無駄に長文にせずに簡潔にまとめていただけると助かります。長文が続くと読んでるうちにだんだんしんどくなってしまいます。ただ、要望についてはその理由や使い方の説明は必ず書いてください。機能を実装するときは、なぜ必要なのか、どのように使うかをイメージするところから始まりますので。
どうも一度書き込んだ内容を安易に削除する方がいらっしゃったようですが、基本的に書き込みが無駄になることはほとんどありません。例えば不具合と思って書き込んだ内容が勘違いであったとしても、それは削除せずに訂正を入れる方が価値があります。なぜなら同じ勘違いをする人が防げるかもしれないし、またなぜ勘違いをしたかの過程がわかればもっと勘違いしにくい仕様に変更するということもできるからです。単に削除されてしまうと何の価値もなくなってしまいます。要望についても同様で、書いた後になってやっぱり必要ないと思ったとしても、なぜそう考えたのかの理由が重要だと思います。明らかに実現不可能と思える要望であっても、将来実現可能に変わることもあるので、消す理由は存在しません。
どうしても削除が必要な場合は削除依頼をお願いします。ただし内容によっては削除を断る場合もあります。また、誹謗中傷やプライバシーの侵害など、違法行為あるいは他人の気分を害するような含む内容については管理者の判断で削除することがありますので、ご了承ください。
あと、ついでのお願いですが、書き込む際は無駄に長文にせずに簡潔にまとめていただけると助かります。長文が続くと読んでるうちにだんだんしんどくなってしまいます。ただ、要望についてはその理由や使い方の説明は必ず書いてください。機能を実装するときは、なぜ必要なのか、どのように使うかをイメージするところから始まりますので。
2012年9月16日日曜日
Ver3.1以降の開発計画
LE版はようやくR3.0をリリースしたばかりですが、シェアウェア版はVer3.1の開発も最終段階に入って正式リリースが近づいてきました。4か月前の計画ほぼその通りに来ていて、それを書いた時点ではまだ目途が立っていなかった機能もいくつか実装できたので、自分としては悪くない内容だと思います。
今後についても特に変化はありません。Ver3.1リリース後はVer4.0の開発に入ります。Ver3.1の開発と並行して研究開発を進めていた機能なんかもありますが、それ以外は具体的な部分がまだ何もまとまっていないので、割と大きめの変更を伴う要望があればBBSにお願いします。もちろん些細な小変更の要望もOKです。
Qtも以前の記事を書いてから全然検証が進んでいなくて、まだ本採用できるかどうかわかってないので、やることが山ほどあるなと思ってしまいます。
MetasequoiaLE R3.0 公開
フリーソフト版LEもVer3.0をベースとしたものにバージョンアップしました。シェアウェア版と同様の表示の高速化・高品質化が行われ、複数光源も利用いただけます。その他、さまざまな改良・修正が行われていますので、R2.4など旧バージョンをお使いの方はアップデートしてご利用ください。
2012年9月13日木曜日
Metasequoia Ver3.1 Beta6
Beta6を公開しました。今回の更新では材質の複数選択ができるようになりましたが、それ以外は不具合修正などで大きな変更はありません。
本当はもう出来ているものの諸事情でまだ組み込んでいない機能が残っていますが、機能面ではこれでほぼ完成です。ベータまたはリリース候補版としてあと1回くらい更新してから、Ver3.1.0として正式公開となる見通しです。
※追記
BBSにも報告がありましたが、バージョン表記はBeta5のままになっています。開発ソフトがたまにバージョン等のリソースを更新してくれないバグっぽい?
本当はもう出来ているものの諸事情でまだ組み込んでいない機能が残っていますが、機能面ではこれでほぼ完成です。ベータまたはリリース候補版としてあと1回くらい更新してから、Ver3.1.0として正式公開となる見通しです。
※追記
BBSにも報告がありましたが、バージョン表記はBeta5のままになっています。開発ソフトがたまにバージョン等のリソースを更新してくれないバグっぽい?
2012年9月7日金曜日
Metasequoia Ver3.1 Beta5 公開
β版を更新しました。先月は更新しなかったので、約2ヶ月ぶりです。
今回は特筆すべき改良点というほどのものはありませんが、Beta5以前のβで完成度の低かった機能を強化したり、生じていた不具合を修正したのが中心となっています。
まだファイルの関連付けができないなど未完成機能が残っていますが、あと1回か2回くらいβ版を出してからVer3.1は正式リリースとなる見通しです。
今回は特筆すべき改良点というほどのものはありませんが、Beta5以前のβで完成度の低かった機能を強化したり、生じていた不具合を修正したのが中心となっています。
まだファイルの関連付けができないなど未完成機能が残っていますが、あと1回か2回くらいβ版を出してからVer3.1は正式リリースとなる見通しです。
2012年8月5日日曜日
2012年8月2日木曜日
Metasequoia Ver3.0.4 公開
2件の不具合修正を行ったVer3.0.4を公開しました。先日Ver3.0.3を公開したばかりですが、より信頼性の高い最新版に更新してお使いいただくようお願い申し上げます。
2012年7月31日火曜日
Metasequoia Ver3.0.3 公開
数件の改良・不具合修正を施したVer3.0.3を公開しました。
1つ新機能として、Ver3.1βには既に含まれていたSTL出力プラグインを同梱しました。ファイルフォーマットとしては非常にシンプルで持てる情報も少ないSTL形式ですが、最近3Dプリンター関連で需要が増加しているので、Ver3.1より前倒しする形でサポートすることになりました。
また一部のプラグインで必要なランタイムがインストールされていない状態でプラグインのみをインストールしていると、起動時にエラーとなって起動できなくなるものや、その他のもいくつか致命的なエラーにつながる不具合を修正しています。
Ver3.0系をお使いの方は出来るだけ早くアップデートしてお使いください。
追記:
従来変更点は同梱のupdate.txtのみに記載していましたが、今回から変更内容をWeb上でも確認できるようにしました。ダウンロード欄の横にリンクを貼っていますが、URLはこちらになります。
http://metaseq.net/metaseq/release_note.html
1つ新機能として、Ver3.1βには既に含まれていたSTL出力プラグインを同梱しました。ファイルフォーマットとしては非常にシンプルで持てる情報も少ないSTL形式ですが、最近3Dプリンター関連で需要が増加しているので、Ver3.1より前倒しする形でサポートすることになりました。
また一部のプラグインで必要なランタイムがインストールされていない状態でプラグインのみをインストールしていると、起動時にエラーとなって起動できなくなるものや、その他のもいくつか致命的なエラーにつながる不具合を修正しています。
Ver3.0系をお使いの方は出来るだけ早くアップデートしてお使いください。
追記:
従来変更点は同梱のupdate.txtのみに記載していましたが、今回から変更内容をWeb上でも確認できるようにしました。ダウンロード欄の横にリンクを貼っていますが、URLはこちらになります。
http://metaseq.net/metaseq/release_note.html
2012年7月19日木曜日
Unsubdivideプラグイン公開
Catmull-Clark曲面をフリーズした後に元のメッシュに戻す逆変換プラグイン「Unsubdivide」を公開しました。
http://metaseq.net/software/unsubdivide.html
このプラグインはオリジナルのCatmull-Clark曲面に対しては完全に元通りに戻すことができます。しかし、Ver3.1 Betaで搭載された折れ目や三角形保持などについては、面の構成(面数)は元に戻りますが、頂点の位置は元通りにはならずに位置がずれてしまいます。また、他にもいくつかの条件を満たす必要があり、単なるキューブをそのまま曲面化したものについても元通りにならないなどの制約がある点に気をつけてください。
http://metaseq.net/software/unsubdivide.html
このプラグインはオリジナルのCatmull-Clark曲面に対しては完全に元通りに戻すことができます。しかし、Ver3.1 Betaで搭載された折れ目や三角形保持などについては、面の構成(面数)は元に戻りますが、頂点の位置は元通りにはならずに位置がずれてしまいます。また、他にもいくつかの条件を満たす必要があり、単なるキューブをそのまま曲面化したものについても元通りにならないなどの制約がある点に気をつけてください。
2012年7月15日日曜日
Metasequoia Ver3.1 Beta4
Ver3.1系のベータ版を更新しました。今回の大きな変更点として、まず平行投影(Ortho表示)時の挙動が変更されています。
ドリーがホイールなどでの標準動作に変更されたときの副作用として、Ortho表示時に拡大率を変更するとカメラの位置も変更され、結果としてPers表示に戻したときに手前にあるオブジェクトが表示されなくなることがありましたが、今回のバージョンではOrtho表示時に拡大率を変更してもカメラの位置は変更せず、Persに戻したときに画角を戻すように仕様を変更しました。
今回の仕様が果たして最善かどうかはちょっと判断つきにくい気がしましたが、特にクレームなどがなければVer3.0系列にも同様の修正を行う予定です。
また、今回からUV展開用に新プラグインAnguwrapを同梱しています。UV展開をしたいオブジェクトの辺を選択して選択部処理内のメニューを呼び出すと、選択した辺が切れ目となるようにUVが展開されます。
従来の自動展開では細切れになりすぎて実用にならないなどの問題がありましたが、今回のプラグインでは切れ目の位置を任意に指定することができ、歪みの少ない展開結果を得ることができます。
切れ目を指定しないと展開できないか、または歪みの大きい結果になってしまいますが、今回の更新で選択コマンドも見直されており、[連続辺]や[ルート]選択がしやすくなっているので、切れ目を指定するのもそれほど手間ではないと思います。
他にも細かい変更点が色々とありますので、ベータ版をご使用の際は使用の前に必ずupdate.txtで更新内容を確認してください。また、環境設定のファイルの関連付け周りのUIが若干変更されていますが、この機能は現在はまだ動作しませんのでご注意ください。今後のベータ版で対応予定となっています。
ドリーがホイールなどでの標準動作に変更されたときの副作用として、Ortho表示時に拡大率を変更するとカメラの位置も変更され、結果としてPers表示に戻したときに手前にあるオブジェクトが表示されなくなることがありましたが、今回のバージョンではOrtho表示時に拡大率を変更してもカメラの位置は変更せず、Persに戻したときに画角を戻すように仕様を変更しました。
今回の仕様が果たして最善かどうかはちょっと判断つきにくい気がしましたが、特にクレームなどがなければVer3.0系列にも同様の修正を行う予定です。
また、今回からUV展開用に新プラグインAnguwrapを同梱しています。UV展開をしたいオブジェクトの辺を選択して選択部処理内のメニューを呼び出すと、選択した辺が切れ目となるようにUVが展開されます。
従来の自動展開では細切れになりすぎて実用にならないなどの問題がありましたが、今回のプラグインでは切れ目の位置を任意に指定することができ、歪みの少ない展開結果を得ることができます。
切れ目を指定しないと展開できないか、または歪みの大きい結果になってしまいますが、今回の更新で選択コマンドも見直されており、[連続辺]や[ルート]選択がしやすくなっているので、切れ目を指定するのもそれほど手間ではないと思います。
他にも細かい変更点が色々とありますので、ベータ版をご使用の際は使用の前に必ずupdate.txtで更新内容を確認してください。また、環境設定のファイルの関連付け周りのUIが若干変更されていますが、この機能は現在はまだ動作しませんのでご注意ください。今後のベータ版で対応予定となっています。
2012年7月11日水曜日
Indexerプラグイン公開
約1ヶ月ぶりのブログ更新ですが、新しいプラグインを公開しました。頂点・面の番号を表示するStationプラグインです。
一般ユーザーの方にはまず必要がないと思いますが、面を切り貼りするようなプラグインやスクリプトを作る際に頂点・面の位置が知りたくなることがしばしばあるので、そんなときには非常に便利だと思います。
一つ注意点として、ビデオカードの種類によっては文字があまり綺麗に表示されません。Direct3D表示でいまいちな場合にOpenGLやソフトウェア表示に切り替えると改善することがありますので、字が汚くて見づらい場合にはお試しあれ。字が小さくて見づらいという人は、ソースコードも含んでいますので自分で改造して使ってください。
Ver3.1も前回の更新からかなり開発が進んでいるので、近日中にまた公開します。
2012年6月15日金曜日
Metasequoia Ver3.1 Beta3
Beta2から何日も経っていませんが、さらにベータ版を更新しました。
今回の改良点はまず曲面タイプ1/2でもスムージング表示・ワイヤー表示ができるようになりました。また、材質のプロパティに両面表示が追加され、表裏で2枚ポリゴンを作成しなくても両面オブジェクトを用意できるようになりました。どちらも10年以上前から要望が上がっていましたが、ようやく対応することができました。
機能面ではこれくらいですが、あとSDKも併せて更新です。仕様変更になっている点など詳細はBBSのほうに書きます。
今回はSDK絡みがあったのでスパンが短くなりましたが、次はちょっと間を空けます。正式公開まで大きな変更はもうしないかもしれません。
今回の改良点はまず曲面タイプ1/2でもスムージング表示・ワイヤー表示ができるようになりました。また、材質のプロパティに両面表示が追加され、表裏で2枚ポリゴンを作成しなくても両面オブジェクトを用意できるようになりました。どちらも10年以上前から要望が上がっていましたが、ようやく対応することができました。
機能面ではこれくらいですが、あとSDKも併せて更新です。仕様変更になっている点など詳細はBBSのほうに書きます。
今回はSDK絡みがあったのでスパンが短くなりましたが、次はちょっと間を空けます。正式公開まで大きな変更はもうしないかもしれません。
最近買った洋書
コンピュータグラフィクス関連の洋書もゲーム寄りのものだと割と日本語で紹介しているブログ(例えばshader.jpとか)を見かけますが、形状処理の方面になるとほとんど見当たらないですね。以前自分が買った本を再度調べてみたら、自分のブログしか引っかからなかったり。
そんな自分が買う洋書はほとんどの方には関心がないとは思うのですが、全国でたとえ数人でもいれば多少なりとも意味があるかもしれないので、せっかくなので紹介します。
Introduction to the Mathematics of Subdivision Surfaces
タイトル通り、サブディビジョンサーフェスについて数学的な面から追及した内容となっています。ひたすら数式がならんでいるページも多くて、曲率とかに言及した論文を書くならこれくらい理解しとけ、という感じなのかもしれませんが、道具として使うだけならそんなに細かいことわかってなくてもいい気がします。残念ながら自分にはついていけない内容でした。 Semi-creaseのような派生形のものについては紹介くらいしか載せていないので、突き詰める方には逆に物足りないかもしれません。
Advanced Methods in Computer Graphics: With Examples in OpenGL
CGアルゴリズムの入門書程度は一通り理解している中級者の方に特にお勧めです。入門書には出てこない一歩進んだ内容がメインとなっています。例えばQuaternionくらいは入門書に載っているものとないものがありますが、この本だったらDual quaternionまで言及していたり、あとサブディビジョンサーフェスもCatmull-ClarkやLoopだけでなくsqrt(3)まで載せていたりなど、入門書にはない掘り下げが評価できます。ただ約300ページという制約上、それ以上の内容はないので、業務や研究で本気で取り組んでいる人には物足りないという点で、やはり中級者向けかなと思います。
サンプルプログラムもWebからダウンロードできるようになっているのは嬉しい点です。副題にOpenGLと書いてますが、単にglutを使っているだけで、アルゴリズムの理解のためにOpenGLの知識が必要というほどではないです。
これくらいの本が日本語でも出てくれればと思わずにはいられません。
そんな自分が買う洋書はほとんどの方には関心がないとは思うのですが、全国でたとえ数人でもいれば多少なりとも意味があるかもしれないので、せっかくなので紹介します。
Introduction to the Mathematics of Subdivision Surfaces
タイトル通り、サブディビジョンサーフェスについて数学的な面から追及した内容となっています。ひたすら数式がならんでいるページも多くて、曲率とかに言及した論文を書くならこれくらい理解しとけ、という感じなのかもしれませんが、道具として使うだけならそんなに細かいことわかってなくてもいい気がします。残念ながら自分にはついていけない内容でした。 Semi-creaseのような派生形のものについては紹介くらいしか載せていないので、突き詰める方には逆に物足りないかもしれません。
Advanced Methods in Computer Graphics: With Examples in OpenGL
CGアルゴリズムの入門書程度は一通り理解している中級者の方に特にお勧めです。入門書には出てこない一歩進んだ内容がメインとなっています。例えばQuaternionくらいは入門書に載っているものとないものがありますが、この本だったらDual quaternionまで言及していたり、あとサブディビジョンサーフェスもCatmull-ClarkやLoopだけでなくsqrt(3)まで載せていたりなど、入門書にはない掘り下げが評価できます。ただ約300ページという制約上、それ以上の内容はないので、業務や研究で本気で取り組んでいる人には物足りないという点で、やはり中級者向けかなと思います。
サンプルプログラムもWebからダウンロードできるようになっているのは嬉しい点です。副題にOpenGLと書いてますが、単にglutを使っているだけで、アルゴリズムの理解のためにOpenGLの知識が必要というほどではないです。
これくらいの本が日本語でも出てくれればと思わずにはいられません。
2012年6月9日土曜日
Ver3.1 Beta2用SDK
Ver3.1 Beta2の公開に合わせてSDKも更新しました。Beta1とはバイナリレベルで互換性がないので、新しいSDKでビルドしなおしてください。
今回のSDKでは頂点だけでなく、オブジェクト・面・材質にもユーザーデータを割り当てることができます。使用方法は頂点とまったく同じなので、説明するまでもないでしょう。ただ、頂点を含めて今の仕様でいいかというと微妙なので、今後のβで仕様の見直しは行うと思います。
あとついでにCatmull-Clark用のエッジの先鋭化情報の入出力のAPIも追加しています。
今回のSDKでは頂点だけでなく、オブジェクト・面・材質にもユーザーデータを割り当てることができます。使用方法は頂点とまったく同じなので、説明するまでもないでしょう。ただ、頂点を含めて今の仕様でいいかというと微妙なので、今後のβで仕様の見直しは行うと思います。
あとついでにCatmull-Clark用のエッジの先鋭化情報の入出力のAPIも追加しています。
Metasequoia Ver3.1 Beta2 公開
Ver3.1 Beta2を公開しました。
まず前回のβから仕様変更になっている点について。グレースケール画像を凸凹マップに読み込んだときに法線マップには変換せず、ペイントパネル上でそのまま表示・修正できるようになりました。当然ペイントコマンドを使って3D上で直接ペイントすることもできます。法線マップに変換したい場合はペイントパネルのメニューからです。
それから新機能の紹介です。Catmull-Clark曲面のエッジに対して先鋭にするかどうかを指定できるようになりました。辺を選択してから[曲面にエッジをつける・消す(Catmull-Clark)]メニューを呼び出すか、[ウェイト]コマンドで辺をクリックすると、下図の右側の面のようにくっきりとした折れ目をつけることができます。
まず前回のβから仕様変更になっている点について。グレースケール画像を凸凹マップに読み込んだときに法線マップには変換せず、ペイントパネル上でそのまま表示・修正できるようになりました。当然ペイントコマンドを使って3D上で直接ペイントすることもできます。法線マップに変換したい場合はペイントパネルのメニューからです。
それから新機能の紹介です。Catmull-Clark曲面のエッジに対して先鋭にするかどうかを指定できるようになりました。辺を選択してから[曲面にエッジをつける・消す(Catmull-Clark)]メニューを呼び出すか、[ウェイト]コマンドで辺をクリックすると、下図の右側の面のようにくっきりとした折れ目をつけることができます。
曲面化すると滑らかになりすぎて困ることがありましたが、この機能によってメカや工業製品のようなものにもCatmull-Clark曲面を利用できるようになり、モデリングの自由度がかなり上がるものと思います。
また、隣に共有する面がなくて辺が開いている場合も同様の処理が行われるよう変更されています。この場合は、逆に以前のバージョンと同じにすることはできませんのでご注意を。
さらにCatmull-Clark曲面にはもう一つ改良が加えられています。オブジェクトの設定に[三角形を保持]が追加されました。従来のものと切り替えて新しい分割アルゴリズムを使用することができます。
左側が従来通りのもの、そして右側が新たに可能になった四角形と三角形が混在したCatmull-Clark曲面です。オリジナルのメッシュで三角形になっているところがさらに細かい三角形に分割されていることがわかるでしょうか。
三角形のままで分割して何の意味があるの?と思われる方もいらっしゃるかもしれませんが、1つ目のメリットとして、三角形が分割された後の(三角形換算での)面数が少なくなります。分割レベルを1段階上げたとき、従来だと3つの四角形=6つの三角形に分割されていたのが、新しい手法では4つの三角形で済みます。
そして2つ目のメリットは四角形と三角形が混在したオブジェクトに対して、より滑らかな曲面を得られるということです。
円筒をそのまま曲面化しただけですが、左側の従来のものは四角形と三角形の境界となる付近の表面がわずかにでこぼこしているため、スペキュラハイライトが一か所に定まらずにいるのがわかります。一方、右側の新しいアルゴリズムでは表面が滑らかなため、非常に美しいハイライトが得られています。このようにわずかなゆがみによって生じる問題が解決されているのです。
今回のβでは三角形の保持は従来通りのOFFがデフォルトですが、ONにしてもいいかもという気がします。どちらがいいか、意見があればコメントください。
他にもオブジェクトパネル回りがBeta1からさらに強化され、より使いやすくなっています。また、DirectX 11のランタイムがなくてもエラーが出ないようにしています(どのみちDirectX 11はVer3.1では対応しません)。β版のため日常使用はお勧めしませんが、新しい機能をぜひ一度体験してください。
2012年6月7日木曜日
twitter始めました
twitterのアカウント作りました。アカウント名は metaseq3d です。このブログの右側にもツイート内容が表示されるようにしました。
まだテスト投稿以外何も書いていませんが、開発途中のあれこれだとかブログに書くまでもないことを投稿するかもしれません。
ブログが更新されたらtwitterにも自動投稿されるようにしてみたのですが、まだ動作確認していなくてぶっつけ本番なので、この投稿はちゃんと反映されるかな?
まだテスト投稿以外何も書いていませんが、開発途中のあれこれだとかブログに書くまでもないことを投稿するかもしれません。
ブログが更新されたらtwitterにも自動投稿されるようにしてみたのですが、まだ動作確認していなくてぶっつけ本番なので、この投稿はちゃんと反映されるかな?
2012年6月6日水曜日
Pythonスクリプト講座
前の記事のコメントにオブジェクトが使用している材質が知りたいというのがあったので、これを調べるPythonスクリプトを作ってみました。
下のコードをスクリプトエディタ内にコピーして実行してみてください。使用している材質の名前がスクリプトエディタ下側のログに出力されます。(コード上をダブルクリックしてからCtrl+Cでコピーすると改行も保持されるようです。ペースト後、最後の行に改行を入れてから[EOF]が行の先頭にくるようにして実行してください)
さて、プログラム経験のない人だとこのコードを見ただけでどうなっているのかさっぱり、と思われるかもしれませんが、基本的な文法だけでも理解してしまえばスクリプトはそんなに難しくありません。
Pythonは1行ごとに処理が行われるので、1行ずつ順に見ていけばわかるということです。
まず1行目は単なるコメントです。先頭に#がついているので、その行は内容を解説するだけで処理としては特に意味のないものとなります。
2行目ではMQSystem.getDocument()でドキュメントを取得し、左辺にあるdoc変数に格納します。Pythonでは新しい変数を使うときに前もって宣言する必要はありません。いきなり使用できます。
3行目でそのドキュメント内にあるカレントオブジェクトを取得しています。doc.currentObjectIndexはオブジェクトの番号で、doc.object[番号]の形式で記述するとその番号に該当するオブジェクトが取得されます。取得したオブジェクトは左辺のobj変数に格納します。
4行目は見やすくするための単なる改行で、特に意味はありません。
5行目では材質の数を取得し、nm変数に代入しています。6行目ではuselistに中身がすべて0のnm個の数値のリストを生成しています。このuselistはどの材質が何個の面で使用されたかを調べるために後で使用します。7行目は未着色面、つまりどの材質も割り当てられていない面の数を調べるための変数nonmatを初期化しています。
9行目で変数nmにオブジェクト内の面の数を代入し、10行目のfor文でその個数分だけ処理を繰り返すことを指定します。以降の繰り替し処理はタブで字下げ(インデント)を行います。変数xは0から始まり、処理が繰り返されるごとに変数xの値が1つずつ増えていきます。xがnmと同じ数になるまで繰り返されます。
11行のif文ではx番目の面が使用する頂点数を調べます。obj.face[x].numVertexの値が0個の場合、その面は既に削除されたことになるので、0より大きい場合のみ以降の処理を行います。
12行目ではx番目の面が使用している材質の番号を調べます。obj.face[x].materialの値が0以上の場合は13行目でuselistリスト内のその番号に該当する数値を1つ増やします。これにより、どの材質が何個の面で使用されているかが把握できるようになります。
面が未着色面の場合はobj.face[x].materialが-1になるので、14行目のelse:以降に書かれた処理が行われることになり、15行目でnonmat変数の数値を1つ増やします。
17行目では字下げが行われていないので、上のif文もfor文からも抜けたことになります。for文の繰り返し処理が終わってからこの行の処理が行われます。MQSystem.printlnを実行すると、括弧内に記載された文字列がログに出力されます。
18行は繰り返し処理のfor文です。材質の個数分だけ以降の処理を行います。 19行目でuselist[x]の個数を調べます。x番目の材質が割り当てられている面の数が0より大きい場合、20行目でその材質の名前をログに出力します。
21行はfor文の繰り返しが終わって、次は未着色面の数を調べます。nonmat変数が0より大きければ、22行目で文字列"non-material"をログ出力します。
以上でスクリプトの処理は終了です。既存のスクリプトを何も考えずにそのまま実行するだけでもいいのですが、1行1行をちゃんと理解していけばスクリプトは決して難しくありません。既存のスクリプトを改良しながら理解を進めていけば、ちょっとした処理くらいは自分で書けるようになります。そうなるとツールの使い勝手が大きく上がることもあるので、最初覚えるのが面倒でも決して損することはありません。Scriptsフォルダにはいくつかサンプルのスクリプトが入っているので、それも参考にするといいと思います。
下のコードをスクリプトエディタ内にコピーして実行してみてください。使用している材質の名前がスクリプトエディタ下側のログに出力されます。(コード上をダブルクリックしてからCtrl+Cでコピーすると改行も保持されるようです。ペースト後、最後の行に改行を入れてから[EOF]が行の先頭にくるようにして実行してください)
# Check materials used in the current object doc = MQSystem.getDocument() obj = doc.object[doc.currentObjectIndex] nm = doc.numMaterial uselist = [0] * nm nonmat = 0 nf = obj.numFace for x in range(0,nf): if obj.face[x].numVertex >= 0: if obj.face[x].material >= 0: uselist[obj.face[x].material] += 1 else: nonmat += 1 MQSystem.println("Used materials in the current object:") for x in range(0,nm): if uselist[x] > 0: MQSystem.println(" " + doc.material[x].name) if nonmat > 0: MQSystem.println(" non-material")
さて、プログラム経験のない人だとこのコードを見ただけでどうなっているのかさっぱり、と思われるかもしれませんが、基本的な文法だけでも理解してしまえばスクリプトはそんなに難しくありません。
Pythonは1行ごとに処理が行われるので、1行ずつ順に見ていけばわかるということです。
まず1行目は単なるコメントです。先頭に#がついているので、その行は内容を解説するだけで処理としては特に意味のないものとなります。
2行目ではMQSystem.getDocument()でドキュメントを取得し、左辺にあるdoc変数に格納します。Pythonでは新しい変数を使うときに前もって宣言する必要はありません。いきなり使用できます。
3行目でそのドキュメント内にあるカレントオブジェクトを取得しています。doc.currentObjectIndexはオブジェクトの番号で、doc.object[番号]の形式で記述するとその番号に該当するオブジェクトが取得されます。取得したオブジェクトは左辺のobj変数に格納します。
4行目は見やすくするための単なる改行で、特に意味はありません。
5行目では材質の数を取得し、nm変数に代入しています。6行目ではuselistに中身がすべて0のnm個の数値のリストを生成しています。このuselistはどの材質が何個の面で使用されたかを調べるために後で使用します。7行目は未着色面、つまりどの材質も割り当てられていない面の数を調べるための変数nonmatを初期化しています。
9行目で変数nmにオブジェクト内の面の数を代入し、10行目のfor文でその個数分だけ処理を繰り返すことを指定します。以降の繰り替し処理はタブで字下げ(インデント)を行います。変数xは0から始まり、処理が繰り返されるごとに変数xの値が1つずつ増えていきます。xがnmと同じ数になるまで繰り返されます。
11行のif文ではx番目の面が使用する頂点数を調べます。obj.face[x].numVertexの値が0個の場合、その面は既に削除されたことになるので、0より大きい場合のみ以降の処理を行います。
12行目ではx番目の面が使用している材質の番号を調べます。obj.face[x].materialの値が0以上の場合は13行目でuselistリスト内のその番号に該当する数値を1つ増やします。これにより、どの材質が何個の面で使用されているかが把握できるようになります。
面が未着色面の場合はobj.face[x].materialが-1になるので、14行目のelse:以降に書かれた処理が行われることになり、15行目でnonmat変数の数値を1つ増やします。
17行目では字下げが行われていないので、上のif文もfor文からも抜けたことになります。for文の繰り返し処理が終わってからこの行の処理が行われます。MQSystem.printlnを実行すると、括弧内に記載された文字列がログに出力されます。
18行は繰り返し処理のfor文です。材質の個数分だけ以降の処理を行います。 19行目でuselist[x]の個数を調べます。x番目の材質が割り当てられている面の数が0より大きい場合、20行目でその材質の名前をログに出力します。
21行はfor文の繰り返しが終わって、次は未着色面の数を調べます。nonmat変数が0より大きければ、22行目で文字列"non-material"をログ出力します。
以上でスクリプトの処理は終了です。既存のスクリプトを何も考えずにそのまま実行するだけでもいいのですが、1行1行をちゃんと理解していけばスクリプトは決して難しくありません。既存のスクリプトを改良しながら理解を進めていけば、ちょっとした処理くらいは自分で書けるようになります。そうなるとツールの使い勝手が大きく上がることもあるので、最初覚えるのが面倒でも決して損することはありません。Scriptsフォルダにはいくつかサンプルのスクリプトが入っているので、それも参考にするといいと思います。
2012年5月28日月曜日
Ver3.1 Beta1の改良点(2)
残りの主な改良点を紹介します。
Catmull-Clark曲面を表示しているときに分割後の面がどのようになるかをワイヤー表示によって知ることができるようになりました。ワイヤー表示が邪魔な場合、メニュー「表示」「曲面ワイヤー表示」をOFFにすれば従来通りに表示できます。ただし、曲面タイプ1・2はそもそもスムージング表示ができないので、ワイヤー表示も対応してません。
また、オブジェクトパネルが改良されました。一見しただけでは特に変わっていないですが、複製や階層を変更したときに、子階層も連動して変更されるようになりました。また、リストを複数選択ができるようになったので、複数選択した状態で一括して削除したり、右クリックメニューで同じ曲面や鏡面状態を設定することができます。ただし、従来Ctrl/Shiftキーに割り当てられていた頂点・面の選択操作と重複してしまったので、こちらはAltキーも押す必要があります。・・・少し不便かも?正式リリースまでにさらに変更するかもしれません。
ファイル入出力も強化されています。まず、STL(Stereolithography)形式での出力がサポートされました。最近3Dプリンタ関連で問い合わせが多いので対応しましたが、プラグインとして実装しているので、Ver3.0系の次のリリースにも同梱予定です。入力のほうも必要でしょうか?要検討かもしれません。また、マッピング画像としてTIFF形式もサポートしました。
その他、
今回のベータ版ではまだ見直しが必要と思われる箇所のほんの一部を改良したにすぎません。おそらくコマンド1つにそんな中途箇所が必ず1つ以上あるように思っています。Ver3.1では大幅な変更は考えていないので、GUIの大改良が必要なところまでは手は回りませんし、今回改良を加えた箇所でもまだ中途半端な部分が残っていますが、正式リリースまでにさらにかゆい個所に手が届くようにしていきます。
Catmull-Clark曲面を表示しているときに分割後の面がどのようになるかをワイヤー表示によって知ることができるようになりました。ワイヤー表示が邪魔な場合、メニュー「表示」「曲面ワイヤー表示」をOFFにすれば従来通りに表示できます。ただし、曲面タイプ1・2はそもそもスムージング表示ができないので、ワイヤー表示も対応してません。
また、オブジェクトパネルが改良されました。一見しただけでは特に変わっていないですが、複製や階層を変更したときに、子階層も連動して変更されるようになりました。また、リストを複数選択ができるようになったので、複数選択した状態で一括して削除したり、右クリックメニューで同じ曲面や鏡面状態を設定することができます。ただし、従来Ctrl/Shiftキーに割り当てられていた頂点・面の選択操作と重複してしまったので、こちらはAltキーも押す必要があります。・・・少し不便かも?正式リリースまでにさらに変更するかもしれません。
ファイル入出力も強化されています。まず、STL(Stereolithography)形式での出力がサポートされました。最近3Dプリンタ関連で問い合わせが多いので対応しましたが、プラグインとして実装しているので、Ver3.0系の次のリリースにも同梱予定です。入力のほうも必要でしょうか?要検討かもしれません。また、マッピング画像としてTIFF形式もサポートしました。
その他、
- 回転コマンドで数値入力ダイアログを表示したまま操作できるようになった
- べベルや角の丸めを実行したときにUVができるだけ変わらないようになった
- 選択コマンドのルートで辺の選択、ブラシで面の選択もできるようになった
今回のベータ版ではまだ見直しが必要と思われる箇所のほんの一部を改良したにすぎません。おそらくコマンド1つにそんな中途箇所が必ず1つ以上あるように思っています。Ver3.1では大幅な変更は考えていないので、GUIの大改良が必要なところまでは手は回りませんし、今回改良を加えた箇所でもまだ中途半端な部分が残っていますが、正式リリースまでにさらにかゆい個所に手が届くようにしていきます。
Ver3.1 Beta1の改良点(1)
主な新機能については既に書いた通りですが、既存機能の改良点も含めて個別に紹介していきます。
まず初めにバンプマップと法線マップについて。Ver1.0の頃から材質パネルには「凸凹マップ」の設定欄がありましたが、これを設定しても画面には何にも反映されませんでした。しかし、今回やっとこの凸凹マップが使用される時がきました。
例えば上のような白地に黒丸を描いただけのグレースケール画像を用意し、このファイルを材質の凸凹マッピング欄に指定します。そして立方体にこの材質を貼りつけると、白色の箇所が高く、黒色が低く見えるような凹凸が陰影として付きます。
まず初めにバンプマップと法線マップについて。Ver1.0の頃から材質パネルには「凸凹マップ」の設定欄がありましたが、これを設定しても画面には何にも反映されませんでした。しかし、今回やっとこの凸凹マップが使用される時がきました。
例えば上のような白地に黒丸を描いただけのグレースケール画像を用意し、このファイルを材質の凸凹マッピング欄に指定します。そして立方体にこの材質を貼りつけると、白色の箇所が高く、黒色が低く見えるような凹凸が陰影として付きます。
これがバンプマップです。ただ、実際に表面が盛り上がったり押し下がったりしているわけでないので、角度を変更しても平面のままになります。
このバンプマップは内部で自動的に法線マップに変換されます。ペイントパネルを開いて凸凹マップを表示すると、青っぽい背景に緑や赤のふちがついたようなカラー画像が表示されます。
これが法線マップです。材質パネルの凸凹マップ欄には初めからこのカラー化された法線マップ用の画像を指定することもできます。指定したファイルが8bitグレースケール画像であればバンプマップ、それ以外の画像が法線マップとして取り扱われます。
ところでこの法線マップですが、他のソフトとうまく相互互換できるかあまり検証できておりません。もしかしたら影の付き方が異なる(特に上下が反転する)可能性があるので、他のソフトでそのまま読めた、またはちょっと違うというのをコメントいただけると非常に助かるのですが。
また、現状ではグレースケールのバンプマップのまま編集することはできません。一応法線マップをペイントすることはできるのですが、直接編集するのも難しそうなので、今後の検討課題です。
Ver3.1 Beta1用のSDK
今回のSDKで頂点ごとに任意のデータをプラグインから割り当てることができるようになりました。これにより、例えばボーンやモーフに使用されるウェイトなどのデータを頂点に容易に割り当てることが出来ます。オブジェクトが複製されたときにはユーザーデータの内容もそのまま複製されます。
使用方法ですが残念ながらサンプルがありませんので、以下に簡単に記載します。
MQDocument::CreateVertexUserData()
まずこの関数を最初に呼び出して、頂点ユーザーデータIDを作成します。頂点ごとに割り当てるデータのサイズはここで指定します。複数回呼び出すと、複数のユーザーデータを管理できます。
MQObject::AllocVertexUserData()
頂点ユーザーデータIDに対応するメモリ領域をオブジェクトに確保します。同じIDで複数回呼び出しても確保される領域は1つだけなので、ユーザーデータの取得・設定の前にとりあえず毎回呼び出しても問題ありません。
MQObject::SetVertexUserData()
指定した頂点にユーザーデータを設定します。
MQObject::GetVertexUserData()
頂点に設定されたユーザーデータを取得します。
基本はこの4つです。あと解放用の関数にMQDocument::DeleteVertexUserData()とMQObject::FreeVertexUserData()がありますが、ドキュメント・オブジェクトの削除時に自動的に解放されるので、必ず呼び出さないといけないということはありません。
ただし、まだ現時点ではテスト実装なので、SDKの仕様については今後変更になる可能性が大です。特にウェイトを割り当てる目的だと頂点ごとに固定長ではなく可変長のデータサイズが必要になることを考慮しても、仕様として中途半端な気がしています。ですので、試しに実装してみて速度面などに問題がないか、あるいは仕様についての提言などをコメントまたはSDK用BBSにいただけると幸いです。何の意見もなければ・・・見送りにするかもしれません。
また、このBeta版用のSDKで作成したプラグインは配布しないでください。配布すると仕様変更に対応できなくなるので危険です。
※5/28 23:40 ヘッダが一部おかしかったので差し替え版mqsdk310_beta1_a.zipを用意しました。
使用方法ですが残念ながらサンプルがありませんので、以下に簡単に記載します。
MQDocument::CreateVertexUserData()
まずこの関数を最初に呼び出して、頂点ユーザーデータIDを作成します。頂点ごとに割り当てるデータのサイズはここで指定します。複数回呼び出すと、複数のユーザーデータを管理できます。
MQObject::AllocVertexUserData()
頂点ユーザーデータIDに対応するメモリ領域をオブジェクトに確保します。同じIDで複数回呼び出しても確保される領域は1つだけなので、ユーザーデータの取得・設定の前にとりあえず毎回呼び出しても問題ありません。
MQObject::SetVertexUserData()
指定した頂点にユーザーデータを設定します。
MQObject::GetVertexUserData()
頂点に設定されたユーザーデータを取得します。
基本はこの4つです。あと解放用の関数にMQDocument::DeleteVertexUserData()とMQObject::FreeVertexUserData()がありますが、ドキュメント・オブジェクトの削除時に自動的に解放されるので、必ず呼び出さないといけないということはありません。
ただし、まだ現時点ではテスト実装なので、SDKの仕様については今後変更になる可能性が大です。特にウェイトを割り当てる目的だと頂点ごとに固定長ではなく可変長のデータサイズが必要になることを考慮しても、仕様として中途半端な気がしています。ですので、試しに実装してみて速度面などに問題がないか、あるいは仕様についての提言などをコメントまたはSDK用BBSにいただけると幸いです。何の意見もなければ・・・見送りにするかもしれません。
また、このBeta版用のSDKで作成したプラグインは配布しないでください。配布すると仕様変更に対応できなくなるので危険です。
※5/28 23:40 ヘッダが一部おかしかったので差し替え版mqsdk310_beta1_a.zipを用意しました。
Metasequoia Ver3.1 Beta1 公開
Ver3.0の後継バージョンの最初のベータ版を「βサイト」にて公開しました。
主な新機能は、
主な新機能は、
- 法線マップ、バンプマップの表示
- Catmull-Clark曲線のワイヤー表示
- TIFF画像の入出力
- STLファイルの出力
- SDKからの頂点ユーザーデータへのアクセス
です。また、既存のコマンドの改良も含めて十数件の変更点が今回のリリースには含まれています。
個別の内容についての詳細は別記事として後ほど記載します。
2012年5月23日水曜日
Ver3.1鋭意開発中
以前のエントリで既に書きましたが、Ver3.1を夏~秋にリリース予定で、現在進行形で開発が進んでいます。
Ver3.1では大きな改良は行いませんが、作りこみが甘くて完成度が低いままになっている機能、特にVer2.4あたりから結構あらが目立つようになってきたので、それらのブラッシュアップが中心になります。時間が取れないために積み残しとしてソースコード内にTODOを記載している箇所が結構あるので、まずはそれらの消化と、あとはBBSに書かれている要望(といっても件数が多すぎるのでその一部)への対応となります。
最初のベータ版は今月末か来月初めくらいを予定しています。頂点への任意データ割り当てのテスト用にSDKもベータ版を出します。
例えばちょっとした部分で毎回同じ操作をするのが面倒とかいうものは早期に対応していきたいので、もし何か意見ありましたら不具合・要望掲示板か、このブログのコメント欄へお願いします。
Ver3.1では大きな改良は行いませんが、作りこみが甘くて完成度が低いままになっている機能、特にVer2.4あたりから結構あらが目立つようになってきたので、それらのブラッシュアップが中心になります。時間が取れないために積み残しとしてソースコード内にTODOを記載している箇所が結構あるので、まずはそれらの消化と、あとはBBSに書かれている要望(といっても件数が多すぎるのでその一部)への対応となります。
最初のベータ版は今月末か来月初めくらいを予定しています。頂点への任意データ割り当てのテスト用にSDKもベータ版を出します。
例えばちょっとした部分で毎回同じ操作をするのが面倒とかいうものは早期に対応していきたいので、もし何か意見ありましたら不具合・要望掲示板か、このブログのコメント欄へお願いします。
2012年5月21日月曜日
10年使える設計
Metasequoiaの開発を始めたのは1998年ですが、その前年の1997年にDirectX 5がリリースされ、またNVIDIAからRIVA128が発売されており、セガサターンやPlayStationなど家庭用ゲーム機に後れを取っていたWindowsの3D性能が飛躍的に上がりました。また、Delphiの技術をベースにC++でのRAD開発に対応した初代C++BuilderがBorlandから発売されたのもこの年です。
当時は学生で割と時間があり、まさに3Dのソフトを作る土壌が整ったわけで、C++Builder + DirectX5を使って1999年にVer1.0をリリースすることができました。
それから13年経ち、今でもC++BuilderとDirectXの組み合わせでMetasequoiaの開発は続いており、その間大きな設計変更を行うこともありませんでした。
学生の頃の設計で10年以上現役でいられたのは運が良かったかもしれません。Windows自体が基礎設計を変えずに互換性を維持してきたことが大きいと思います。しかし、マルチコアCPUやGPU、あるいはiPadなどのタブレット端末の登場など、当時はなかった要素が増えてきた現在において、学生の頃のものだとやはり素人作業というか、これ以上の小手先の改良はそろそろ限界が来ているようです。
Ver3.0でも多少の見直しを行って数倍の高速化を果たしましたが、それでも手軽に扱えるのはせいぜい20~30万ポリゴン程度。100万以上のポリゴンを扱うとなると、基本設計を見直す必要がありそうです。
どうせ再設計するなら今後10年は使えるようなものにしたい。検証はまだこれからですが、最新のPCでGPUを積極活用すればたぶん数百万ポリゴンくらいでも扱えるかなという期待感があります。GPUを活用すれば10年使えるという単純なものでもないですが、先月までは妄想レベルでしかなかったことに今ようやく取り掛かれるようになってちょっと嬉しいのです。もちろんコアの再設計なんて容易なものではなく、これから艱難辛苦が待っているのですが。
当時は学生で割と時間があり、まさに3Dのソフトを作る土壌が整ったわけで、C++Builder + DirectX5を使って1999年にVer1.0をリリースすることができました。
それから13年経ち、今でもC++BuilderとDirectXの組み合わせでMetasequoiaの開発は続いており、その間大きな設計変更を行うこともありませんでした。
学生の頃の設計で10年以上現役でいられたのは運が良かったかもしれません。Windows自体が基礎設計を変えずに互換性を維持してきたことが大きいと思います。しかし、マルチコアCPUやGPU、あるいはiPadなどのタブレット端末の登場など、当時はなかった要素が増えてきた現在において、学生の頃のものだとやはり素人作業というか、これ以上の小手先の改良はそろそろ限界が来ているようです。
Ver3.0でも多少の見直しを行って数倍の高速化を果たしましたが、それでも手軽に扱えるのはせいぜい20~30万ポリゴン程度。100万以上のポリゴンを扱うとなると、基本設計を見直す必要がありそうです。
どうせ再設計するなら今後10年は使えるようなものにしたい。検証はまだこれからですが、最新のPCでGPUを積極活用すればたぶん数百万ポリゴンくらいでも扱えるかなという期待感があります。GPUを活用すれば10年使えるという単純なものでもないですが、先月までは妄想レベルでしかなかったことに今ようやく取り掛かれるようになってちょっと嬉しいのです。もちろんコアの再設計なんて容易なものではなく、これから艱難辛苦が待っているのですが。
2012年5月16日水曜日
今後の開発計画
開発体制が今は整っていないというか本格稼働にはほど遠い状況なので、今後どれくらいのペースで改良を進められるか見積りが立てにくいため、ロードマップというほどでもありませんが、まずはVer3.1を夏~秋くらいにリリース、Ver4.0を来年前半くらいにリリースできればと考えています。
Ver3.1ではVer3.0で手が届かなかった箇所の手直しをするくらいで大きな変更は考えていませんが、新機能の一つとして法線マップ表示が決まっています。表示のみで編集ができないとあまり意味がないかもしれませんが、リアルタイムプレビューの強化という方向性でその第一段となります。他にも細かい改良をいくらか加えていきますが、必要に応じてVer3.2も出るかもしれません。
一方Ver4.0では内部コアの書き直しを含めて大幅な改良を予定しています。開発環境をVisual Studioに移行し、GUI用のツールキットもQtを採用する方向で検討を進めています。Qtはまだ触り始めたばかりですが、かなりの好感触で、VCLを無理に使い続けるよりも将来性がありそうです。グラフィック系のソフトでも大手ではMayaやPhotoshop Elementsなど、個人レベルでもFireAlpacaで使用されたりと、実績の高さからも安心感がありますね。最近Nokiaがちょっと色々なのと、オープンソース版ではなく商用版を選ぶと価格がかなり高いのは気になりますが。
大きな機能については基礎研究が必要な要素が多く、実際に何が搭載できそうかまだまだ見通しが立っていませんが、UV編集やスカルプトあたりは特に重点強化していきたい箇所です。スカルプトは2Dで言えばドット絵に対する水彩塗りのようなもの。90年代前半くらいまではPCで絵を描く=ドット絵を編集する意味でしたが、今ではドット絵編集は携帯向けコンテンツなど限定的な分野にとどまるように、遠くない将来には頂点1つ1つを操作してちまちまポリゴン編集するのも限られたケースだけになるのではないかと予想しています。
細かい改良については少し前にも書きましたが、ほとんどBBSからピックアップします。しかし、件数が多すぎて過去ログをすべて眺めて要望・改良案をまとめるだけでも大変…。検索機能もない旧式のBBSを使い続けるのもそろそろ限界かもしれません。
Ver3.1ではVer3.0で手が届かなかった箇所の手直しをするくらいで大きな変更は考えていませんが、新機能の一つとして法線マップ表示が決まっています。表示のみで編集ができないとあまり意味がないかもしれませんが、リアルタイムプレビューの強化という方向性でその第一段となります。他にも細かい改良をいくらか加えていきますが、必要に応じてVer3.2も出るかもしれません。
一方Ver4.0では内部コアの書き直しを含めて大幅な改良を予定しています。開発環境をVisual Studioに移行し、GUI用のツールキットもQtを採用する方向で検討を進めています。Qtはまだ触り始めたばかりですが、かなりの好感触で、VCLを無理に使い続けるよりも将来性がありそうです。グラフィック系のソフトでも大手ではMayaやPhotoshop Elementsなど、個人レベルでもFireAlpacaで使用されたりと、実績の高さからも安心感がありますね。最近Nokiaがちょっと色々なのと、オープンソース版ではなく商用版を選ぶと価格がかなり高いのは気になりますが。
大きな機能については基礎研究が必要な要素が多く、実際に何が搭載できそうかまだまだ見通しが立っていませんが、UV編集やスカルプトあたりは特に重点強化していきたい箇所です。スカルプトは2Dで言えばドット絵に対する水彩塗りのようなもの。90年代前半くらいまではPCで絵を描く=ドット絵を編集する意味でしたが、今ではドット絵編集は携帯向けコンテンツなど限定的な分野にとどまるように、遠くない将来には頂点1つ1つを操作してちまちまポリゴン編集するのも限られたケースだけになるのではないかと予想しています。
細かい改良については少し前にも書きましたが、ほとんどBBSからピックアップします。しかし、件数が多すぎて過去ログをすべて眺めて要望・改良案をまとめるだけでも大変…。検索機能もない旧式のBBSを使い続けるのもそろそろ限界かもしれません。
2012年5月11日金曜日
Metasequoia Ver3.0.2公開
前回の更新から3日しか経っていませんが、ある程度の数の修正となったので、最新版としてVer3.0.2を公開しました。
今回の更新でDAE出力時にテクスチャのV方向を反転するかどうか指定できるようになりました。ただ、他の出力とは異なりダイアログの外観が異なり、また英語表記となります。
また、テクスチャのファイルを指定するとき、そのファイルがMQOファイルと同じか下のフォルダにある場合、MQOファイルのフォルダをルートとした相対パスで設定されるようになりました。
スタイルファイルの追加と更新もありますので、最新版をダウンロードしてご利用ください。
短いスパンでの公開が続きましたが、致命的な不具合が発覚しない限りは次は少し間隔をあけます。
今回の更新でDAE出力時にテクスチャのV方向を反転するかどうか指定できるようになりました。ただ、他の出力とは異なりダイアログの外観が異なり、また英語表記となります。
また、テクスチャのファイルを指定するとき、そのファイルがMQOファイルと同じか下のフォルダにある場合、MQOファイルのフォルダをルートとした相対パスで設定されるようになりました。
スタイルファイルの追加と更新もありますので、最新版をダウンロードしてご利用ください。
短いスパンでの公開が続きましたが、致命的な不具合が発覚しない限りは次は少し間隔をあけます。
2012年5月10日木曜日
窓の杜で紹介されました
紹介URLはこちらです。
http://www.forest.impress.co.jp/docs/news/20120509_531400.html
どうでもいいことですが、大手ニュースサイトは大抵GWは休みだし、個人も旅行行ったりでGW中はWebを見ない人も多いので、即時性の情報伝達を狙うなら大きな発表はGW明けにしたほうがいいのかもしれないと思いました。
紹介記事中にもありますが、今後バージョンアップのペースは早くなります。先日Ver3.0.1を出したばかりですが、さらなる複数の細かい不具合修正を施したVer3.0.2も今週中にリリース予定です。細かい不具合というのはその機能を使わない人にとっては関係ないことも多く、あまりに頻度が多いとバージョンアップが面倒に思われることすらありますが、やはり積み重ねとして修正を行うことで信頼性を勝ち取ることが、特にオンラインで配布するソフトウェア開発にとっては重要なことだと思います。
http://www.forest.impress.co.jp/docs/news/20120509_531400.html
どうでもいいことですが、大手ニュースサイトは大抵GWは休みだし、個人も旅行行ったりでGW中はWebを見ない人も多いので、即時性の情報伝達を狙うなら大きな発表はGW明けにしたほうがいいのかもしれないと思いました。
紹介記事中にもありますが、今後バージョンアップのペースは早くなります。先日Ver3.0.1を出したばかりですが、さらなる複数の細かい不具合修正を施したVer3.0.2も今週中にリリース予定です。細かい不具合というのはその機能を使わない人にとっては関係ないことも多く、あまりに頻度が多いとバージョンアップが面倒に思われることすらありますが、やはり積み重ねとして修正を行うことで信頼性を勝ち取ることが、特にオンラインで配布するソフトウェア開発にとっては重要なことだと思います。
2012年5月7日月曜日
Metasequoia Ver3.0.1公開
一定の条件のもとでCatmull-Clark表示するとエラーが発生することがある不具合を修正したVer3.0.1を公開しました。
専業化してから初のリリースとなります。BBSへの報告に基づいて判明した不具合を早急に修正しました。以前はある程度まとまってから不具合修正版を出していましたが、今後はエラーが発生するなど重要度の高い不具合については出来るだけ早く修正版をリリースしていきます。
あと、今回のリリースではついでですが細かい改良も1件だけですが行っています。これもまたBBSに投稿があったものを取り入れました。大きい改良案については自分で方向性を立てて考えていますが、細かい改良についてはほとんどBBSに書き込まれた要望をそのまま採用しています。実際に日々つかっている方からの意見が重要であり、使いやすさというのは細かい改良の積み重ねによって成り立つと考えています。
開発の時間も十分にありますので、(BBSにこれまで書かれたものの約7割を占める)従来なら時間的に無理だった改良案も今後は積極的に取り入れて行きたいと思います。
専業化してから初のリリースとなります。BBSへの報告に基づいて判明した不具合を早急に修正しました。以前はある程度まとまってから不具合修正版を出していましたが、今後はエラーが発生するなど重要度の高い不具合については出来るだけ早く修正版をリリースしていきます。
あと、今回のリリースではついでですが細かい改良も1件だけですが行っています。これもまたBBSに投稿があったものを取り入れました。大きい改良案については自分で方向性を立てて考えていますが、細かい改良についてはほとんどBBSに書き込まれた要望をそのまま採用しています。実際に日々つかっている方からの意見が重要であり、使いやすさというのは細かい改良の積み重ねによって成り立つと考えています。
開発の時間も十分にありますので、(BBSにこれまで書かれたものの約7割を占める)従来なら時間的に無理だった改良案も今後は積極的に取り入れて行きたいと思います。
月曜日
専業化してから初めての月曜日です。
今日は単に月曜だけではなくGW明けということもあり、GW期間中に銀行口座に送金いただいた分がすべて午前9時前後に入金されます。以前ならとっくに会社に行っていた時間なので、実際にシリアルを発行するのが最速でもその日の夜、あるいは仕事で疲れてPC起動せずに寝るときは翌日以降になっていましたが、今日はもう登録フォームをいただいた分はすべて処理を完了しました。(登録フォームをまだいただいていない方は早めにお願いします)
専業化のメリットの一つはメールでの事務処理の対応が速くなることです。そして、今日はこれから丸一日開発に費やせる訳で、もう一つのメリットは開発ペースの向上にあります。ただ、どんな内容の開発をすべきを誤るといくら時間があっても足りません。市販ソフトが数人〜数十人程度で開発されているのに対し、こちらは今のところ自分一人なのですから。
今日は単に月曜だけではなくGW明けということもあり、GW期間中に銀行口座に送金いただいた分がすべて午前9時前後に入金されます。以前ならとっくに会社に行っていた時間なので、実際にシリアルを発行するのが最速でもその日の夜、あるいは仕事で疲れてPC起動せずに寝るときは翌日以降になっていましたが、今日はもう登録フォームをいただいた分はすべて処理を完了しました。(登録フォームをまだいただいていない方は早めにお願いします)
専業化のメリットの一つはメールでの事務処理の対応が速くなることです。そして、今日はこれから丸一日開発に費やせる訳で、もう一つのメリットは開発ペースの向上にあります。ただ、どんな内容の開発をすべきを誤るといくら時間があっても足りません。市販ソフトが数人〜数十人程度で開発されているのに対し、こちらは今のところ自分一人なのですから。
2012年5月6日日曜日
ブログを移転しました
「専業CGソフト屋のブログ」を始めました。
別に前のブログのままでも良かったのですが、タイトルを変えるだけよりかは、せっかくだから新しいブログを使ってみたいというのが移転の主な理由です。最近流行の要素を取り入れるのも情報の多さなどの面で楽かなと思い、移転先をBloggerにしました。
古いブログの内容は引き継いでいません。バージョンアップなどの告知がメインで、あまり大した内容のものはないと思いますが、消す必要性もないので前のはそのまま残しています。もし昔のものを参照したいときは右側のリンクから旧ブログをたどってください。
さて、以前の会社勤めしていた頃だとそもそも家でPCを触る時間も限られ、ブログを更新する時間もありませんでしたが、専業となった今は自由に時間を割り当てることができるようになりました。日々書いていくネタもそれほどあるわけではありませんが、Metasequoiaやプログラミングのこと、あるいはもっと雑多な色々について、多少なりとも書いて行ければと思います。
Bloggerを使うのは初めてなので、あまり細かいことがまだわかっていません。レイアウトの調整等もまだ最低限しかしていないので、今後少しずつ変えていきます。設定の不備などもあるかもしれませんので、何かお気づきの点とか、あともっとこうしたほうがいいなどの意見があれば、コメントいただけると幸いです。よろしくお願いいたします。
別に前のブログのままでも良かったのですが、タイトルを変えるだけよりかは、せっかくだから新しいブログを使ってみたいというのが移転の主な理由です。最近流行の要素を取り入れるのも情報の多さなどの面で楽かなと思い、移転先をBloggerにしました。
古いブログの内容は引き継いでいません。バージョンアップなどの告知がメインで、あまり大した内容のものはないと思いますが、消す必要性もないので前のはそのまま残しています。もし昔のものを参照したいときは右側のリンクから旧ブログをたどってください。
さて、以前の会社勤めしていた頃だとそもそも家でPCを触る時間も限られ、ブログを更新する時間もありませんでしたが、専業となった今は自由に時間を割り当てることができるようになりました。日々書いていくネタもそれほどあるわけではありませんが、Metasequoiaやプログラミングのこと、あるいはもっと雑多な色々について、多少なりとも書いて行ければと思います。
Bloggerを使うのは初めてなので、あまり細かいことがまだわかっていません。レイアウトの調整等もまだ最低限しかしていないので、今後少しずつ変えていきます。設定の不備などもあるかもしれませんので、何かお気づきの点とか、あともっとこうしたほうがいいなどの意見があれば、コメントいただけると幸いです。よろしくお願いいたします。
登録:
投稿 (Atom)