bf-Blender / Windows-Linux (2005/08/02)
投稿日時 2005年08月03日 | カテゴリ: テストビルド
|
元記事:bf-Blender / Windows-Linux (2005/08/02)
gabio氏による8/2付bf-blender Windows版とLinux版のビルドの配布です。
こんにちは。それでは何が起こったか見ていきましょう。Windows上での Bullet の顔見世、いくつかのバグ修正、.blendファイルの直接圧縮、zuster氏からのモディファイア…などなど。 Win: MSVC 7.1 でビルド。 Linux: gcc 3.3.6、glibc 2.3.5 でビルド。 --------------------- 概要 - バグ修正。 - 個別にモディファイするための、Apply ボタンを追加。 - wave モディファイアの追加&旧 wave Effect の削除。 - decimate モディファイアの追加&旧 decimate インタフェイスの削除。 - PoseMode に、[Ctrl]+[C]による Copy メニューが追加。 - Game engine 関連: bullet。 - [W]キーメニュー、"Flip Left/Right Names"。 - PoseMode / EditMode での、アクティブな Bone の名前表示。 - 3DView プルダウンメニューに、新しい Armature / PoseMode のオプションが追加。 - 圧縮ファイル(Compressed files)が復活! - Bone タイプ、"Hinge" の導入。 - [PageUp]キーで、Action を1行上に移動([Shift] == 最上段へ移動) - [PageDown]キーで、Action を1行下に移動([Shift] == 最下段へ移動) - ActionWindow で複数選択が可能に。 - BPY: Blender.Material の、シェーダデータへのアクセス。 - スクリプト更新:paths import、tex2uvbaker、obj exporter。 - BPY: Blender.NMesh.GetRawFromObject で、Font、Curve、Surface、Meta Object をサポート。
Commit ton氏 Log: NLA strip オプション、"Add" が偶然 Constraint Ipo の値も加算されることがありました。その結果キャラクタは暴走していました! 仕様により、Pose のブレンディングは、loc/rot/size のみ加算され、Constraint Strength値は加算されません。
Log: バグ修正 #2856
EditButtons で「アクティブ Material」を変更すると、MaterialButtons のプレビューが更新されていませんでした。
Log: Armature で EditMode に入ったとき、Pose がデフォルトの正しい Rest Position になるように。デフォームや Bone の子も同様です。
Log: 評価ファイルの teapot.blend がレンダリングされませんでした…これはひと月前の改造(VertexColor の 'Paint' と 'Light' をうまく処理する試み)の除去が原因でした。 VertexColor の 'Paint' の動作に必要な、UV Texture 座標計算の適正チェックを追加するのを忘れていました。
Log: 小さな問題とコミットの組み合わせ!
- バグ#2857: Spin が一貫性のある Normal を作成していませんでした。 - レンダリング初期化段階の、where_is_object() の不必要な呼び出しを削除。 - Object が削除されるとき(Joinのケースなど)に呼ばれる DAG_scene_sort()関数を追加。 - Texture Font を使用時、FileWindow のヘッダが正しく表示されていませんでした。 - ファイルの保存時、「時計カーソル」を設定していませんでした(古いバグ!)
zuster氏 Log: - blendファイルのロードのいくつかのエラーハンドリングを修正、正しいエラーコードが常に返っていませんでした。
Log: - 乱数生成の抽象オブジェクトの RNG と、rng_{new/free/seed/get{Int,Double,Float}}を、グローバルジェネレータの使用を阻止するために追加。現時点ではレンダラは乱数ジェネレータを持っており、これがレンダリングの一貫性を保つのに重要です。
ton氏 Log: - MetaBall の Dupliframes が動作していませんでした(scene_update に追加すべきでした)。
- Duplicate された Object のワイヤフレーム表示がより改良されて復活しました。選択された Object の前に描画されるため、もっとよく見えるでしょう。
zuster氏 Log: - effect のヘッダファイルより、内部関数を削除。
- Particleシステムの発生機能に、自身の RNG オブジェクトを使用するように。レンダラで計算順序が変わらないようにします。
まだ、Particle Object の Material が Particle の位置を変更するという、面白いバグがあります。(レンダラ内で、インタフェイスではありません…奇妙です)
Log: - ディスプレイスメントの修正。ディスプレイメントの前に Normal を計算する必要があります。
Log: - 個別にモディファイするための、Apply ボタンを追加。
Log: - wave モディファイアの追加&旧 wave Effect の削除。
- decimate モディファイアの追加&旧 decimate インタフェイスの削除(現在データの消失についての警告はありません。また、モディファイアがエラーをインタフェイスに返すなんらかの方法が必要です)。
- applyModifier が表示エラー時に NULL を返すことができるように。
- 残念ながら、新しい Decimate モディファイアは Mesh 内の正確な Face 数を知ることができません(他のモディファイアがその前に先に作用するため)。その代わりに、インタフェイスはパーセンテージを使用します。もし正しい Face カウントスライダが必要な人がいましたら、これに適した改造を考えなければならないでしょう。いずれにせよ、出力される Face 数は表示するので、望みの結果を得たい場合には、パーセンテージを調整すればいいことを追記しておきます。
- python Wave オブジェクトを削除。
もし今、うんざりしていても、decimate のような物をモディファイアとして実装するのは非常に簡単です。インタフェイスへの非常に少ない変更と、非常に少ないエントリーポイントで行えます。
Log: - バグ修正、Mirror モディファイアが、デフォームされた、共有されている Vertex の VertexColor をコピーしていませんでした。
ton氏 Log: アニメーションシステムがまだ計算されていない Curve Path に遭遇した時に、計算済の物を取得するための適切なコールを追加。現在は計算された Path ではなく、displist が必要になりました。
評価ファイル bowl.blend で報告されたバグ(カメラが移動しなかった)と、NLA Stride Path のエラーを解決。
guitargeek氏 Log: VertexLoop 選択と Faceloop 選択を Toolbox から削除。
Log: Vertex 選択モードで、
[Ctrl]+[Alt]+右マウスボタン = Faceloop 選択。
ton氏 Log: PoseMode に [Ctrl]+[C] の Copy メニューを追加。loc/rot/size と Constraint が対象です。
Log: Outliner を修正。Pose チャネルのリネームが、すべての Bone、他の Pose、Contraint、Action などをチェックするルーチンを呼んでいませんでした。
また、判りやすくするため、Armature の Bone を Pose チャネル として表示する機能を復活しました。リネームはどちらにも働きますが、Constraint は Pose 上であり、Armature 上ではないことに注意したほうがいいでしょう。
小さなバグがまだ:描画の順序(Pose、Armature)が時々反転します。原因はまだわかりません。明日行います!
zuster氏 Log: - decimator モディファイアが、ひとつ前のモディファイアがアクティブである場合、間違った Vertex 数を出力していました。
theeth氏 Log: 画像メモリのガーベジコレクションが、境界での不完全な生成のために、正しく動作していませんでした。(これは Python が画像を読み込んだときにのみ付けられる、NO_COLLECT とマークされた画像のみコレクトしていました)。 別の問題として、現在 UserPreference の値が正しく .b.blend に保存されないというのがあります。これらは常にデフォルトにリセットされています。調べてみます。
Log: 画像メモリのガーベジコレクション: clock() がいくつかのマシンで奇妙な動きをしているらしく、PIL_check_seconds_timer に切り替え。 どのみち、Blender にはもっと多くの行が残っています。
erwin氏 Log: - gameEngine にデバッグ行の描画を追加(物理演算の問題のデバッグに便利です)。 - #ifdef を visual studio 8 のクラッシュの問題の対処に追加。 - 三角形 Mesh に対するスケーリングとトレランスを追加。
ton氏 Log: クリーンアップと、リギングマニアの皆さんのための新機能! - PoseMode: [W]キーメニュー、"Flip Left/Right Names"。選択中の Bone の、名前の L/R のタグを反転し、関連するすべて(Constraint Target、子のBoneなど)をリネームする適切なコードを呼び出します。
- PoseMode: [Shift]+[S] の Snap メニュー:Cursor to Selected が動作するように。
- Outliner: Bone の選択により、Bone に「アクティブ」フラグが正しくセットされるように。UI も更新されます。 また、Outliner で Hide された Bone の選択ができないようにしました。
- 3DWindow: PoseMode / EditMode でアクティブな Bone の名前の描画も行うように("Draw active object name" が設定されている状態で)。
- 3DView のメニューに、新しい Armature / PoseMode オプションを追加。
クリーンアップ:
- Pose コードを editaction.c から poseobject.c へ移動。
- BSE_editaction.h と BSE_editaction_types.h を削除、その内容を BIF_editaction.h に移動しました。C ファイル毎には include は一つがいいんじゃないかと。 src/ の構造ではもっと凝った include が必要なことはわかっていますが、今はありませんし…。
-guitargeek Log: 以下の名前の反転を追加。 _L _l _R _r
また、もし拡張子 == 001 であった場合、再度拡張子をつけません。よって、下記のような処理が可能です。
"Bone_R" という名の Bone がコピーされ、"Bone_R.001" に。 "Bone_R.001" がフリップされ、"Bone_L" に。
現在、001のみの適用で、後日拡張されるでしょう。
ton氏 Log: バグ修正 #2870
Wire Material がレイトレースで動作せず、しかし Wire の Face はまだトレース可能なため、奇妙な結果になります。 現在、Wire の Face はオクトツリーから除去されるようになっています。
Log: Shaul Kedem氏によるパッチ:圧縮ファイル(Compressed file)が復活! 氏は更に素晴らしいドキュメントを Wiki に作成されています。 http://wiki.blender.org/bin/view.pl/Blenderdev/Blendgz
使用方法:メインの "File" プルダウンメニューの、オプション "Compress File" をセットします。 この設定はユーザ設定なため、読み込むファイルによって変更されません。 もしデフォルトにしたければ、[Ctrl]+[U]で保存します。
このファイルネームの書式については、長い議論が行われました。Shaul氏は .blend.gz で始められましたが、これはそこら中にある、blender のファイル検索の取り扱いと、必要時に .blend 拡張子と Append するため、Blender 内で問題が発生します。
Daniel Dunbar氏は、単に .blend で保存し、ユーザがそのような細かいことに煩わされないようにすることを提案されました。これは本当に一番エレガントな解決方法で、唯一の欠点は古いBlender実行環境では読み込むことができないことだけです。 この欠点は現時点ではあまり適切なものではありません。いずれにせよ、私たちの目指すリリースは上位互換ではないからです…Mesh、モディファイア、Armature、Pose、Action、NLA はすでに上位互換性の問題を抱えています。 (訳注:過去のblendファイルが読めるので、むしろ下位互換だと思われます)
私たちは恐らく、将来的に私たちが過去のリリースでのファイルの読み込みに、リスクが伴うようになる変更をした時に、ユーザに警告するため、何ヶ月間か、ビルトインシステム上でチェックすることになるかもしれません。
zuster氏 Log: - storage.c を標準の time コードを使用するよう更新。(MSVS での問題が修正されたと思います。)
- shadeDispList 外の mesh_create_shadedColors が壊れており、おまけに vpaint 内で Mesh の VertexColor の構築に使用されていました(また、ここで SubSurf 用に正しく初期化されていなかったバグも修正)。
- modifier_copyData と modifier_findByType 関数を追加。
- EditMode のモディファイアを "Realtime" と "EditMode" のビットの両方がセットされた場合にのみ計算するよう変更。これにより、モディファイアのコピーが、より適切になります。
- object_copy を、正しくモディファイアをコピーするために更新。
- Python で、重複している ME_* アトリビュートの再定義を削除、これは最悪なアイデアで、いったい誰が最初に行ったのでしょう?
- Armature の Auto VertexGroups コードを、モディファイアスタックの SubSurf のチェックをするよう更新。
- flip_subdivision を、モディファイアスタックへの移動で動作するよう修正。
- copymenu_modifiers を追加。すべてのモディファイア、もしくは、あるタイプの最初のモディファイアからのデータのみをコピーできます(複数の同じタイプのモディファイアをどうやって処理すべきかわかりません…あまり大きな意問題ではないと思いますが)。
ton氏 Log: Armature の時間の節約にいい物:Bone タイプ "Hinge(ヒンジ)" が導入されました。これは Pose の回転・大きさを親のPose チャネルから継承しません。
EditMode 同様、PoseMode も EditButtons のボタンで利用可能です。
Constraint 使用(Copy Location)のオーバーヘッドを小さくするのが狙いです。
(object.c の IK の古いコードを削除)
Log: バグ修正 #2875
グローバル Undo がまだファイルに保存されていた頃に使用されていた、古いコードを削除。これは名前を元に、UI内のポインタを格納しており、quit.blend(実際には Undo バッファ) ファイルを読み込んだときに混乱する結果になっていました。 代わりに、quit.blend を "Load without UI"オプションと同様に処理すべきでした。
Log: EditButtons Context で、複数の Pose チャネルボタンの描画用に、適切なオフセットを加算するのを忘れていました。Ztonzy氏に感謝!
guitargeek氏 Log: Edgeslide の、マウス操作改良に挑んだ結果による変更。
マウス移動 - 5% +[Shift] - 1% +[Ctrl] - 10%
erwin氏 Log: physics-debugging を追加。 すべての単一ファイルをチェックしてはいませんので、gameengine関連の機能を壊しているかもしれません。今週末には修正する予定です!
guitargeek氏 Log: 新たな Subdivide のための UV 調整。以前よりはよくなったと思いますが、まだ完全ではありません。
Log: Vertex 選択モード時、Subdivide で、Edge の選択を Vertex にフラッシュするように。
intrr氏 Log: Text Object のレンダリング時の間抜けな問題の(できれば)修正。
新しい Curve / Text Object が作成された時、cu->curinfo.mat_nr が明らかに0に初期化されていませんでした。従って、レンダリング時、文字にランダムで Material のインデックスを割り当てる処理でクラッシュしていました。
これが本当の問題であったのかどうか、まだ確信していませんが、そう願っています。
古いファイルでレンダリング時クラッシュした場合、単にそれぞれの Text Object で、EditMode に入り、すべての文字列を選択し、一つの Material を Assign して下さい。
これで修正されていることを祈ります。
guitargeek氏 Log: Edgeslide のマウス移動の修正。
Edgeslide の移動が、二つのコントロールレール Edge の終点の間に描画されるラインによってコントロールされるようになりました。Edgeslide はペアのコントロールレール(現時点では緑になる予定)を読み取ろうとします。もしそのレールが気に入らなかったら、マウスホイールの上で変更して下さい。 まだマウスホイールを下に回転した時に、他の方向に移動するコードが必要です。単に時間がなかったのと、移動のテストがしたかっただけです。
移動は そのEdgeの1%ずつです(よって、-1から1の中の1%) +[Ctrl]で10% +[Shift]で0.1%
この機能に対する皆さんの考えとフィードバックをお願いします。 コードにはクリーンアップとコメントが必要ですので、あまりこのことに関しては批判しないで下さい。
erwin氏 Log: 物理演算に関する作業、パラメータのチューニング、摩擦などとの接続。
guitargeek氏 Log: Edgeslide のコントロールレールのための二つのオプション:
マウスホィールの上下と、[←]/[→]キーで、両方向にEdgeをサイクリックにコントロールできます。
現時点では[Shift]は撤去しています。
bjornmose氏 Log: やあ、bassam、できましたよ。 Action Editor の UI の調整: [PageUp]: Action を一つ上の行に移動([Shift]==一番上に移動) [PageDown]: Action を一つ下の行に移動([Shift]==一番下に移動) 複数選択も可能。
guitargeek氏 Log: Edgeslide の(実行)ループに小さなアイドル時間を追加。
Log: さらにループを少し修正。今回は Loopcut です。
ianwill氏 Log: スクリプトの更新: - Jean-Michel Soler氏:1) Paths import -- ai module。2) tex2uvbaker。 - Campbell Barton氏:obj exporter。
BPython: - Campbell氏は更に、Blender.Material へ Shader データアクセスを追加するパッチ(+ドキュメント)を提供されています。
もう一度、お二方に感謝と、遅れましたことをお詫びします。
desoto氏 Log: バグ#2256、「いくつかのボタンで起こる奇妙な現象」の修正作業: Work for fix of #2256 "something weird with some buttons":
retval が0の数値スライダボタン(NUMSLI)が、他のボタンへのトリガとして使用できます。これが最良の手順かどうかはわかりません。更に調査する予定です。その時まで、buttons_shading.c は retval が0の NUMSLI ボタンが消去され、現在は B_DIFF を retval 引数として使用するようになっています(これは1になります)。
theeth氏 Log: このパッチは、Font、Curve、Surface、Meta Object のサポートを Blender.NMesh.GetRawFromObject に追加するもので、UIによって変換される時(訳注:[Alt]+[C]など)、Blender によって使用されているディスプレイリストによる変換方法を通じて行います。
注意:Edge のみの Object (Bevel のない3D Curve/Polyline)は Normal を持たないため、変換時にすべて(1,0,0)で初期化されます。
Meta Object からの変換は「マザーボール」のみ動作します。つまり、一番低位の名前の Object のみ、ということです。 例:"meta.*" Object 群の中の "meta" Object。
Curve ベースの Object(Font/2D のフィルされた Curve)から展開される Mesh は、フィルされた Surface と、形状のアウトラインの両方を含みます。
Material はその Object の Material リストから取得されます。NMesh での Material の取り扱いは、Mesh からの Material を常に使用し、ob->colbits の設定を無視するため、いずれにせよ不適切です。
このパッチはまた、include の順序を少し綺麗にしてくれます。 2・3の Warning が適したタイプの使用により、修正されます。
- color 値のパース時に、short の代わりに char を使用。 とにかく、この「コンストラクタ」は char を期待・使用しています。
- mvert に Normal をストアした時の、short への明示的キャスト。
- コンパイラが順調に動作するように、doubles の定数を "f" をつけて float に変更。 残る Warning は、NMFace.flag で、これは short で格納されていますが、char である TFace.flag を埋めるのに使用されています。私はこのオブジェクトの構造を変更したくなかったので、このように残してあります。TFace に戻すときも明示的なキャストは追加しなかったので、Warning が何か変更されるだろう場所として、私たちに思い出させてくれます。
Log: BMFont が "Screen 15" フォントの、TAB と NBSP 用の正しい文字サイズを定義していませんでした。ideasman氏の interactive console スクリプトを通じて発見されました。
guitargeek氏 Log: Face 選択モードでの Loopcut で、Edgeslide が使用できるようになり、'loop crosses itself(ループが自身と交わっている)' メッセージがでないようになりました。まだこれ以外の選択状態用の作業が必要です。
|
|