2008年2月29日金曜日

blender - ファイルフォーマットを書き換えたい(2)

はじめに書いておくけど  俺 TOEIC 400点 くらいです。
しかもメンドイので超早く(あまり調べずに)訳してます。
無いよりマシだ!誤訳どんとこい!って人のみ、参考にしてください。
実際、さっき1つ前の記事書いてから、50件くらいのRSSチェックしたあと訳し始めてるので、クオリティはその間の時間くらい少ないです。

http://www.blender.org/development/architecture/
Data structure

Most of the design time for Blender was spent on defining the right choices for which types of data belongs together, and how relationships between data is defined. With the 'implementation follows design' concept in mind, it was well understood that any design decision would both enable as restrict functionality.


Blenderのほとんどのデザイン時間は、グループを成すデータ型の正しい選択の決定と、データ間の関係がどのように定義されるかを決定することに割かれる。
「次のデザインの実装」という脳内のコンセプトは、どんなデザインの決定も、制限された機能の中で可能、ということに基づく。

Based on how we internally needed 3D for our projects, decided was to design the data design on a high abstraction level, with as requirements:

- allowing multiple people to work together

- allowing complex animation projects to be created within 1 project (or file)

- allowing re-use of data efficiently

- allowing templates (or backdrops)

私たちのプロジェクトのために、3Dに基づくどのような内部構成が必要か、の決定は、高抽象レベルのデータ構成をデザインすることを要求される。

-複数人での仕事がお互いできる
-複雑なアニメーションプロジェクトを1プロジェクト(または1ファイル)で作れる
-データの効率的な再利用
-テンプレートが使える

This resulted in designing a non-standard 'database', not like the tradional 'scene graph' (which was at that time perception/display based), but based on creating generic 3d 'data worlds' where you can construct as many scene graphs (displays, images, animations) as you need to.

これは結果的に、普通じゃないデータベースになり、伝統的な scene graph(認識/画面ベースのものだった)だけでなく、一般的な3D"data worlds"の構築をベースとしている。3D"data world"は、必要ならば多くのscene graph(画面、画像、アニメーション)を構成できる。

In Blender the data blocks are the user's building blocks: they can be copied, modified, and linked to one another as desired.

データブロックは、ユーザの作ったブロック。それらはコピー、変更、他のブロックへのリンクが可能である。

Creating a link is actually the same as indicating a relationship; this causes a block to be 'used'.

リンクを作ることは、関係を指し示すのと同じで、ブロックの「使用されている」状態を引き起こす。

For example, the block type 'Object' makes a 'Mesh' block appear in the 3d scene. The Object here determines the exact location, rotation and size of the Mesh. The Mesh then only stores information on vertex locations and faces. Also, more than one Object can have a link to the same Mesh (use, create an instance). Other block types, e.g. Materials, can be linked to Meshes to obtain the block type's features.

例えば、Objectブロックは、Meshブロックを3Dシーンに表示する。Objectは、Meshの位置、回転、大きさを決定する。Meshはそれから、頂点位置や面の情報を蓄えるだけ。また、1つ以上のObjectが同じMeshにリンクできる。他のブロックタイプは、Materialとかで、ブロックタイプの特徴に従うことで、Meshにリンクできる。

Each of such blocks in Blender starts with an ID struct, which contains the unique name of the block and, in certain cases, the Library from which the block comes. The ID structure allows Blender data to be manipulated in a uniform manner, without knowledge of the actual data type.

このようなブロックは、ID構造体で始まり、ブロックごとに一意の名前と、ブロックがどのLibraryから来たか、を持つ。ID構造体は、Blenderデータを、正しいマナーにのっとり、実際のデータ型を知ることなしに、操作できるようにしている。

These IDs also allow Blender to arrange the files internally as a sort of file structure; as if it were a collection of directories with files.

また、これらのIDは、ファイル構造のソートとして、ファイル群を内部的に変更できるようにしている。
ファイル群のあるディレクトリのコレクションとして。

This arrangement is also important when combining Blender files or using them as a 'Library'.

このお膳立ては、また、Blenderファイル群を結合するときや、それらをLibraryとして使用するときに重要である

All data in Blender is stored in a Main tree, which is actually nothing more than a block of Lists. Here the data always resides, independent how a user has linked it together. In the pictures above you can see how a 'Scene graph' was constructed from the data as available in the Main tree.

すべてのデータは、Main treeに蓄えられていて、実際1つのリストのブロックでしかない。
ここにデータがいつもあり、ユーザがどおようにお互いをリンクしても独立している。
画像では、あるScene graphが、Main treeで利用可能なデータとして構成されているかが分かる。

The fact that the actual data remains in the Main tree is further visualized in the Scene block. Internally it has a list of Base structs which allows a Scene to link to many Objects without removing them from the list in the Main structure.
(A Base also allows some local properties, such as layer and selection, enabling a single Object to be used by multiple Scenes with such properties different.)

Main treeに残っている実際のデータは、Scene blockでより視覚化されている。
内部的に、それはBase構造体で、Main構造のリストからObjectを消すことなしに、Sceneに多くのObjectをリンクすることを可能にしている。
(あるBaseには、また、レイヤや選択のようなローカルプロパティがあり、1つのObjectを複数のSceneで、このようなプロパティを変えて使用することが出来る。)

When using Blender, library blocks are usually not freed themselves, but just unlinked. They remain in the Main block lists. Only when the user count is zero, such a block isn't written in a file.

Blenderを使っているとき、library blockは、リンクを外されない限り、通常開放されない。
それらはMain blockのリストに残っている。ユーザ数が0になったとき、このようなblockはファイルに書かれない。

In yellow here are the two main global variables, the current Screen (denoting active Scene too) and the active Object.

ここ(画像)の黄色は、2つの主なグローバル変数で、現在の画面(Sceneがアクティブなことも意味する)と、アクティブなObject。

0 件のコメント: