﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ARef%2FRequests%2FPython2.6</id>
	<title>Dev:Ref/Requests/Python2.6 - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ARef%2FRequests%2FPython2.6"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Ref/Requests/Python2.6&amp;action=history"/>
	<updated>2026-07-26T04:34:05Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Ref/Requests/Python2.6&amp;diff=106451&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Ref/Requests/Python2.6&amp;diff=106451&amp;oldid=prev"/>
		<updated>2018-06-28T19:45:35Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 19:45時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Ref/Requests/Python2.6&amp;diff=106450&amp;oldid=prev</id>
		<title>wiki&gt;Piiichan: Removed &quot;Listing all data blocks in another .blend file&quot;, since it's already possible, cf http://www.blender.org/documentation/blender_python_api_2_71_0/bpy.types.BlendDataLibraries.html?highlight=lib</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Ref/Requests/Python2.6&amp;diff=106450&amp;oldid=prev"/>
		<updated>2014-09-19T00:01:58Z</updated>

		<summary type="html">&lt;p&gt;Removed &amp;quot;Listing all data blocks in another .blend file&amp;quot;, since it&amp;#039;s already possible, cf http://www.blender.org/documentation/blender_python_api_2_71_0/bpy.types.BlendDataLibraries.html?highlight=lib&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=UI Elements=&lt;br /&gt;
&lt;br /&gt;
== Custom Spaces ==&lt;br /&gt;
&lt;br /&gt;
As stated in the Quick Starter, the ability to create new space types is unavailable &amp;quot;Yet.&amp;quot;&lt;br /&gt;
However if implemented before 2.66 (Here's Hoping), this feature could open up an infinite number of plugin possibilities.&lt;br /&gt;
&lt;br /&gt;
Ugly scaling occurs when designing large interfaces within a ui panel.&lt;br /&gt;
Which at the moment, is the only way to add complex interface components (correct me if I am wrong)&lt;br /&gt;
&lt;br /&gt;
For example, if a panel implementation resides withing one of the two 3D viewport sidebars.&lt;br /&gt;
Scaling a sidebar to adequately display a large custom panel, scales all other ui widgets.. which may not look appealing.&lt;br /&gt;
&lt;br /&gt;
Instancing a separate space can keep Blenders default panels intact, while adding extra functionality.&lt;br /&gt;
&lt;br /&gt;
Such as a &amp;quot;'''Character Picker'''&amp;quot; (An application that allows an animator to select rig controls outside of the 3D viewport)&lt;br /&gt;
&lt;br /&gt;
--[[User:raschko|raschko]] 18 December 2012&lt;br /&gt;
&lt;br /&gt;
=Group/Object Hierarchy=&lt;br /&gt;
When creating a model it would be nice to organise the individual objects/meshes that make up parts of the model in a hierarchical manner.&lt;br /&gt;
&lt;br /&gt;
Example: A remote control may be made from the following visible components:&lt;br /&gt;
*Rear housing (object)&lt;br /&gt;
**Mesh&lt;br /&gt;
*Front housing (object)&lt;br /&gt;
**Mesh&lt;br /&gt;
*Buttons (group)&lt;br /&gt;
**Button 1 (object)&lt;br /&gt;
***Mesh&lt;br /&gt;
**Button 2 (object)&lt;br /&gt;
***Mesh&lt;br /&gt;
**Button 3 (object)&lt;br /&gt;
***Mesh&lt;br /&gt;
*IR LED (object)&lt;br /&gt;
**Mesh&lt;br /&gt;
*Battery cover (object)&lt;br /&gt;
**Mesh&lt;br /&gt;
&lt;br /&gt;
Currently Blender grouping allows adding the same object to multiple groups, but with no hierachy. &lt;br /&gt;
&lt;br /&gt;
A solution to this problem would be to add a way of creating sub objects/meshes that are displayed logically in the outliner panel.&lt;br /&gt;
&lt;br /&gt;
Selecting the higher level objects in the outliner panel should select all of the sub objects.&lt;br /&gt;
&lt;br /&gt;
In my opinion a great way of displaying this would be similar to the following image from Adobe Photoshop:&lt;br /&gt;
http://i43.tinypic.com/11ky4b9.png&lt;br /&gt;
&lt;br /&gt;
Collapsible folders for each sub group&lt;br /&gt;
&lt;br /&gt;
This view should be visible from the current scene and all scenes view of the outliner panel. Not just when you go into groups.&lt;br /&gt;
&lt;br /&gt;
An option to link objects/meshes so that moving/scaling/rotating ANY of the objects in that group moves/scales/rotates all of the other objects. Similar to making an object a parent, but instead making the currently active object become the parent for that specific time (dynamic parenting?).&lt;br /&gt;
&lt;br /&gt;
Another option would be to have a single object with multiple individually selectable meshes, again with some sort of hierarchy.&lt;br /&gt;
&lt;br /&gt;
This hierarchical group of objects/meshes should remain intact when appending or linking to another Blender file.&lt;br /&gt;
&lt;br /&gt;
--[[User:Mattb5906|Mattb5906]] 09:22, 28 April 2012&lt;br /&gt;
&lt;br /&gt;
= Animation Events =&lt;br /&gt;
&lt;br /&gt;
Proposal for a non-hackish way to call Python code once per frame of an animation. Some scenarios that would accomplish this task include:&lt;br /&gt;
&lt;br /&gt;
# Instantiate an object once per animation and then execute a method on that object once per frame.&lt;br /&gt;
# Execute an arbitrary function once per frame.&lt;br /&gt;
&lt;br /&gt;
In both cases, variable values would have to be maintained across frames. For example, it should be possible to increment a counter from 0 to 30 for one second of animation at 30 frames per second.&lt;br /&gt;
&lt;br /&gt;
== Graph Editor ==&lt;br /&gt;
&lt;br /&gt;
The implementation could be exposed through the Graph Editor. In addition to the '''View Properties''', '''Active F-Curve''', '''Active Keyframe''', and '''Modifiers''' panels, there could be another panel named &amp;quot;Execution&amp;quot;, &amp;quot;Function Call&amp;quot;, &amp;quot;Animation Event&amp;quot;, &amp;quot;Frame Hook&amp;quot;, or similar.&lt;br /&gt;
&lt;br /&gt;
== User Interface ==&lt;br /&gt;
&lt;br /&gt;
The first implementation could be simple: a single input field with the name of a function that is called once before every frame is rendered.&lt;br /&gt;
&lt;br /&gt;
Subsequent implementations could add the following features:&lt;br /&gt;
&lt;br /&gt;
* Call a different function based on different IPO curves.&lt;br /&gt;
* Include a start frame and an end frame.&lt;br /&gt;
* Ability to skip frames.&lt;br /&gt;
&lt;br /&gt;
The last two items could also be done programmatically using a counter within the function; a UI makes it cleaner.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
There are clever hacks to accomplish this, but these hacks rely on behaviours that might change between versions of Blender, which would mean the Blender file is not upwards compatible.&lt;br /&gt;
&lt;br /&gt;
The current documentation does not describe a way to add a hook for animations. If such documentation exists, it needs to be clarified.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
In the code below, a few things happen:&lt;br /&gt;
&lt;br /&gt;
# The date and time are incremented once per frame to simulate a long journey (sped up to be watchable).&lt;br /&gt;
# The sphere (representing a planet) is scaled using an apparent distance and apparent size calculation.&lt;br /&gt;
# Each frame is incremented and then rendered.&lt;br /&gt;
# A file name is generated.&lt;br /&gt;
# The render is saved to a file.&lt;br /&gt;
&lt;br /&gt;
The last three steps are redundant: clicking the &amp;quot;Animation&amp;quot; button in Blender causes them to happen. Without any obvious animation frame event handler function override, the final three steps must be hand-coded. The results from the code below can be viewed at:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=xGy3ngTDne4 http://www.youtube.com/watch?v=xGy3ngTDne4]&lt;br /&gt;
&lt;br /&gt;
    PLANET_NAME      = &amp;quot;Saturn&amp;quot;&lt;br /&gt;
    PLANET_RADIUS    = RADIUS_SATURN&lt;br /&gt;
    PLANET_DISTANCE  = DISTANCE_SATURN&lt;br /&gt;
    PLANET_OBLATE    = OBLATE_SATURN&lt;br /&gt;
    CAMERA_DISTANCE  = PLANET_RADIUS * 2&lt;br /&gt;
    &lt;br /&gt;
    TRAVEL_FRAMES        = TRAVEL_FRAMES_SATURN&lt;br /&gt;
    TRAVEL_DURATION_DAYS = TRAVEL_DURATION_DAYS_SATURN&lt;br /&gt;
    &lt;br /&gt;
    RENDER = True&lt;br /&gt;
    WARP = True&lt;br /&gt;
    &lt;br /&gt;
    def render_animation():&lt;br /&gt;
        global current_frame&lt;br /&gt;
        global current_datetime&lt;br /&gt;
    &lt;br /&gt;
        distance = PLANET_DISTANCE&lt;br /&gt;
        scale = 0&lt;br /&gt;
    &lt;br /&gt;
        # No planet in the initial frame for travelling.&lt;br /&gt;
        #&lt;br /&gt;
        if WARP: scale_planet( PLANET_NAME, scale )&lt;br /&gt;
    &lt;br /&gt;
        while current_frame &amp;lt;= bpy.context.scene.frame_end:&lt;br /&gt;
            bpy.ops.anim.change_frame( frame=current_frame )&lt;br /&gt;
            print( current_frame, ' ', current_datetime )&lt;br /&gt;
            update_text()&lt;br /&gt;
            render_frame()&lt;br /&gt;
            current_frame = current_frame + 1&lt;br /&gt;
    &lt;br /&gt;
            distance -= DISTANCE_PER_FRAME&lt;br /&gt;
            scale = scale_factor( PLANET_RADIUS, distance + CAMERA_DISTANCE * 2 )&lt;br /&gt;
    &lt;br /&gt;
            print( &amp;quot;Distance: &amp;quot; , distance, &amp;quot; Scale: &amp;quot;, scale )&lt;br /&gt;
    &lt;br /&gt;
            # Travel to the planet by scaling it up using its apparent size.&lt;br /&gt;
            #&lt;br /&gt;
            if WARP:&lt;br /&gt;
                if distance &amp;gt; 0: scale_planet( PLANET_NAME, scale )&lt;br /&gt;
    &lt;br /&gt;
                current_datetime = current_datetime + datetime.timedelta( seconds=SECONDS_PER_FRAME )&lt;br /&gt;
            else:&lt;br /&gt;
                current_datetime = current_datetime + datetime.timedelta( milliseconds=round( 1000/30 ) )&lt;br /&gt;
&lt;br /&gt;
The actions that Blender cannot do include:&lt;br /&gt;
&lt;br /&gt;
* update_text() - sets the date and time&lt;br /&gt;
* scale_planet() - change the radius of the sphere to the apparent size&lt;br /&gt;
&lt;br /&gt;
These must be called once per frame, and, to my knowledge, cannot easily be accomplished any other way.&lt;br /&gt;
&lt;br /&gt;
[[User:Thangalin|Thangalin]] 23:46, 26 July 2011 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposal mesh.screw turns ==&lt;br /&gt;
&lt;br /&gt;
 bpy.ops.mesh.screw(steps=9, turns=1, center=(0, 0, 0), axis=(0, 0, 0))&lt;br /&gt;
 bpy.ops.mesh.spin(steps=9, dupli=False, angle=1.5708, center=(0, 0, 0), axis=(0, 0, 0))&lt;br /&gt;
&lt;br /&gt;
Change mesh.screw 'turns' from an Int to a Float property. so its the same as mesh.spin 'angle'.&lt;br /&gt;
&lt;br /&gt;
At the moment, turns is limited to 360's.&lt;br /&gt;
&lt;br /&gt;
Or change it to a Float angle.&lt;br /&gt;
&lt;br /&gt;
mesh.spin 'angle' is a radian.&lt;br /&gt;
&lt;br /&gt;
editmesh_tools.c&lt;br /&gt;
&lt;br /&gt;
Regards, [http://wiki.blender.org/index.php/User:Koilz Koilz] 15 March 2013&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== View linked objects ==&lt;br /&gt;
&lt;br /&gt;
there should be an option under &amp;quot;view&amp;quot; to &amp;quot;view Linked&amp;quot; things from the selected entry inside the outliner, it could be like the old &amp;quot;Oops Schematic view&amp;quot; or a treeview.&lt;br /&gt;
&lt;br /&gt;
[[User:Sonicdee|Sonicdee]] 21 March 2013&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Generic Template List Operators ==&lt;br /&gt;
&lt;br /&gt;
Template Lists require a collection property id and a int property id for the active index.&lt;br /&gt;
When making a custom template list with a new collection property, usually people write a set of operators to, add, remove, move up, and move down, items in the list.&lt;br /&gt;
&lt;br /&gt;
There is not much unique about these operators, they work based on the number of items in the collection property and the active index.&lt;br /&gt;
They are usually drawn after the template list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    def draw(self, context):&lt;br /&gt;
&lt;br /&gt;
        layout = self.layout&lt;br /&gt;
&lt;br /&gt;
        row = layout.row()&lt;br /&gt;
        row.template_list(&amp;quot;SCENE_UL_draw&amp;quot;, &amp;quot;&amp;quot;, context.scene, &amp;quot;UL_props&amp;quot;, context.scene, &amp;quot;UL_active&amp;quot;, rows=3)&lt;br /&gt;
&lt;br /&gt;
        col = row.column(align=True)&lt;br /&gt;
        col.operator(&amp;quot;scene.ul_add&amp;quot;, text=&amp;quot;&amp;quot;, icon=&amp;quot;ZOOMIN&amp;quot;)&lt;br /&gt;
        col.operator(&amp;quot;scene.ul_remove&amp;quot;, text=&amp;quot;&amp;quot;, icon=&amp;quot;ZOOMOUT&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        col.separator()&lt;br /&gt;
        col.operator('scene.ul_moveup', text='', icon='TRIA_UP')&lt;br /&gt;
        col.operator('scene.ul_movedown', text='', icon='TRIA_DOWN')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A generic set of operators could be written, that point to a custom collection and int property, UL_props, UL_active.&lt;br /&gt;
Then the template list (and other blender template lists that may use them) would not require an additional set of operators.&lt;br /&gt;
&lt;br /&gt;
2 use examples.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    def draw(self, context):&lt;br /&gt;
&lt;br /&gt;
        layout = self.layout&lt;br /&gt;
&lt;br /&gt;
        row = layout.row()&lt;br /&gt;
        row.template_list(&amp;quot;SCENE_UL_draw&amp;quot;, &amp;quot;&amp;quot;, context.scene, &amp;quot;UL_props&amp;quot;, context.scene, &amp;quot;UL_active&amp;quot;, rows=3, generic_buttons=True)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    def draw(self, context):&lt;br /&gt;
&lt;br /&gt;
        layout = self.layout&lt;br /&gt;
&lt;br /&gt;
        row = layout.row()&lt;br /&gt;
        row.template_list(&amp;quot;SCENE_UL_draw&amp;quot;, &amp;quot;&amp;quot;, context.scene, &amp;quot;UL_props&amp;quot;, context.scene, &amp;quot;UL_active&amp;quot;, rows=3)&lt;br /&gt;
&lt;br /&gt;
        col = row.column(align=True)&lt;br /&gt;
        xx = col.operator(&amp;quot;ui.ul_add&amp;quot;, text=&amp;quot;&amp;quot;, icon=&amp;quot;ZOOMIN&amp;quot;)&lt;br /&gt;
        xx.collection_prop_path=context.scene&lt;br /&gt;
        xx.collection_prop=&amp;quot;UL_props&amp;quot;&lt;br /&gt;
        xx.index_prop_path=context.scene&lt;br /&gt;
        xx.index_prop=&amp;quot;UL_active&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        # remove&lt;br /&gt;
        # specials menu&lt;br /&gt;
        # move up&lt;br /&gt;
        # move down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Koilz|Koilz]] 5 April 2014&lt;/div&gt;</summary>
		<author><name>wiki&gt;Piiichan</name></author>
		
	</entry>
</feed>